同一地址,不同服务,其中一个退出,另一个也会退出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
我不是来改变世界的