Spring security Spring安全多个注销URL?

Spring security Spring安全多个注销URL?,spring-security,Spring Security,我正在使用SpringSecurityJavaConfig,我想知道一种实现多个URL注销的方法。i、 e logout().logoutRequestMatcher(new AntPathRequestMatcher("/invalidate")).logoutUrl("/logout"); 在这段代码中,正常的注销url“/logout”工作正常,这是一个post请求,但我也希望用户注销url“/invalidate”,这似乎不起作用。这可能不是最优雅的方式,但您可以只指定一个@Cont

我正在使用SpringSecurityJavaConfig,我想知道一种实现多个URL注销的方法。i、 e

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" />