Skip to content

Commit 4aa8818

Browse files
committed
修复redis序列化认证信息问题
1 parent fdb0544 commit 4aa8818

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

jeecg-boot/jeecg-boot-base-core/src/main/java/org/jeecg/config/security/JeecgRedisOAuth2AuthorizationService.java

+12-1
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,11 @@ public void save(OAuth2Authorization authorization) {
4343

4444
if (isState(authorization)) {
4545
String token = authorization.getAttribute("state");
46+
RedisSerializer<?> redisSerializer = redisTemplate.getValueSerializer();
4647
redisTemplate.setValueSerializer(RedisSerializer.java());
4748
redisTemplate.opsForValue().set(buildKey(OAuth2ParameterNames.STATE, token), authorization, TIMEOUT,
4849
TimeUnit.MINUTES);
50+
redisTemplate.setValueSerializer(redisSerializer);
4951
}
5052

5153
if (isCode(authorization)) {
@@ -54,29 +56,35 @@ public void save(OAuth2Authorization authorization) {
5456
OAuth2AuthorizationCode authorizationCodeToken = authorizationCode.getToken();
5557
long between = ChronoUnit.MINUTES.between(authorizationCodeToken.getIssuedAt(),
5658
authorizationCodeToken.getExpiresAt());
59+
RedisSerializer<?> redisSerializer = redisTemplate.getValueSerializer();
5760
redisTemplate.setValueSerializer(RedisSerializer.java());
5861
redisTemplate.opsForValue().set(buildKey(OAuth2ParameterNames.CODE, authorizationCodeToken.getTokenValue()),
5962
authorization, between, TimeUnit.MINUTES);
63+
redisTemplate.setValueSerializer(redisSerializer);
6064
}
6165

6266
if (isRefreshToken(authorization)) {
6367
OAuth2RefreshToken refreshToken = authorization.getRefreshToken().getToken();
6468
long between = ChronoUnit.SECONDS.between(refreshToken.getIssuedAt(), refreshToken.getExpiresAt());
69+
RedisSerializer<?> redisSerializer = redisTemplate.getValueSerializer();
6570
redisTemplate.setValueSerializer(RedisSerializer.java());
6671
redisTemplate.opsForValue().set(buildKey(OAuth2ParameterNames.REFRESH_TOKEN, refreshToken.getTokenValue()),
6772
authorization, between, TimeUnit.SECONDS);
73+
redisTemplate.setValueSerializer(redisSerializer);
6874
}
6975

7076
if (isAccessToken(authorization)) {
7177
OAuth2AccessToken accessToken = authorization.getAccessToken().getToken();
7278
long between = ChronoUnit.SECONDS.between(accessToken.getIssuedAt(), accessToken.getExpiresAt());
79+
RedisSerializer<?> redisSerializer = redisTemplate.getValueSerializer();
7380
redisTemplate.setValueSerializer(RedisSerializer.java());
7481
redisTemplate.opsForValue().set(buildKey(OAuth2ParameterNames.ACCESS_TOKEN, accessToken.getTokenValue()),
7582
authorization, between, TimeUnit.SECONDS);
7683

7784
// 扩展记录 access-token 、username 的关系 1::token::username::admin::xxx
7885
String tokenUsername = String.format("%s::%s::%s", AUTHORIZATION, authorization.getPrincipalName(), accessToken.getTokenValue());
7986
redisTemplate.opsForValue().set(tokenUsername, accessToken.getTokenValue(), between, TimeUnit.SECONDS);
87+
redisTemplate.setValueSerializer(redisSerializer);
8088
}
8189
}
8290

@@ -125,8 +133,11 @@ public OAuth2Authorization findById(String id) {
125133
public OAuth2Authorization findByToken(String token, @Nullable OAuth2TokenType tokenType) {
126134
Assert.hasText(token, "token cannot be empty");
127135
Assert.notNull(tokenType, "tokenType cannot be empty");
136+
RedisSerializer<?> redisSerializer = redisTemplate.getValueSerializer();
128137
redisTemplate.setValueSerializer(RedisSerializer.java());
129-
return (OAuth2Authorization) redisTemplate.opsForValue().get(buildKey(tokenType.getValue(), token));
138+
OAuth2Authorization oAuth2Authorization = (OAuth2Authorization) redisTemplate.opsForValue().get(buildKey(tokenType.getValue(), token));
139+
redisTemplate.setValueSerializer(redisSerializer);
140+
return oAuth2Authorization;
130141
}
131142

132143
private String buildKey(String type, String id) {

0 commit comments

Comments
 (0)