当前位置: 首页 > 知识库问答 >
问题:

Spring Security注销不适用于Spring 4 CORS

马新觉
2023-03-14

最近,我尝试了Spring4中新的内置CORS支持。这个特性很棒,我想在我的Spring Boot/AngularJS应用程序中实现它。

所有请求都可以正常工作,但是我不能注销我的用户,因为选项-request to/logout是由Spring Security处理的。

是否可以在Spring Security之前处理选项-request,或者是否应该在logoutsuccessshandler中附加cors-header?

共有1个答案

孟翰海
2023-03-14

在使用Spring Security时,建议使用CorsFilter。您需要确保在Spring Security的FilterChainProxy之前订购CorsFilter

有关使用Corsfilter的详细信息,可以参考Spring Data Rest和Cors。对于这个问题,不同之处在于您可能只想注册注销URL。例如:

@Bean
public CorsFilter corsFilter() {

    UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
    CorsConfiguration config = new CorsConfiguration();
    config.setAllowCredentials(true); // you USUALLY want this
    // likely you should limit this to specific origins
    config.addAllowedOrigin("*"); 
    config.addAllowedHeader("*");
    config.addAllowedMethod("GET");
    config.addAllowedMethod("POST");
    config.addAllowedMethod("PUT");
    source.registerCorsConfiguration("/logout", config);
    return new CorsFilter(source);
}
 类似资料:
  • 我正在学习springsecurity(基于java的配置),我无法使注销正常工作。当我点击注销时,我看到URL更改为http://localhost:8080/logout并获取“HTTP 404-/logout”。登录功能工作正常(即使使用自定义登录表单),但问题是注销,我怀疑重定向的url“localhost:8080/logout”应该类似于“localhost:8808/springte

  • 我正在尝试为我们的 Spring 启动应用程序添加注销功能,但 Spring 注销不起作用......经过身份验证的用户仍然存在,并且不会清除安全上下文。真正让我感到惊讶的是,它有时有效,有时无效。我不知道为什么! 蒂梅拉夫: 下面是我注销的代码块; 我也尝试过,但没有帮助; 有人知道它为什么会有如此奇怪的行为吗?

  • 我是Spring的新手,我很困惑@CreatedDate注释在实体中是如何工作的。 我做了一次谷歌搜索,有很多解决方案,但除了一个,没有一个适合我。我很困惑为什么? 这是我先试的 它不起作用。我为列中的值获取了NULL。 然后我做了这个。 这实际上将时间戳存储在db中。我的问题是,我遵循的大多数教程都建议我不需要来获取当前时间戳。看起来我确实需要它。我缺少什么吗?

  • 两个无状态EJB及其远程接口。EJB1被注入EJB2 > EJB2还使用一些可选包(在其清单中声明) WebLogic应用服务器(10.3.3) 两个EJB被打包成两个单独的JAR文件 如果将两个JAR文件打包到一个EAR文件中并部署,则依赖注入工作。但是如果我单独部署它们,即使我首先部署了EJB1并在Weblogic(com.xxx.EJB1#com.xxx.layer1中验证了全局JNDI名称

  • 问题内容: 我想@WebServlet在运行于Tomcat 8的Java EE Web应用程序中使用注释。 我已经读到我需要在自己的服务器中声明Servlet版本3.1,web.xml并且我的Servlet需要扩展HttpServlet。我做了所有这些,但仍然@WebServlet行不通。我正在获取HTTP 404。 我也试过我的配置用metadata-complete=”false”在我web.

  • 我试图让RunWith(PowerMockRunner.class)处理我现有的包注释。 版本: Powermock 1.4.12 mockito 1.9.0 jUnit 4.8.2 package-info.java//这是包注释 测试说明。java//这是包“com.smin.dummy”的元数据注释类 A、 爪哇 莫卡。Java语言 在unitest MockA中。如果我不使用RunWith