浏览代码

优化token配置

zhouhao 3 年之前
父节点
当前提交
ab06d54ee0

+ 20 - 0
hsweb-authorization/hsweb-authorization-oauth2/src/main/java/org/hswebframework/web/oauth2/server/OAuth2Properties.java

@@ -0,0 +1,20 @@
+package org.hswebframework.web.oauth2.server;
+
+import lombok.Getter;
+import lombok.Setter;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+import java.time.Duration;
+
+@ConfigurationProperties(prefix = "hsweb.oauth2")
+@Getter
+@Setter
+public class OAuth2Properties {
+
+    //token有效期
+    private Duration tokenExpireIn = Duration.ofSeconds(7200);
+
+    //refreshToken有效期
+    private Duration refreshTokenIn = Duration.ofDays(30);
+
+}

+ 8 - 2
hsweb-authorization/hsweb-authorization-oauth2/src/main/java/org/hswebframework/web/oauth2/server/OAuth2ServerAutoConfiguration.java

@@ -18,11 +18,13 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.data.redis.connection.ReactiveRedisConnectionFactory;
 
 @Configuration(proxyBeanMethods = false)
+@EnableConfigurationProperties(OAuth2Properties.class)
 public class OAuth2ServerAutoConfiguration {
 
 
@@ -46,8 +48,12 @@ public class OAuth2ServerAutoConfiguration {
 
         @Bean
         @ConditionalOnMissingBean
-        public AccessTokenManager accessTokenManager(ReactiveRedisConnectionFactory redisConnectionFactory) {
-            return new RedisAccessTokenManager(redisConnectionFactory);
+        public AccessTokenManager accessTokenManager(ReactiveRedisConnectionFactory redisConnectionFactory,
+                                                     OAuth2Properties properties) {
+            RedisAccessTokenManager manager = new RedisAccessTokenManager(redisConnectionFactory);
+            manager.setTokenExpireIn((int) properties.getTokenExpireIn().getSeconds());
+            manager.setRefreshExpireIn((int) properties.getRefreshTokenIn().getSeconds());
+            return manager;
         }
 
         @Bean