JEECG 单点集成文档 === kisso 采用的是加密会话 cookie 机制实现单点登录 SSO 服务,具备“无状态”、“分散验 证” 等特性。 1、session 存放在服务器端,cookie 存放在客户端,存在 2 种状态:“ 第一种:持久 cookie 具有时效性,以文件的形式存放在客户机硬盘中, 时间一到生命周期结束自动被删除。第二种:临时 cookie 又叫会话 cookie 放在浏览器 内存中,浏览器关闭生命周期结束自动失效 ”。 2、单纯不做任何改变而言 session 更安全,如果 cookie 采取各种安全保护措施,此时的 cookie 一样安全。 3、cookie 轻松实现分布式服务部署,单点登录跨域访问等问题,换成 session 需要处理 session 复制及各种问题实现困难。 ## 一、服务端集成 ### 1. maven依赖jar ``` <!-- kisso begin --> <dependency> <groupId>com.baomidou</groupId> <artifactId>kisso</artifactId> <version>3.6.11</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.15</version> </dependency> <!-- kisso end --> ``` ### 2. 项目配置文件 (1)spring配置文件 ``` <!-- 单点登录 kisso 注入初始化,也支持使用 web.xml 初始化 --> <bean id="kissoInit" class="com.baomidou.kisso.web.WebKissoConfigurer" init-method="initKisso"> <property name="ssoPropPath" value="sso.properties" /> <!-- 不同环境配置选择设置 ,dev_mode/开发模式 ,test_mode/测试模式 ,online_mode/生产模式--> <property name="runMode" value="test_mode" /> </bean> ``` (2)sso.properties文件配置 ``` # 单点登录信息加密密钥 sso.secretkey=Kisso4springMvc80mAS # cookie名称 sso.cookie.name=uid # cookie单点服务器登录域名(本地测试需要host配置域名,不能使用ip) sso.cookie.domain=.test.com ``` ## 二、客户端集成 ### 1.Maven依赖jar ``` <!-- kisso begin --> <dependency> <groupId>com.baomidou</groupId> <artifactId>kisso</artifactId> <version>3.6.11</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.15</version> </dependency> <!-- kisso end --> ``` ### 2.客户端配置文件 (1)spring配置文件 ``` <!-- kisso 注入初始化,也支持使用 web.xml 初始化 --> <bean id="kissoInit" class="com.baomidou.kisso.web.WebKissoConfigurer" init-method="initKisso"> <property name="ssoPropPath" value="sso.properties" /> <!-- 不同环境配置选择设置 dev_mode 开发模式 test_mode 测试模式 online_mode 生产模式 --> <property name="runMode" value="test_mode" /> </bean> <mvc:interceptors> <!-- SSO 登录验证拦截器 path 对所有的请求拦截使用/**,对某个模块下的请求拦截使用:/myPath/* --> <mvc:interceptor> <mvc:mapping path="/**" /> <bean class="com.baomidou.kisso.web.interceptor.SSOSpringInterceptor" /> </mvc:interceptor> <!-- SSO 系统权限拦截器 TODO 需要自己实现拦截器来控制权限处理(菜单权限,功能权限控制) --> </mvc:interceptors> ``` (2)sso.properties文件配置 ``` # 单点登录信息加密密钥 sso.secretkey=Kisso4springMvc80mAS # cookie名称 sso.cookie.name=uid # cookie单点服务器登录域名(本地测试需要host配置域名,不能使用ip) sso.cookie.domain=.test.com # 服务端登录地址 sso.login.url=http://sso.test.com:8080/jeecg/loginController.do?login ```