同一地址,不同服务,其中一个退出,另一个也会退出springboot+shiro

说明:

在服务器上部署了两个服务,其中,除了端口不同,其他都一样;

现象:其中一个服务退出,另一个也会退出;

原因:浏览器存储cookie的名称相同,所以会清理掉;

解决方案:在shiro配置文件中,更新不同的cookiename与remember的名称

   @Value("${session.cookie.name}")
    private String sessionCookieName;

    @Value("${session.cookie.remember}")
    private String remember;

  

    @Bean(name = "simpleIdCookie")
    public SimpleCookie getSimpleCookie() {
        SimpleCookie simpleCookie = new SimpleCookie();
        simpleCookie.setName(null==sessionCookieName?"SHIROSESSIONID":sessionCookieName);
//        simpleCookie.setName("SHIROSESSIONID");
        return simpleCookie;
    }
    @Bean
    public SimpleCookie rememberMeCookie() {
        SimpleCookie simpleCookie = new SimpleCookie(null==remember?"rememberMe":remember);
//        SimpleCookie simpleCookie = new SimpleCookie("rememberMe");
        simpleCookie.setMaxAge(86400);//存活  一天
        return simpleCookie;
    }

 

 

还看到别的相似的,记录一下:

spring boot 多模块,多端口session冲突问题
解决办法:在其中一个项目的application.properties配置文件中加入如下配置:server.servlet.session.cookie.name
=sessionid_1 问题原因:这本身和springboot2.0没有任何关系,是因为在同一个地址上发布了两个使用同样cookie name的tomcat导致的,springboot内置的tomcat会生成一个名称为JSESSIONID的cookie name,如果不做修改,两个web服务的cookie name是相同的所以会彼此覆盖,所以需要去修改springboot内置tomcat的cookie name让两个项目的cookie name不同。 需要注意springboot2.0之前的版本是server.session.cookie.name,而2.0之后改为了server.servlet.session.cookie.name,此处为一个坑。 2.0以上版本 server.servlet.session.cookie.name=session_1 2.0以下版本 server.session.cookie.name=session_1

 

posted @ 2020-06-24 10:05  忧伤还是快乐EL  阅读(452)  评论(0编辑  收藏  举报