## 3-1 概要设计 2. 用户注册 用户登录 3. passport登录 , 从什么地方来, 到什么地方去 4. JSESSION的共享 ,实现多服务器集群的 SSO 5. 与其他系统的SSO ## 3-2 数据库设计 (数据库对应的模式描述) 2. 用户注册 用户登录 ![](img/2022-09-22-15-08-42.png) 3. passport登录 , 从什么地方来, 到什么地方去 4. JSESSION的共享 ,实现多服务器集群的 SSO 5. 与其他系统的SSO ## 3-3 技术路线 (使用的技术路线) 2. 用户注册 用户登录 3. passport登录 , 从什么地方来, 到什么地方去 4. JSESSION的共享 ,实现多服务器集群的 SSO 5. 与其他系统的SSO ## 3-4 详细方案(设计与技术实现 技术细节) 2. 用户注册 用户登录 3. passport登录 , 从什么地方来, 到什么地方去 4. JSESSION的共享 ,实现多服务器集群的 SSO 5. 与其他系统的SSO ### 准备环境 >1.配置可以共享session的tomcat > >2.创建docker容器 > >3.上传war包 重启容器 #### 配置可以共享session的tomcat 参考连接https://blog.csdn.net/lzc409973859/article/details/51981079 `本质为替换掉tomcat默认的session管理` >1. 下载RedisSessionManager 源代码 >2. 修改源代码 `修改RedisSessionManager类中的initializeSerializer()方法` ```java private void initializeSerializer() throws ClassNotFoundException, IllegalAccessException, InstantiationException { log.info("Attempting to use serializer :" + serializationStrategyClass); serializer = (Serializer) Class.forName(serializationStrategyClass).newInstance(); Loader loader = null; if (getContainer() != null) { loader = getContainer().getLoader(); } ClassLoader classLoader = null; if (loader != null) { serializer.setClassLoader(classLoader); } } private void initializeSerializer() throws ClassNotFoundException, IllegalAccessException, InstantiationException { log.info("Attempting to use serializer :" + serializationStrategyClass); serializer = (Serializer) Class.forName(serializationStrategyClass).newInstance(); Loader loader = null; Context context = this.getContext(); if (context != null) { loader = context.getLoader(); } ClassLoader classLoader = null; if (loader != null) { classLoader = loader.getClassLoader(); } serializer.setClassLoader(classLoader); } ``` >3. 使用idea maven 打包 ```xml 4.0.0 com.yuncai build_tomcat_session_redis 1.0-SNAPSHOT 8 8 org.apache.tomcat tomcat-catalina 8.0.33 redis.clients jedis 2.7.2 org.apache.maven.plugins maven-compiler-plugin 3.0 1.8 1.8 UTF-8 ``` >4. 将 `build_tomcat_session_redis ` `jedis-2.7.2.jar` ` commons-pool2-2.3.jar` 拷贝到tomcat的lib文件夹下面 > > 这里可以把这些jar放到lib的自定义文件夹。以便与docker映射。 > > 下边是 将jar放入tomcat lib 文件夹下的 rslib文件夹的配置 - 修改tomcat `conf`文件夹下` catalina.properties`配置文件 在==common.loader==后边添加=="${catalina.home}/lib/rslib/*.jar"== ```properties common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar","${catalina.home}/lib","${catalina.home}/lib/*.jar","${catalina.home}/lib/rslib/*.jar" ``` >5. 修改tomcat配置 使其使用自定义SessionManager 并配置redis - 修改tomcat `conf`文件夹下 `context.xml` ```xml ``` #### 创建docker容器 ```shell