老项目改造成单点登录

背景

公司老项目兼容spring-boot,不能用boot的单点。
同时公司项目还没有分库。

第一版如图

老项目改造成单点登录_第1张图片
老项目改造成单点登录_第2张图片

boss非得用开源框架。而且之后的项目必须用拦截器的方式。

这里可能出现的坑:

  1. 同级域名cookie共享问题(跨域问题)
  2. userName存放问题。 userName这里改成tonken了。

可以看看这个博客。vue+springboot前后端分离实现单点登录跨域问题解决方法
但是呢。我们项目的*.do是自己的servlert脱离了Spring的管理。
想用mvc的配置跨域,不存在的。。。又得看http协议了。

    @Bean
    public WebMvcConfigurer corsConfigurer() {
        return new WebMvcConfigurerAdapter() {
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                registry.addMapping("/**")
                        .allowedHeaders("*")
                        .allowedMethods("*")
                        .allowedOrigins("*").allowCredentials(true);
            }
        };
    }

最终定稿

  1. 不同域名之间通过jsonp把tonken传过去,之后各个子域名存放在cookies里面。之后的系统内部就不需要动代码了。
  2. 有效时间处理。无状态系统,没有session但是每次请求都有共同的用户数据tonken也在里面,我只需要在所有*.do里面加入更新就行。

你可能感兴趣的:(架构,Ĵava,#,远舢智能)