项目简介
本项目是基于Spring Boot框架和OAuth2协议的统一单点登录(SSO)系统,实现了OAuth 2.0的四种通用授权方式,支持应用的分布式和集中式权限控制,还提供多种场景下的使用样例,像纯前端项目、后端Web服务、前后端分离项目等。
项目的主要特性和功能
- OAuth 2.0授权支持:支持授权码模式、隐式授权模式、密码模式和客户端凭证模式。
- 单点登录(SSO):实现应用的统一单点登录,适配多种应用场景。
- 权限控制:具备分布式和集中式权限控制机制,支持JWT Token的颁发和解析,支持单向解密。
- 客户端支持:提供Java客户端和Spring Filter组件,便于应用快速对接。
- 多种应用场景:支持纯前端项目(如jQuery)、后端Web服务、前后端分离项目(如Vue + Spring Boot)。
安装使用步骤
环境准备
- JDK 8
- Maven 3
- Node 6.9.1
- MySQL
项目构建
- 前端构建:
- 用Node.js 6.9.1构建。
- 构建命令:
npm run build
- 开发运行命令:
npm run dev
- 后端构建:
- 使用JDK 8 + Maven 3.3.9 + MySQL。
- 构建命令:
mvn clean package
- 运行命令:
java -jar oauth-0.0.1-SNAPSHOT.jar
- 设置项目版本:
mvn versions:set -DnewVersion=1.0.1-SNAPSHOT
快速入门
- 启动OAuth应用前后端服务。
- 访问演示项目:样例项目有纯前端项目(如jQuery)、前端Vue框架项目、后端Spring Boot Web服务等,可根据不同授权方式进行演示。
演示使用
演示前确保OAuth应用前后端服务已启动。 | 样例项目 | 前端框架 | 后端框架 | OAuth2.0授权方式 | 前端服务端口 | 后端服务端口 | | --- | --- | --- | --- | --- | --- | | demo-front-jquery | 纯前端 | 无 | Implicit Grant | 9001 | 无 | | demo-front-vue | 前端vue框架 + express服务器 | 无 | Authorization Code Grant | 9002 | 无 | | demo-web-service | 无 | 后端spring框架 + 后端静态页面 | Client Credential Grant | 无 | 9003/9004 | | demo-spring-boot-web | 无 | 后端spring框架 + 后端静态登录页面 | Resource Owner Credential Grant | 无 | 9005 | | demo-front-vue-spring-boot-web| 前端vue框架 + express服务器|后端spring框架 |Authorization Code Grant | 9006 | 9007 | 更详细的演示说明,可进入各个演示项目,阅读各项目里的README文件。
注意事项
使用Java 9运行OAuth2后端服务时,可能出现javax.xml.bind.JAXBException
异常。需在pom.xml
文件中添加如下依赖:
xml
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】