将spring-security-oauth2与刷新令牌一起使用时,我从刷新的access_token中获取详细信息(OAuth2Authentication.getDetails())时遇到问题,因为它们在我在调试中看到的refreshAccessToken @ DefaultTokenServices中丢失了。首次刷新前会显示详细信息。
我在https://github.com/spring-projects/spring-security-oauth/pull/581看到了一个修复,但这些修改未在三年内提交。
我很惊讶那里3年内没有关于这个话题的抱怨了,我想知道人们是如何解决这个问题的。
答案 0 :(得分:0)
经过一番调查,我能够解决问题如下。
所有这些都是误解的配置,@EnableAuthorizationServer
和@EnableResourceServer
定义之间存在冲突。
在两个类中设置相同的配置,我能够使用扩展TokenEnhancer
和JwtAccessTokenConverter
的自定义类来解决问题。
我还将依赖项更新为上一版本:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
<version>2.0.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security.oauth</groupId>
<artifactId>spring-security-oauth2</artifactId>
<version>2.3.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>5.0.4.RELEASE</version>
</dependency>