littlebot
Published on 2025-04-13 / 2 Visits
0

【源码】基于Spring Boot和OAuth2的统一单点登录系统

项目简介

本项目是基于Spring Boot框架和OAuth2协议的统一单点登录(SSO)系统,实现了OAuth 2.0的四种通用授权方式,支持应用的分布式和集中式权限控制,还提供多种场景下的使用样例,像纯前端项目、后端Web服务、前后端分离项目等。

项目的主要特性和功能

  1. OAuth 2.0授权支持:支持授权码模式、隐式授权模式、密码模式和客户端凭证模式。
  2. 单点登录(SSO):实现应用的统一单点登录,适配多种应用场景。
  3. 权限控制:具备分布式和集中式权限控制机制,支持JWT Token的颁发和解析,支持单向解密。
  4. 客户端支持:提供Java客户端和Spring Filter组件,便于应用快速对接。
  5. 多种应用场景:支持纯前端项目(如jQuery)、后端Web服务、前后端分离项目(如Vue + Spring Boot)。

安装使用步骤

环境准备

  • JDK 8
  • Maven 3
  • Node 6.9.1
  • MySQL

项目构建

  1. 前端构建
  2. 用Node.js 6.9.1构建。
  3. 构建命令:npm run build
  4. 开发运行命令:npm run dev
  5. 后端构建
  6. 使用JDK 8 + Maven 3.3.9 + MySQL。
  7. 构建命令:mvn clean package
  8. 运行命令:java -jar oauth-0.0.1-SNAPSHOT.jar
  9. 设置项目版本:mvn versions:set -DnewVersion=1.0.1-SNAPSHOT

快速入门

  1. 启动OAuth应用前后端服务。
  2. 访问演示项目:样例项目有纯前端项目(如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】