Skip to content

LookBackInTheRain/oauth-boot-up

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OAUTH-BOOT-UP

OAUTH-BOOT 的升级,spring-security ,spring-security-oauth2 ,string boot 学习


Current

  1. 授权码模式,密码模式,简化模式(未测试),客户端模式(未测试)
  2. JWT
  3. 自定义登录页面和授权页面
  4. 自定义异常处理

Future

  1. 短信登录
  2. 第三方登录(QQ、微信、微博)
  3. 基础管理界面

配置

  1. 认证服务配置
server: port: 8000 spring: application: name: oauth-boot-service # mysql 配置 datasource: username: dev password: Sys@gzu123+ driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://172.16.2.103:3306/boot?useUnicode=true&characterEncoding=utf-8&useSSL=false type: com.alibaba.druid.pool.DruidDataSource #redis 配置 redis: host: 172.16.2.104 port: 6379 password: Sys@redis123+ jedis: pool: max-active: 8 # 连接词最大链接数 max-wait: -1 # 连接池最大阻塞等待时间(负数代表没有限制) max-idle: 8 # 连接池最大空闲连接数 min-idle: 0 # 连接池最小空闲连接数 timeout: 10000 # 链接超时时间 (ms),连接时间小会导致连接超时 # 模板引擎配置 thymeleaf: prefix: classpath:/views/ suffix: .html cache: false mvc: throw-exception-if-no-handler-found: true mybatis-plus: mapper-locations: classpath:/mapper/*Mapper # mapper 文件路径 # type-aliases-package: club.yuit.boot.entity configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl global-config: db-config: id-type: uuid db-type: mysql # 3.0 版本的必须配置 不然无法启动 nested exception is com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: GlobalConfigUtils setMetaData Fail ! Cause:java.lang.NullPointerException boot: oauth: # token 存储方式,可选配置 token-store-type: jwt #默认为 memory # token签名秘钥,可选配置,默认:OAUTHBOOT@IUY09&098#UIOKNJJ-YUIT.CLUB token-signing-key: 123qwe  # 登录处理url 可选配置 login-process-url: /auth/authorize 
  1. 资源服务配置
server: port: 9000 # servlet: # context-path: /api/v1 spring: application: name: oauth-boot-resource # mysql 配置,如果token存储方式为jdbc,必须配置 datasource: username: dev password: Sys@gzu123+ driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://172.16.2.103:3306/boot?useUnicode=true&characterEncoding=utf-8&useSSL=false type: com.alibaba.druid.pool.DruidDataSource #redis 配置,如果token存储方式为redis,必须配置 redis: host: 172.16.2.104 port: 6379 password: Sys@redis123+ jedis: pool: max-active: 8 # 连接词最大链接数 max-wait: -1 # 连接池最大阻塞等待时间(负数代表没有限制) max-idle: 8 # 连接池最大空闲连接数 min-idle: 0 # 连接池最小空闲连接数 timeout: 10000 # 链接超时时间 (ms),连接时间小会导致连接超时 mvc: throw-exception-if-no-handler-found: true boot: oauth: token-store-type: jwt token-signing-key: 123123 

授权码模式

  1. 请求授权 http://ip:port/oauth/authorize?response_type=code&client_id=client&client_secret=123qwe&redirect_uri=http://localhost:9000&scope=select
  2. 如果没有登录会跳转到登录页面,登录后跳转到授权页面(是否会跳转到授权页面取决于是否将isAutoApprove字段的值 )
  3. 授权后得到一个授权码,拿着授权码即可申请token

密码模式

没有配置允许客户端表单登录的,将客户端id和密码base64编码放入请求头中,根据oauth2协议规定的密码模式正确填写参数即可申请token

依赖

框架/类库/数据库 版本号
java 11(Mac)/ 8(Win10)
spring-boot 2.1.3.RELEASE
spring-security 5.1.4.RELEASE
spring-security-oauth2-autoconfigure 2.1.3.RELEASE
mybatis-plus 3.1.0
数据库连接池(druid) 1.1.14
swagger-ui 2.9.2
hibernate-validator 6.0.13.Final
MySQL 5.7.22 MySQL Community Server
Redis 4.0.10

项目效果

  1. 自定义登录和授权页面效果图 自定义登录和授权页面效果图

建表语句在doc/table.sql中

相关的测试数据也在这个sql文件中,加密的密码统一为123qwe

请使用上述依赖所规定的版本

技术交流群 QQ: 931534231 单纯的技术交流

Releases

No releases published

Packages

No packages published