zoukankan      html  css  js  c++  java
  • springboot+shiro 一个项目部署多个,session名冲突问题

    问题

    前几天遇到一个比较奇怪的问题, 一个项目部署多个,端口不同。启动之后在同一浏览器中进行登录,后一个登录的会把前一个登录的挤掉,导致只能登录一个。

    原因

    是因为sessionid相同,然后修改了springboot中sessionManager的相关配置,主要是sessionIdCookie中的name。修改之后两个项目可以同时登录了。

    解决方案

    1,

    修改每个springboot WEB工程的 application.properties 文件中的 server.session.cookie.name 属性(如没有该属性,则新建)
    使该服务器内部署的所有WEB工程的 server.session.cookie.name 各不相同即可,springboot2.0配置可能不同(这个方法在网上找的,并没有解决我的问题)
    2,使用java配置的方式
        /**
         * shiro session的管理
         */
        @Bean
        public DefaultWebSessionManager sessionManager() {
            DefaultWebSessionManager sessionManager = new DefaultWebSessionManager();
            sessionManager.setGlobalSessionTimeout(tomcatTimeout * 1000);
            sessionManager.setSessionDAO(sessionDAO());
            sessionManager.setSessionIdCookieEnabled(true);
            sessionManager.setSessionIdCookie(sessionIdCookie());
            Collection<SessionListener> listeners = new ArrayList<SessionListener>();
            listeners.add(new BDSessionListener());
            sessionManager.setSessionListeners(listeners);
            return sessionManager;
        }
    
        /**
         * 设置cookie
         * @return
         */
        private SimpleCookie sessionIdCookie() {
            SimpleCookie cookie = new SimpleCookie();
            cookie.setName("USERSESSIONID");
            cookie.setHttpOnly(true);
            cookie.setMaxAge(tomcatTimeout * 10);
            return cookie;
        }
    

  • 相关阅读:
    清除浮动(float)的影响
    再说模拟测试
    关于vue移动端 ios 的兼容问题(二)
    微信小程序 开发 坑(3)
    记录开发微信小程序的坑(3)
    记录开发微信小程序的坑(2)
    记录微信小程序开发遇到的坑
    记录git常用命令
    配置vue项目stylus变量遇见的问题
    如何在vue项目打包去掉console
  • 原文地址:https://www.cnblogs.com/chancy/p/10730694.html
Copyright © 2011-2022 走看看