我刚刚在我的spring mvc webapp中按照http://www.mkyong.com/servlet/a-simple-httpsessionlistener-example-active-sessions-counter/实现了SessionCounterListener。春季安全会议不像预期的那样
我看到一些我没有想到的行为,并有两个问题。
问题1: 当我在服务器重新启动后第一次登录login.jsp时,即使在登录之前会话计数器值为1(不是预期的)。
例如,当我去到登录页面... sessionCreated - 添加一个会话到计数器:1
,然后当我去打注销按钮会话计数减一(其中是好的),但会议计数后立即增加1(不是预期的)。
例如,当我打注销按钮... sessionDestroyed - 从计数器扣除一个会话:0 sessionCreated - 添加一个会话到计数器:1
这是因为如果每次我去到登录页面计数增加1.我认为只有成功登录后才会增加计数。
有人能帮我理解这里发生了什么吗?
问题2. 当我在我的应用程序中以不同的用户身份登录时,第一个用户仍然登录,我没有得到新的会话计数器。即我认为它不会为新用户创建新会话。
再次,我需要帮助理解请。
这里是我的春天的安全设置....
<http pattern="/login.htm" security="none"/>
<http use-expressions="true" auto-config="false" entry-point-ref="loginUrlAuthenticationEntryPoint">
<!-- custom filters -->
<custom-filter position="FORM_LOGIN_FILTER" ref="twoFactorAuthenticationFilter" />
<custom-filter ref="securityLoggingFilter" after="SECURITY_CONTEXT_FILTER"/>
<!-- session management -->
<session-management
invalid-session-url="/sessionExpired.htm"
session-authentication-error-url="/alreadyLoggedIn.htm">
<concurrency-control
max-sessions="1"
expired-url="/sessionExpiredDuplicateLogin.htm"
error-if-maximum-exceeded="false" />
</session-management>
<!-- error handlers -->
<access-denied-handler error-page="/accessDenied.htm"/>
<!-- logout -->
<logout logout-success-url="/logout.htm" invalidate-session="true" delete-cookies="JSESSIONID" />
<!-- authorize pages -->
<intercept-url pattern="/home.htm" access="isAuthenticated()" />
<intercept-url pattern="/shortsAndOvers.htm" access="isAuthenticated()" />
<intercept-url pattern="/shortsAndOversDaily.htm" access="isAuthenticated()" />
<intercept-url pattern="/birtpage.htm" access="isAuthenticated()" />
<intercept-url pattern="/reports/show.htm" access="isAuthenticated()" />
</http>
<beans:bean id="loginUrlAuthenticationEntryPoint" class="org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint">
<beans:property name="loginFormUrl" value="/login.htm" />
</beans:bean>
<beans:bean id="successHandler" class="com.me.reporting.security.CustomSavedRequestAwareAuthenticationSuccessHandler">
<beans:property name="defaultTargetUrl" value="/home.htm" />
</beans:bean>
<beans:bean id="failureHandler" class="com.me.reporting.security.CustomSimpleUrlAuthenticationFailureHandler">
<beans:property name="defaultFailureUrl" value="/loginfailed.htm" />
</beans:bean>
谢谢你回到我身边。你所说的很多话对我来说都是有意义的。你说的注销后重定向是正确的。我在想,上面教程中提到的过滤器并不是我所追求的。事实上,我甚至不确定这可能是有用的。 – Richie