cookie一致性
非跨域cookie一致性解决
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 请求拦截器 import javax.servlet.http.Cookie;<br> import javax.servlet.http.HttpServletRequest;<br> import javax.servlet.http.HttppServletResponse;<br> import org.springframework.web.servlet.HandlerInterceptor; @Component public class CustomInterceptor implements handlerInterceptor { @Overrde publlic boolean preHandle(HttpServletRequest reqest,HttppServletResponse response,Object handler) throws Exception { //从请求中获取cookie Cookie[] cookies = request.getCookies(); //将cookie放入响应中 Cookie sessionCookie = Arrays.stream(cookies).filter(e -> e.getName().equals( "SIID" ).findAny().orElse( null ); if (sessionCookie == null ) { sessiiionCookie = new Cookie( "SID" ,request.getSession().getId(); response.addCookie(sessiionCookie); } return true ; } } |
配置完拦截器,在配置中获取拦
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.UrlBasedCorsConfigurationSource; import org.springframework.web.filter.CorsFilter; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration public class GlobalCorsConfig implements WebMvcConfigurer { @Autowired private CustomInterceptor interceptor; @Bean public CorsFilter corsFilter() { //1. 创建CorsConfiguration对象 CorsConfiguration corsConfiguration = new CorsConfiguration(); corsConfiguration.addAllowedOrigin( "*" ); //设置允许那些域来访问,*是通配符,允许所有域(如果还不行,将*改为http:xx:8080) corsConfiguration.addAllowedHeader( "*" ); //请求头字段 corsConfiguration.addAllowedMethod( "*" ); //请求方式(GET,POST,DELETE,PUT) //设置source UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); source.registerCorsConfiguration( "/**" , corsConfiguration); //1.映射路径 2.传入CorsConfiguration对象 return new CorsFilter(source); } @Override public void addInterceptors(InterceptorRegisty registry) { // 拦截所有请求 registry.addInterceptor(interceptor).addPathPatterns( "/**" ); } } |
vue全局配置cookie在main.js中
1 2 3 | import axios from 'axios' axios.defaults.withCredentials = true |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)