2014-01-14 173 views
2

我是新来的java配置春季安全。我想要实现的是以下几点: 我的应用程序使用jsp;我有一个名为/login.jsp的自定义登录表单。春季安全3.2:无法注销

我已经定义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配置中,知道我想要实现的是当用户单击注销链接时,他会被记录然后重定向到登录页面,并显示'您已被注销'的消息。

问候

让 - 诺埃尔

回答

2

您需要在您的配置,以指定登出网址如

.logoutUrl("/logout") 

没有设置这个春季安全将默认为/j_spring_security_logout