EASY-SSO 使用说明
EASY-SSO gitee地址 https://gitee.com/xmingtx/easy-sso
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客户端集成
- 在pom.xml文件中添加如下依赖:
<dependency>
<groupId>com.mk</groupId>
<artifactId>easy-sso-springboot-starter</artifactId>
<version>${lastest.version}</version>
</dependency>
- 在启动类上添加
@EnableSso
注解,如下:
@EnableSso
@SpringBootApplication
public class SsoClientApplication {
public static void main(String[] args) {
SpringApplication.run(SsoClientApplication.class);
}
}
- 在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客户端集成
- 在pom.xml文件中添加如下依赖:
<dependency>
<artifactId>easy-sso-sdk</artifactId>
<groupId>com.mk</groupId>
<version>${lastest.version}</version>
</dependency>
- 在web.xml中添加如下配置:
<filter>
<filter-name>SsoWebFilter</filter-name>
<filter-class>com.mk.sso.sdk.filter.SsoAuthenticationFilter</filter-class>
<init-param>
<param-name>configFile</param-name>
<param-value>easy-sso-client.xml</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SsoWebFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
- 在easy-sso-sdk模块的resources目录下复制一份easy-sso-client.xml文件到客户端服务的resources目录下,配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE easysso [
<!ELEMENT easysso (clientType+,ignoreUrls?,ignoreResources?,ssoServer+,logoutUrl+,loginUrl+,ajaxFailureResponse?, jedisConfig?)>
<!ELEMENT clientType (#PCDATA)>
<!ELEMENT ignoreUrls (#PCDATA)>
<!ELEMENT ignoreResources (#PCDATA)>
<!ELEMENT ssoServer (#PCDATA)>
<!ELEMENT logoutUrl (#PCDATA)>
<!ELEMENT loginUrl (#PCDATA)>
<!ELEMENT ajaxFailureResponse (contentType?,code?,msg?)>
<!ELEMENT contentType (#PCDATA)>
<!ELEMENT code (#PCDATA)>
<!ELEMENT msg (#PCDATA)>
<!ELEMENT jedisConfig (address+, maxTotal?, maxIdle?, minIdle?, maxWaitMillis?)>
<!ELEMENT address (#PCDATA)>
<!ELEMENT maxTotal (#PCDATA)>
<!ELEMENT maxIdle (#PCDATA)>
<!ELEMENT minIdle (#PCDATA)>
<!ELEMENT maxWaitMillis (#PCDATA)>
]>
<easysso>
<!-- 应用类型 -->
<clientType>web</clientType>
<!-- 不需要验证的路径 -->
<ignoreUrls>
/login
/sso/login
/sso/loginPage
</ignoreUrls>
<!-- 不需要拦截的静态资源 -->
<ignoreResources>
.js
.css
.jpg
.png
.ico
.html
</ignoreResources>
<!-- SSO Server地址 -->
<ssoServer>http://127.0.0.1:8888/</ssoServer>
<!-- 注销接口地址 -->
<logoutUrl>/sso/logout</logoutUrl>
<!-- 登录地址完整路径 -->
<loginUrl>http://127.0.0.1:8888/sso/loginPage</loginUrl>
<!-- ajax请求认证失败响应配置 -->
<ajaxFailureResponse>
<contentType>application/json</contentType>
<code>401</code>
<msg>用户未登录</msg>
</ajaxFailureResponse>
<!-- redis配置,客户端类型为app时需要配置 -->
<!--
<jedisConfig>
<address>redis://127.0.0.1:6379</address>
<maxTotal>200</maxTotal>
<maxIdle>50</maxIdle>
<minIdle>8</minIdle>
<maxWaitMillis>10000</maxWaitMillis>
</jedisConfig>
-->
</easysso>
标签: SpringBoot SSO