[英]Spring Security 3.2.0.RC1 - <http> element and deprecated method
[英]Logout in spring security 3.2.0.RC1 does not work
我在为管理页面实现注销功能时遇到问题。 我使用"/admin/"
进入我的管理页面,并注销我想使用"/admin/logout"
。 当我单击按钮时,按照注销成功指示,转到"/"
。 当我返回到"/admin"
,我仍然登录。
我的春季xml是:
<sec:http auto-config="true">
<sec:session-management session-fixation-protection="newSession"/>
<sec:intercept-url pattern="/admin/**" access="ROLE_LEVEL_0" />
<sec:http-basic />
<sec:logout delete-cookies="JSESSIONID" logout-success-url="/" logout-url="/admin/logout"/>
</sec:http>
<sec:authentication-manager alias="authenticationManager" erase-credentials="true">
<sec:authentication-provider user-service-ref="userDetailsService">
<sec:password-encoder hash="md5"/>
</sec:authentication-provider>
</sec:authentication-manager>
<bean id="userDetailsService" class="com.adminsecurity.acegi.userdetails.jdbc.JdbcUserDetailsManager">
<constructor-arg index="0" ref="dataSource"/>
<property name="changePasswordSql" value="update users set password = ? where username = ?"/>
</bean>
我的JSP是这样的:
<c:url var="logoutUrl" value="/admin/logout"/>
<form action="${logoutUrl}"
method="get">
<input type="submit"
value="Log out" />
</form>
解决此问题的唯一方法是不使用<sec:http-basic />
并使用表单登录选项进行选择。 否则,浏览器将在每个请求中发送凭据,并且您将无法注销。 有几种解决方法,但是没有一种在每种浏览器中都可用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.