繁体   English   中英

Spring Security 3.2.0.RC1中的注销不起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM