我是初次使用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配置中相应的设置应该是什么,知道我想要实现的是当用户点击注销链接时,他已经注销并重定向到登录页面,并显示消息“您已经注销”。
祝你好运
让 - 诺尔
答案 0 :(得分:2)
您需要在配置中指定注销网址,例如
.logoutUrl("/logout")
如果没有设置,Spring Security将默认为 / j_spring_security_logout 。