Prechádzať zdrojové kódy

修复oauth2 token 无法更新缓存的问题

zhouhao 7 rokov pred
rodič
commit
f7ff919f5c

+ 4 - 4
hsweb-authorization/hsweb-authorization-oauth2/hsweb-authorization-oauth2-client/src/main/java/org/hswebframework/web/authorization/oauth2/client/simple/SimpleOAuth2SessionBuilder.java

@@ -82,15 +82,15 @@ public class SimpleOAuth2SessionBuilder implements OAuth2SessionBuilder {
             readWriteLock.writeLock().lock();
             AccessTokenInfo tokenInfo = tokenGetter.get();
             try {
+                token.setGrantType(grantType);
+                token.setServerId(serverConfig.getId());
                 if (tokenInfo != null) {
                     token.setId(tokenInfo.getId());
-                    tokenInfo.setUpdateTime(System.currentTimeMillis());
+                    token.setUpdateTime(System.currentTimeMillis());
                     oAuth2UserTokenRepository.update(tokenInfo.getId(), token);
                 } else {
-                    token.setGrantType(grantType);
                     token.setCreateTime(System.currentTimeMillis());
                     token.setUpdateTime(System.currentTimeMillis());
-                    token.setServerId(serverConfig.getId());
                     oAuth2UserTokenRepository.insert(token);
                 }
             } finally {
@@ -112,7 +112,7 @@ public class SimpleOAuth2SessionBuilder implements OAuth2SessionBuilder {
     }
 
 
-   private Supplier<AccessTokenInfo> tokenGetter = () -> {
+    private Supplier<AccessTokenInfo> tokenGetter = () -> {
         readWriteLock.readLock().lock();
         try {
             return getClientCredentialsToken();

+ 10 - 2
hsweb-system/hsweb-system-oauth2-client/hsweb-system-oauth2-client-service/hsweb-system-oauth2-client-service-simple/src/main/java/org/hswebframework/web/service/oauth2/client/simple/SimpleOAuth2UserTokenService.java

@@ -87,6 +87,9 @@ public class SimpleOAuth2UserTokenService extends GenericEntityService<OAuth2Use
             info.setCreateTime(entity.getCreateTime());
             info.setUpdateTime(entity.getUpdateTime());
             info.setRefreshToken(entity.getRefreshToken());
+            info.setServerId(entity.getServerId());
+            info.setGrantType(entity.getGrantType());
+            info.setScope(entity.getScope());
             return info;
         };
     }
@@ -97,7 +100,12 @@ public class SimpleOAuth2UserTokenService extends GenericEntityService<OAuth2Use
             OAuth2UserTokenEntity entity = entityFactory.newInstance(OAuth2UserTokenEntity.class, info);
             entity.setExpiresIn(info.getExpiresIn());
             entity.setAccessToken(info.getAccessToken());
+            entity.setCreateTime(info.getCreateTime());
+            entity.setUpdateTime(info.getUpdateTime());
             entity.setRefreshToken(info.getRefreshToken());
+            entity.setServerId(info.getServerId());
+            entity.setGrantType(info.getGrantType());
+            entity.setScope(info.getScope());
             return entity;
         };
     }
@@ -126,8 +134,8 @@ public class SimpleOAuth2UserTokenService extends GenericEntityService<OAuth2Use
             tokenInfo.setId(getIDGenerator().generate());
         }
         OAuth2UserTokenEntity entity = entityTokenInfoMapping().apply(tokenInfo);
-
-        entity.setUpdateTime(System.currentTimeMillis());
+        entity.setCreateTime(tokenInfo.getCreateTime());
+        entity.setUpdateTime(tokenInfo.getUpdateTime());
 
         insert(entity);
         return tokenInfo;