Springboot+SpringSecurity+CAS+Jwt+Mybatis+DM+Vue+Axios前后端分离跨域问题解决(一)

技术标题:Springboot+SpringSecurity+CAS+Jwt+Mybatis+DM+Vue+Axios前后端分离

    背景资料查询:网络上99%的文章大多是CSDN、博客园、github、gitee、codercto、segmentfault、简书、
    cnblogs、360doc、voidcn、https://spring.io/projects/spring-security官方
    
    以上地址涉及技术标题的文章基本都涉猎过一遍,没有一篇文章能讲到点上。有文章说可以用ngix反向代理
    基于session可以实现,个人未参考。我这里用的DM国产达梦数据库。其他数据库都OK。可以忽略库的问题。
    
    解决跨域问题方案:
        在springboot以纯javabean形式集成cas,做前置CORSFilter拦截头响应处理,
        及声明全局springMVC适配支持接口对CorsMaping重写CorsRegistry,声明响应头策略响应方法及请求源地址,
        解决了CORS跨域拦截问题。
    特别说明:
        .anyRequest().authenticated()//任何请求,登录后可以访问,这里声明了认证权限,jwttoken过滤器
        在识别token信息后需要对 SecurityContextHolder.getContext().setAuthentication(authentication);
        set这个authentication对象,否则过滤链会丢失认证信息,认定为匿名用户anonymous,导致上面的认证不通过,
        即便你都声明了CORS策略机制,也会发声跨域问题。

1、springboot版本 2.0.3,低版本的spring不支持http.cors()语法
2、springSecurity依赖的core、config等核心库版本 4.2.5 ,低于该版本的
   好多

你可能感兴趣的:(java,CAS,跨域)