@@ -43,9 +43,11 @@ public void save(OAuth2Authorization authorization) {
43
43
44
44
if (isState (authorization )) {
45
45
String token = authorization .getAttribute ("state" );
46
+ RedisSerializer <?> redisSerializer = redisTemplate .getValueSerializer ();
46
47
redisTemplate .setValueSerializer (RedisSerializer .java ());
47
48
redisTemplate .opsForValue ().set (buildKey (OAuth2ParameterNames .STATE , token ), authorization , TIMEOUT ,
48
49
TimeUnit .MINUTES );
50
+ redisTemplate .setValueSerializer (redisSerializer );
49
51
}
50
52
51
53
if (isCode (authorization )) {
@@ -54,29 +56,35 @@ public void save(OAuth2Authorization authorization) {
54
56
OAuth2AuthorizationCode authorizationCodeToken = authorizationCode .getToken ();
55
57
long between = ChronoUnit .MINUTES .between (authorizationCodeToken .getIssuedAt (),
56
58
authorizationCodeToken .getExpiresAt ());
59
+ RedisSerializer <?> redisSerializer = redisTemplate .getValueSerializer ();
57
60
redisTemplate .setValueSerializer (RedisSerializer .java ());
58
61
redisTemplate .opsForValue ().set (buildKey (OAuth2ParameterNames .CODE , authorizationCodeToken .getTokenValue ()),
59
62
authorization , between , TimeUnit .MINUTES );
63
+ redisTemplate .setValueSerializer (redisSerializer );
60
64
}
61
65
62
66
if (isRefreshToken (authorization )) {
63
67
OAuth2RefreshToken refreshToken = authorization .getRefreshToken ().getToken ();
64
68
long between = ChronoUnit .SECONDS .between (refreshToken .getIssuedAt (), refreshToken .getExpiresAt ());
69
+ RedisSerializer <?> redisSerializer = redisTemplate .getValueSerializer ();
65
70
redisTemplate .setValueSerializer (RedisSerializer .java ());
66
71
redisTemplate .opsForValue ().set (buildKey (OAuth2ParameterNames .REFRESH_TOKEN , refreshToken .getTokenValue ()),
67
72
authorization , between , TimeUnit .SECONDS );
73
+ redisTemplate .setValueSerializer (redisSerializer );
68
74
}
69
75
70
76
if (isAccessToken (authorization )) {
71
77
OAuth2AccessToken accessToken = authorization .getAccessToken ().getToken ();
72
78
long between = ChronoUnit .SECONDS .between (accessToken .getIssuedAt (), accessToken .getExpiresAt ());
79
+ RedisSerializer <?> redisSerializer = redisTemplate .getValueSerializer ();
73
80
redisTemplate .setValueSerializer (RedisSerializer .java ());
74
81
redisTemplate .opsForValue ().set (buildKey (OAuth2ParameterNames .ACCESS_TOKEN , accessToken .getTokenValue ()),
75
82
authorization , between , TimeUnit .SECONDS );
76
83
77
84
// 扩展记录 access-token 、username 的关系 1::token::username::admin::xxx
78
85
String tokenUsername = String .format ("%s::%s::%s" , AUTHORIZATION , authorization .getPrincipalName (), accessToken .getTokenValue ());
79
86
redisTemplate .opsForValue ().set (tokenUsername , accessToken .getTokenValue (), between , TimeUnit .SECONDS );
87
+ redisTemplate .setValueSerializer (redisSerializer );
80
88
}
81
89
}
82
90
@@ -125,8 +133,11 @@ public OAuth2Authorization findById(String id) {
125
133
public OAuth2Authorization findByToken (String token , @ Nullable OAuth2TokenType tokenType ) {
126
134
Assert .hasText (token , "token cannot be empty" );
127
135
Assert .notNull (tokenType , "tokenType cannot be empty" );
136
+ RedisSerializer <?> redisSerializer = redisTemplate .getValueSerializer ();
128
137
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 ;
130
141
}
131
142
132
143
private String buildKey (String type , String id ) {
0 commit comments