Spring 4.2的原生全局CORS支持不适用于CAS filterProcessesUrl

weixin_38067813 2019-09-12 11:24:51
我试图在升级到spring-boot 1.3之后切换到spring 4.2的本机Global CORS支持,但它似乎不适用于CAS过滤器进程url(/ login / cas). 最初,我使用spring-boot 1.2.7和spring 4.2以及spring-security 4.0.2,并使用自制的基于过滤器的cors支持.我自己的休息服务或CAS ST验证URL运行良好.在我升级到spring-boot 1.3后,即将推出spring-spring-security版本.它停止了工作.经过一番挖掘后,将其修复为AddFilterBefore.因此基于过滤的CORS似乎也适用于spring-boot 1.3.0 spring-security-cas. 但是,我想使用本机Global CORS,但似乎无法识别CAS ST验证URL(/ login / cas),但其他端点也可以. 请帮忙. 设置非常简单. @Configuration public class CorsConfiguration { @Bean public WebMvcConfigurer corsConfigurer() { return new WebMvcConfigurerAdapter() { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**"); } }; } } 以下是一些交通: Request URL:http://localhost:9000/login/cas?ticket=ST-1357-15aQrv93jGEUsQpQRF1P-cas01.example.org Request Method:GET Status Code:302 Found Cache-Control:no-cache, no-store, max-age=0, must-revalidate Content-Length:0 Date:Thu, 19 Nov 2015 09:19:31 GMT Expires:0 Location:http://localhost:9000/ Pragma:no-cache Server:Apache-Coyote/1.1 X-Content-Type-Options:nosniff X-Frame-Options:DENY X-XSS-Protection:1; mode=block 以下是控制台错误: XMLHttpRequest cannot load http://localhost:9000/login/cas?ticket=ST-1357-15aQrv93jGEUsQpQRF1P-cas01.example.org. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access.
...全文
96 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38073691 2019-09-12
  • 打赏
  • 举报
回复
默认情况下,在Spring MVC HandlerMapping级别完成CORS本机支持,因此预期CAS过滤器不会启用CORS,因为它会更早地处理请求. 要考虑的一个选择是使用org.springframework.web.filter.CorsFilter,我们还使用AddFilterBefore方法提供Spring Framework 4.2. 请注意,CorsConfiguration与@CrossOrigin或CorsRegistry的默认配置不同,因此您需要自己定义大多数属性,例如: UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); CorsConfiguration config = new CorsConfiguration(); config.setAllowCredentials(true); // you USUALLY want this config.addAllowedOrigin("*"); config.addAllowedHeader("*"); config.addAllowedMethod("GET"); config.addAllowedMethod("PUT"); source.registerCorsConfiguration("/**", config); CorsFilter filter = new CorsFilter(source); // ...

477

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧