Spring Security / abgelaufen-url keine url-Weiterleitung

Hallo Im arbeiten mit Frühling, und ich habe ein problem, versucht die concurrency-control und authentication-failure-url.

Ich versuche zu tun, dass der gleiche Benutzer können sich nicht anmelden in der Anwendung gleichzeitig. Also für das, dass ich definierte die concurrency-control in security.xml als:

<concurrency-control max-sessions="1" error-if-maximum-exceeded="true" expired-url="/login_page?login_timeout=1"/>

Meine Idee ist, wenn der zweite Benutzer wird versuchen sich einzuloggen, werden die login-Seite aufgerufen werden soll mit:

  • login_page?login_max_session_exceed=1"

Ich habe ein form-login auch als:

<form-login login-page="/login_page" default-target-url="/index.jsp"
        authentication-failure-url="/login_page?login_error=1" />

Aber das problem, dass ich habe ist, wenn ich versuche, um sich der zweite Benutzer IMMER die login-Seite wird aufgerufen mit

  • login_page?login_error=1" (die abgelaufen-url wird nicht umgeleitet)

Was ist das problem? Wie kann ich tun, um zu verwenden, das abgelaufen ist-url-Umleitung, wenn der zweite Benutzer versucht zu verbinden.

Die version der Quelle, die ich verwenden, sind:

Frühjahr.Kern 3.2.8 und Frühjahr.Sicherheit 3.2.3

Meine web.xml

<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<display-name>Sistema de Despacho de Contingencia Acindar</display-name>

<servlet>
    <servlet-name>sdca-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>sdca-dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener> 

<listener>
    <listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>

</listener>

<!-- Spring Security -->

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        /WEB-INF/sdca-security.xml
    </param-value>
</context-param>

<filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>

<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<session-config>
    <session-timeout>1</session-timeout>
</session-config>

Meine security.xml

    <http auto-config="true">
    <form-login login-page="/login_page" default-target-url="/index.jsp"
        authentication-failure-url="/login_page?login_error=1" />
    <logout logout-success-url="/login_page?logout=1" invalidate-session="true" delete-cookies="JSESSIONID" />
        <session-management invalid-session-url="/login_page"
        session-authentication-error-url="/login_page?login_max_session_exceed=1">
        <concurrency-control max-sessions="1"
            error-if-maximum-exceeded="true" expired-url="/login_page?login_timeout=1"/>
    </session-management>
    <intercept-url pattern="/login_page" access="IS_AUTHENTICATED_ANONYMOUSLY" />
    <intercept-url pattern="/**" access="ROLE_ADMIN" />
</http>

Danke für dich Hilfe!!!

InformationsquelleAutor kulmino | 2014-05-02
Schreibe einen Kommentar