Navicat Premium 8.1.12激活(spring security oauth2 常用授权方式配置详细教程(一))

Navicat Premium 8.1.12激活(spring security oauth2 常用授权方式配置详细教程(一))

1 spring security oauth2 简单配置说明(一)

配套源码:https://download.csdn.net/download/tiancxz/

1.1 工程说明:

授权服务端口10101

资源服务端口10201

Navicat Premium 8.1.12激活(spring security oauth2 常用授权方式配置详细教程(一))


2 spring-security-oauth2-server认证服务器配置

2.1 项目结构

OAuth2简单集成使用只需要继承配置两个适配器就行。

AuthorizationServerConfigurerAdapter授权服务配置适配器

WebSecurityConfigurerAdapter网站安全配置适配器

Navicat Premium 8.1.12激活(spring security oauth2 常用授权方式配置详细教程(一))

2.2 pom.xml引入


2.3 AuthorizationServerConfiguration授权服务配置适配器


2.4 WebSecurityConfiguration Security网站安配置全适配器


3 spring-security-oauth2-resource 资源服务器配置

3.1 pom.xml引入


3.2 ResourceServerConfiguration 资源服务适配器配置


3.3 application.yml配置认证服务器地址、id、密钥


 

4 authorization_code授权码模式

4.1 启动测试

Navicat Premium 8.1.12激活(spring security oauth2 常用授权方式配置详细教程(一))

 

4.2 访问获取授权码

打开浏览器,输入地址:


第一次访问会跳转到登录页面,输入用户名密码admin ,获取授权码

Navicat Premium 8.1.12激活(spring security oauth2 常用授权方式配置详细教程(一))

Navicat Premium 8.1.12激活(spring security oauth2 常用授权方式配置详细教程(一))

4.3 通过授权码向服务器申请令牌


也可以将client:secret@放置在请求参数里面

Navicat Premium 8.1.12激活(spring security oauth2 常用授权方式配置详细教程(一))

 

Navicat Premium 8.1.12激活(spring security oauth2 常用授权方式配置详细教程(一))

 

4.4 测试令牌

通过POSTMAN测试发现admin可以访问r3,r4。不能访问r1,r2

Navicat Premium 8.1.12激活(spring security oauth2 常用授权方式配置详细教程(一))

Navicat Premium 8.1.12激活(spring security oauth2 常用授权方式配置详细教程(一))

4.5 校验令牌


Navicat Premium 8.1.12激活(spring security oauth2 常用授权方式配置详细教程(一))

5 password密码授权模式

对于我们内部网站或客户端,授权码模式过于复杂。可用密码模式做为自由传统网站。

在未对现有代码改动时,我们直接用PostMan调用会报错。

Navicat Premium 8.1.12激活(spring security oauth2 常用授权方式配置详细教程(一))

我们需要对现有代码进行改造。

5.1 WebSecurityConfiguration改造


5.2 AuthorizationServerConfiguration改造


5.3 测试密码授权模式

Navicat Premium 8.1.12激活(spring security oauth2 常用授权方式配置详细教程(一))

6 client_credentials客户端授权模式

不需要改动代码,直接上PostMan测试。合适微服务服务后台相互调用。

项目中单独使用安全度不高。需要配合网关gateway进行authorization_code、password授权模式对外部请求资源拦截。

Navicat Premium 8.1.12激活(spring security oauth2 常用授权方式配置详细教程(一))

 

7 implicit授权模式

已过时。只合适某些静态资源。无需额外配置。


登陆后返回的地址直接加上了token


 

 

8 刷新令牌

8.1 AuthorizationServerConfiguration修改支持令牌刷新


8.2 测试刷新令牌

Navicat Premium 8.1.12激活(spring security oauth2 常用授权方式配置详细教程(一))

 

9 自定义获取数据库用户权限实现

9.1 UserDetailsService实现

根据用户名获取用户的权限


相关数据库表数据

Navicat Premium 8.1.12激活(spring security oauth2 常用授权方式配置详细教程(一))

9.2 WebSecurityConfiguration修改

WebSecurityConfiguration加载自定义UserDetailsService


每次获取token时,都会进入自定义实现从数据库获取权限


Navicat Premium 8.1.12激活(spring security oauth2 常用授权方式配置详细教程(一))

10 @PreAuthorize开启注解

10.1 引入spring-boot-starter-aop或者aspectjweaver

项目中已经引入spring-boot-starter-web,不用再引入spring-boot-starter-aop或者aspectjweaver。只需修改yml。

Navicat Premium 8.1.12激活(spring security oauth2 常用授权方式配置详细教程(一))

10.2 修改yml

如果已经引入spring-boot-starter-web或spring-boot-starter-aop,需要配置aop.auto = true。aspectjweaver不需要修改。


10.3 ResourceServerConfiguration修改

添加@EnableGlobalMethodSecurity(prePostEnabled = true),注释http安全里面权限验证。


10.4 TbContentController修改

在具体方法添加@PreAuthorize(“hasAnyAuthority(‘r5’)”)注解

Navicat Premium 8.1.12激活(spring security oauth2 常用授权方式配置详细教程(一))

10.5 测试

r4可以访问,r5不能访问

Navicat Premium 8.1.12激活(spring security oauth2 常用授权方式配置详细教程(一))

Navicat Premium 8.1.12激活(spring security oauth2 常用授权方式配置详细教程(一))

 

11 JWT令牌配置

11.1 pom.xml修改

资源服务器必须引入


11.2 添加tokenConfig

认证服务器和资源服务器都需要


11.3 认证服务器修改



11.4 资源服务器修改



11.5 测试

此时看到返回的令牌已经变长

Navicat Premium 8.1.12激活(spring security oauth2 常用授权方式配置详细教程(一))

测试资源服务器

Navicat Premium 8.1.12激活(spring security oauth2 常用授权方式配置详细教程(一))

12 认证服务JDBC改造

12.1 授权码JDBC改造


12.2 客户端详情JDBC改造


12.3 资源服务器ResourceServerConfiguration修改

如果不想使用使用resource_ids,可不用做这一步。添加了resid则需要在数据库里面修改响应字段。


Navicat Premium 8.1.12激活Navicat Premium 8.1.12激活(spring security oauth2 常用授权方式配置详细教程(一))

12.4 相关表结构

oauth_client_details:存储客户端详情

oauth_code:存储授权码

Navicat Premium 8.1.12激活(spring security oauth2 常用授权方式配置详细教程(一))


 

今天的文章
Navicat Premium 8.1.12激活(spring security oauth2 常用授权方式配置详细教程(一))分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/116705.html

(0)
编程小号编程小号
上一篇 2024-07-18
下一篇 2024-06-27

相关推荐