1 spring security oauth2 简单配置说明(一)
配套源码:https://download.csdn.net/download/tiancxz/
1.1 工程说明:
授权服务端口10101
资源服务端口10201
2 spring-security-oauth2-server认证服务器配置
2.1 项目结构
OAuth2简单集成使用只需要继承配置两个适配器就行。
AuthorizationServerConfigurerAdapter授权服务配置适配器
WebSecurityConfigurerAdapter网站安全配置适配器
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 启动测试
4.2 访问获取授权码
打开浏览器,输入地址:
第一次访问会跳转到登录页面,输入用户名密码admin ,获取授权码
4.3 通过授权码向服务器申请令牌
也可以将client:secret@放置在请求参数里面
4.4 测试令牌
通过POSTMAN测试发现admin可以访问r3,r4。不能访问r1,r2
4.5 校验令牌
5 password密码授权模式
对于我们内部网站或客户端,授权码模式过于复杂。可用密码模式做为自由传统网站。
在未对现有代码改动时,我们直接用PostMan调用会报错。
我们需要对现有代码进行改造。
5.1 WebSecurityConfiguration改造
5.2 AuthorizationServerConfiguration改造
5.3 测试密码授权模式
6 client_credentials客户端授权模式
不需要改动代码,直接上PostMan测试。合适微服务服务后台相互调用。
项目中单独使用安全度不高。需要配合网关gateway进行authorization_code、password授权模式对外部请求资源拦截。
7 implicit授权模式
已过时。只合适某些静态资源。无需额外配置。
登陆后返回的地址直接加上了token
8 刷新令牌
8.1 AuthorizationServerConfiguration修改支持令牌刷新
8.2 测试刷新令牌
9 自定义获取数据库用户权限实现
9.1 UserDetailsService实现
根据用户名获取用户的权限
相关数据库表数据
9.2 WebSecurityConfiguration修改
WebSecurityConfiguration加载自定义UserDetailsService
每次获取token时,都会进入自定义实现从数据库获取权限
10 @PreAuthorize开启注解
10.1 引入spring-boot-starter-aop或者aspectjweaver
项目中已经引入spring-boot-starter-web,不用再引入spring-boot-starter-aop或者aspectjweaver。只需修改yml。
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’)”)注解
10.5 测试
r4可以访问,r5不能访问
11 JWT令牌配置
11.1 pom.xml修改
资源服务器必须引入
11.2 添加tokenConfig
认证服务器和资源服务器都需要
11.3 认证服务器修改
11.4 资源服务器修改
11.5 测试
此时看到返回的令牌已经变长
测试资源服务器
12 认证服务JDBC改造
12.1 授权码JDBC改造
12.2 客户端详情JDBC改造
12.3 资源服务器ResourceServerConfiguration修改
如果不想使用使用resource_ids,可不用做这一步。添加了resid则需要在数据库里面修改响应字段。
12.4 相关表结构
oauth_client_details:存储客户端详情Navicat Premium 10.1.3激活
oauth_code:存储授权码
今天的文章
Navicat Premium 10.1.3激活(spring security oauth2 常用授权方式配置详细教程(一))分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/108647.html