# EASY-SSO **Repository Path**: xmingtx/easy-sso ## Basic Information - **Project Name**: EASY-SSO - **Description**: 单点登录(支持web和app客户端、支持springboot客户端和非springboot客户端) - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-11-16 - **Last Updated**: 2022-05-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # EASY-SSO - EASY-SSO是一个分布式单点登录框架。只需要登录一次就可以访问所有相互信任的应用系统。 - 拥有"轻量级、分布式、跨域、Cookie+Token均支持、Web+APP均支持"等特性。 - 支持SpringBoot服务和非SpringBoot服务集成 ## 包含模块 - easy-sso-server 单点登录服务端,主要负责登录认证、提供统一登录页面等 - easy-sso-sdk 单点登录核心包,主要包含配置类、过滤器等,支持非SpringBoot客户端集成 - easy-sso-springboot-starter SpringBoot starter插件,支持SpringBoot客户端集成 - easy-sso-client 单点登录客户端demo,提供客户端集成案例,另外此模块下又分为easy-sso-client-sample(非SpringBoot客户端)和easy-sso-client-springboot(SpringBoot客户端)两个集成案例 ## 客户端集成 ### SpringBoot客户端集成 1. 在pom.xml文件中添加如下依赖: ``` com.mk easy-sso-springboot-starter ${lastest.version} ``` 2. 在启动类上添加`@EnableSso`注解,如下: ``` @EnableSso @SpringBootApplication public class SsoClientApplication { public static void main(String[] args) { SpringApplication.run(SsoClientApplication.class); } } ``` 3. 在application.yml配置文件中添加如下配置: ``` easy: sso: client: #是否启用sso客户端 enable: true #客户端类型[web|app] client-type: app #sso服务端地址 sso-server: http://127.0.0.1:8888/ #登录地址 login-url: http://127.0.0.1:8888/oauth/login #退出接口地址 logout-url: /oauth/logout #忽略校验直接放行的地址 ignore-urls: /sso/loginPage,/sso/login,/oauth/login #直接放行的静态资源后缀 ignore-resources: .js, .css, .jpg, .png, .ico, .html #ajax请求未认证响应配置 ajax-failure-response: #响应类型 content-type: application/json #响应状态码 code: 401 #提示信息 msg: 用户未登录 #redis配置,客户端类型为app时需要配置,web类型客户端不需要配置 redis: address: redis://127.0.0.1:6379 ``` 具体集成详情可参考easy-sso-client-springboot案例 ### 非SpringBoot客户端集成 1. 在pom.xml文件中添加如下依赖: ``` easy-sso-sdk com.mk ${lastest.version} ``` 2. 在web.xml中添加如下配置: ``` SsoWebFilter com.mk.sso.sdk.filter.SsoAuthenticationFilter configFile easy-sso-client.xml SsoWebFilter /* ``` 3. 在easy-sso-sdk模块的resources目录下复制一份easy-sso-client.xml文件到客户端服务的resources目录下,配置如下: ``` ]> web /login /sso/login /sso/loginPage .js .css .jpg .png .ico .html http://127.0.0.1:8888/ /sso/logout http://127.0.0.1:8888/sso/loginPage application/json 401 用户未登录 ``` ## 获取当前登录用户 1. 非SpringBoot项目获取方式如下: ``` @GetMapping("/getUser") public SsoUser getUser(HttpServletRequest request){ String token = request.getHeader(SsoConf.TOKEN_AUTH_HEADER); if (StringUtils.isNotEmpty(token)) { return SsoTokenLoginHelper.getStorageUser(token); } return SsoUtil.getCurrentUser(request); } ``` 2. SpringBoot项目获取方式如下: ``` @GetMapping("/getCurrentUser") public SsoUser getCurrentUser(@CurrentUser SsoUser ssoUser){ return ssoUser; } ```