Spring security Spring安全多个注销URL?
我正在使用SpringSecurityJavaConfig,我想知道一种实现多个URL注销的方法。i、 eSpring security Spring安全多个注销URL?,spring-security,Spring Security,我正在使用SpringSecurityJavaConfig,我想知道一种实现多个URL注销的方法。i、 e logout().logoutRequestMatcher(new AntPathRequestMatcher("/invalidate")).logoutUrl("/logout"); 在这段代码中,正常的注销url“/logout”工作正常,这是一个post请求,但我也希望用户注销url“/invalidate”,这似乎不起作用。这可能不是最优雅的方式,但您可以只指定一个@Cont
logout().logoutRequestMatcher(new
AntPathRequestMatcher("/invalidate")).logoutUrl("/logout");
在这段代码中,正常的注销url“/logout”工作正常,这是一个post请求,但我也希望用户注销url“/invalidate”,这似乎不起作用。这可能不是最优雅的方式,但您可以只指定一个@Controller,它映射到您想要注销的所有url,例如。g
@Controller
public class LogoutController {
final String logoutRedirectUrl = "redirect:http://yourredirect.xy";
@RequestMapping("/logout")
public String logout1(HttpServletRequest request) throws ServletException {
request.logout();
return logoutRedirectUrl;
}
@RequestMapping("/second/logout/")
public String logout2(HttpServletRequest request) throws ServletException {
request.logout();
return logoutRedirectUrl;
}
}
根据Spring Security教程,似乎下一个更优雅的方法是: 在安全表单登录标记中,只需添加如下内容:
<security:logout logout-url="/logout" success-handler-ref="logoutHandler"/>
现在别忘了在安全配置文件上向上述注销处理程序+添加@组件注释添加下面两条语句:
<context:annotation-config />
<context:component-scan base-package="package.to.logout.handler" />
我正在尝试了解您需要的业务用例。应用程序中有一个遗留url,应该注销用户(获取请求),并且正常的注销后也应该继续工作。有人知道吗?也想知道。一件事,您对.logoutUrl(“/logout”)的调用
覆盖先前设置的/invalidate
路径。我认为应该在安全配置文件中指定其他注销URL。Tarun Sapra想知道如何为注销指定两个URL,而不是一个执行两件事的注销URL。据我所知,您只能在安全配置文件中指定一个URL。我提出的解决方案提供了一个解决方案,而@Moshe Arad提出的解决方案做了一些不同的事情(尽管肯定更优雅),但这并不能回答问题。
<context:annotation-config />
<context:component-scan base-package="package.to.logout.handler" />