Spring Security 3.2:无法注销

时间:2014-01-14 14:09:08

标签: spring security logout

我是初次使用java配置的Spring安全性。我想要实现的目标如下: 我的应用程序正在使用jsp;我有一个名为/login.jsp的自定义登录表单。

我已将httpsecurity定义为:

@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().anyRequest().authenticate d().and().formLogin()
.loginPage("/login.jsp").permitAll().and().logout().permitAll() ;
}

登录工作正常,网址被正确截取,登录表单显示,登录成功后,我访问应用页面。

问题在于注销过程;我在我的jsp中包含了一个用于注销的链接:

<li><a href="${pageContext.request.contextPath}/logout"
title="Logout"><span class="glyphicon glyphicon-log-out"></span></a></li>

但是当我点击链接时,我收到404错误,因为没有这样的页面/注销

我尝试将链接指定为:

<li><a href="${pageContext.request.contextPath}/login.jsp?logout=0"
title="Logout"><span class="glyphicon glyphicon-log-out"></span></a></li>

但是虽然它显示了“您已经注销”的登录页面,但我仍然可以访问应用页面;

所以我想知道我应该在注销链接中设置什么值以及HttpSecurity配置中相应的设置应该是什么,知道我想要实现的是当用户点击注销链接时,他已经注销并重定向到登录页面,并显示消息“您已经注销”。

祝你好运

让 - 诺尔

1 个答案:

答案 0 :(得分:2)

您需要在配置中指定注销网址,例如

.logoutUrl("/logout")

如果没有设置,Spring Security将默认为 / j_spring_security_logout