前言:
如今姐妹们对“css跨站”可能比较看重,你们都需要分析一些“css跨站”的相关文章。那么小编同时在网上收集了一些有关“css跨站””的相关知识,希望你们能喜欢,大家一起来学习一下吧!一、CORS简述
要说明CORS(Cross Origin Resourse-Sharing) 跨站资源共享,就必须先说同源策略。长话短说,同源策略就是向服务端发起请求的时候,以下三项必须与当前浏览器应用一致:域名、端口、协议。用白话说:就是在你的应用发送请求不能访问别人的资源,否则浏览器就会限制你。当然也有例外,如:img、srcipt、iframe等资源引用的HTML标签不受同源策略的限制。
但是我们实际开发中又经常会跨站访问,比如前后端分离的应用是分开部署的,在浏览器看来是两个域。所以同源策略是用来禁止跨域访问的,CORS正好相反是根据自己的需求与规则,有限的开放部分资源的共享。
二、Spring-CORS规则基础配置
想在Spring或Spring Boot的web环境下实现跨域资源共享,主要有三种实现方式:
@CrossOrigin注解,这个注解是作用于Controller类或者请求方法上的,实现局部接口的跨域资源共享。实现WebMvcConfigurer接口addCorsMappings方法,实现全局配置的跨域资源共享。注入CorsFilter过滤器,实现全局配置的跨域资源共享。推荐使用。
这三种实现方式在我之前发过的的另外一篇文章《SpringBoot解决跨域访问的问题》中已经介绍过,这里就不多做说明了。在Spring Security环境下提供了第四种CORS规则配置方法,请关注下文。
三、Spring Security 中的配置CORS
当我们的应用使用了Spring Security之后,我们会发现上面的配置方法全部失效。此时需要在spring security的WebSecurityConfigurerAdapter中的configure(HttpSecurity http)配置方法,加上http.cors()配置,第二小节中的配置才会生效。
public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.cors().and() ... }}
另外Spring Security为我们提供了一种新的CORS规则的配置方法:CorsConfigurationSource 。使用这种方法实现的效果等同于注入一个CorsFilter过滤器。
@BeanCorsConfigurationSource corsConfigurationSource() { CorsConfiguration configuration = new CorsConfiguration(); configuration.setAllowedOrigins(Arrays.asList(";)); configuration.setAllowedMethods(Arrays.asList("GET","POST")); UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); source.registerCorsConfiguration("/**", configuration); return source;}
标签: #css跨站