diff --git a/cf-framework/cf-spring-boot-starter-security/src/main/java/com/cf/imes/framework/security/core/service/SecurityFrameworkService.java b/cf-framework/cf-spring-boot-starter-security/src/main/java/com/cf/imes/framework/security/core/service/SecurityFrameworkService.java index 13b1613cb..4de2f7e98 100644 --- a/cf-framework/cf-spring-boot-starter-security/src/main/java/com/cf/imes/framework/security/core/service/SecurityFrameworkService.java +++ b/cf-framework/cf-spring-boot-starter-security/src/main/java/com/cf/imes/framework/security/core/service/SecurityFrameworkService.java @@ -24,11 +24,11 @@ public interface SecurityFrameworkService { boolean hasAnyPermissions(String... permissions); /** - * 清空本地缓存 + * 清空本地权限缓存 * * @param */ - void invalidateAll(); + void invalidateAllPermissionsCache(); /** * 判断是否有角色 diff --git a/cf-framework/cf-spring-boot-starter-security/src/main/java/com/cf/imes/framework/security/core/service/SecurityFrameworkServiceImpl.java b/cf-framework/cf-spring-boot-starter-security/src/main/java/com/cf/imes/framework/security/core/service/SecurityFrameworkServiceImpl.java index ec0885c00..2e2486de9 100644 --- a/cf-framework/cf-spring-boot-starter-security/src/main/java/com/cf/imes/framework/security/core/service/SecurityFrameworkServiceImpl.java +++ b/cf-framework/cf-spring-boot-starter-security/src/main/java/com/cf/imes/framework/security/core/service/SecurityFrameworkServiceImpl.java @@ -66,7 +66,7 @@ public class SecurityFrameworkServiceImpl implements SecurityFrameworkService { } @Override - public void invalidateAll() { + public void invalidateAllPermissionsCache() { hasAnyPermissionsCache.invalidateAll(); } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/redis/listener/SystemPermissionRefreshRedisListener.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/redis/listener/SystemPermissionRefreshRedisListener.java index b546ebc45..a9fdfb661 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/redis/listener/SystemPermissionRefreshRedisListener.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/redis/listener/SystemPermissionRefreshRedisListener.java @@ -25,6 +25,6 @@ public class SystemPermissionRefreshRedisListener extends AbstractRedisSimpleMes @Override public void onMessage(Message message, byte[] bytes) { - securityFrameworkService.invalidateAll(); + securityFrameworkService.invalidateAllPermissionsCache(); } } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/redis/oauth2/OAuth2AccessTokenRedisDAO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/redis/oauth2/OAuth2AccessTokenRedisDAO.java index cd0f10c8e..01a5fb71d 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/redis/oauth2/OAuth2AccessTokenRedisDAO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/redis/oauth2/OAuth2AccessTokenRedisDAO.java @@ -52,6 +52,17 @@ public class OAuth2AccessTokenRedisDAO { stringRedisTemplate.delete(redisKeys); } + /** + * 设置过期时间 + * + * @param accessToken 访问令牌 + * @param timeout 过期时间 + * @param unit 时间单位 + */ + public void expire(String accessToken, long timeout, final TimeUnit unit) { + stringRedisTemplate.expire(formatKey(accessToken), timeout, unit); + } + private static String formatKey(String accessToken) { return String.format(RedisKeyConstants.OAUTH2_ACCESS_TOKEN, accessToken); } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/oauth2/OAuth2TokenServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/oauth2/OAuth2TokenServiceImpl.java index 254144e90..eadc6b03f 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/oauth2/OAuth2TokenServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/oauth2/OAuth2TokenServiceImpl.java @@ -21,6 +21,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.List; +import java.util.concurrent.TimeUnit; import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception0; import static com.cf.imes.framework.common.util.collection.CollectionUtils.convertSet; @@ -111,7 +112,7 @@ public class OAuth2TokenServiceImpl implements OAuth2TokenService { if(accessTokenDO != null){ // 有令牌的校验,代表有接口访问,延长令牌的过期时间(30分钟) - oauth2AccessTokenRedisDAO.set(accessTokenDO.setExpiresTime(LocalDateTime.now().plusSeconds(1800))); + oauth2AccessTokenRedisDAO.expire(accessToken, 1800, TimeUnit.SECONDS); } return accessTokenDO; } @@ -124,7 +125,7 @@ public class OAuth2TokenServiceImpl implements OAuth2TokenService { } // if (DateUtils.isExpired(accessTokenDO.getExpiresTime())) { // throw exception0(GlobalErrorCodeConstants.UNAUTHORIZED.getCode(), "访问令牌已过期"); -// } + return accessTokenDO; }