# 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;
}
```