2023-12-27|今天做了什么
今天做了什么:
微服务项目中认证服务器配置授权码模式,并测试通过
扩展 RedisAuthorizationCodeServices ,支持设置过期时间。
- 注意:OAuth2Authentication 无法从 json 反序列化,故无法使用 JSON 反序列化类,只能使用 JDK 反序列化类。
扩展 BearerTokenExtractor,支持从 request 请求的 header 中读取 access_token
配置 JWK token 使用时
- 扩展 JwtAccessTokenConverter ,用于解析 jwks 接口返回的 json,相关说明参考 creating-the-jwk-set-endpoint
- JwkDefinitionSource 类中获取 jwkSetUrls 时,不支持 url 中配置服务名称,即不支持负载均衡。故,重写该类以支持通过 RestTemplate (可以注入一个支持负载均衡的 RestTemplate) 解析 jwkSetUrls 返回的 json 类型的字符串;创建了一个支持负载均衡的 TokenStore。
运行 xuxiaowei-cloud 项目时
提示
Rollup failed to resolve import "@vue/shared"
,原因:这个错误是由于无法解析到@vue/shared
这个包导致的。@vue/shared 是 Vue 内部使用的一个共享工具库。解决方案:将 @vue/shared 添加到项目的依赖中。npm install --save @vue/shared
Controller 的方法上添加注解判断是否有权限,例子:
@PreAuthorize("hasAuthority('manage_user_authority') or #oauth2.hasScope('manage_user_authority')")
Principal 中的用户对象,即 UserDetails 对象不添加额外字段,只有 username,如果想获取用户信息,需要通过用户服务去查询。
关于 OAuth2 的参考资料:
关于 Spring Cloud 集成 OAuth2 的参考仓库:
Related content
- 2023-12-28|今天做了什么
- 2023-12-22|今天做了什么
- 2023-12-21|Spring Security对OAuth2的支持及实现方式
- 2023-12-20|Maven配置继承和生命周期、源码运行Nacos 2.3.0控制台
- 2023-12-19|Spring Security OAuth2配置JWT、Github Actions配置代码扫描
- 2023-12-18|使用Spring Security实现OAuth2授权和认证
- 2023-12-15|JNDI InitialContext源码分析、ClassLoader加载机制
- 2023-12-14|购买新的VPS服务器、最近在做什么
- 2023-12-13|发布到Maven中央仓库的第一个项目
- 2023-12-12|RMI、Java漏洞安全、Semgrep漏洞检测