Wie kann man nur eine Sitzung pro Benutzer begrenzen und den nachfolgenden Anmeldeversuch blockieren?

Das Standardverhalten der Parallelitätskontrolle ist das Ablaufen der ursprünglichen Sitzung. Ich möchte jedoch den zweiten Benutzer sperren, der sich mit denselben Anmeldeinformationen anmeldet und die Meldung "Benutzer hat sich bereits angemeldet" anzeigt. Wie kann ich das erreichen?

Unten ist die Konfiguration von spring-security.xml:

<http auto-config="false" use-expressions="true">
    <intercept-url pattern="/login*" access="permitAll"
        requires-channel="https" />
    <intercept-url pattern="/userHasLoggedIn" access="permitAll"
        requires-channel="https" />
    <intercept-url pattern="/j_spring_security_*" access="permitAll"
        requires-channel="https" />
    <intercept-url pattern="/session*" access="permitAll"
        requires-channel="https" />
    <form-login login-page="/login" authentication-failure-url="/loginFailed" />
    <intercept-url pattern="/**" access="isAuthenticated()"
        requires-channel="https" />
    <session-management invalid-session-url="/sessionExpired" session-authentication-error-url="/loginAlready">
        <concurrency-control error-if-maximum-exceeded="false" expired-url="/userHasLoggedIn" max-sessions="1"/>
    </session-management>
    <logout delete-cookies="JSESSIONID" />
</http>

(Aktualisierte) Meine endgültige Konfiguration der Federsicherheit:

<http auto-config="false" use-expressions="true">
        <intercept-url pattern="/login*" access="permitAll"
            requires-channel="https" />
        <form-login default-target-url="/home" login-page="/login" authentication-failure-url="/loginFailed" />
        <intercept-url pattern="/**" access="isFullyAuthenticated()"
            requires-channel="https" />
        <session-management session-authentication-error-url="/loginFailed">
            <concurrency-control expired-url="/loginFailed" error-if-maximum-exceeded="true" max-sessions="1"/>
        </session-management>
        <logout delete-cookies="JSESSIONID" />
    </http>

Antworten auf die Frage(1)

Ihre Antwort auf die Frage