From a255caf7156ff723be31c3831b01a61cb6b07091 Mon Sep 17 00:00:00 2001 From: SEVEN_ME Date: Thu, 21 Oct 2021 16:03:05 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20=E6=8E=88=E6=9D=83=E7=A0=81?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=BF=87=E6=9C=9F=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/PigxAuthorizationCodeServicesImpl.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/pigx-auth/src/main/java/com/pig4cloud/pigx/auth/service/PigxAuthorizationCodeServicesImpl.java b/pigx-auth/src/main/java/com/pig4cloud/pigx/auth/service/PigxAuthorizationCodeServicesImpl.java index 684d8435c..3be6772b4 100644 --- a/pigx-auth/src/main/java/com/pig4cloud/pigx/auth/service/PigxAuthorizationCodeServicesImpl.java +++ b/pigx-auth/src/main/java/com/pig4cloud/pigx/auth/service/PigxAuthorizationCodeServicesImpl.java @@ -4,8 +4,11 @@ import com.pig4cloud.pigx.common.core.constant.SecurityConstants; import lombok.Cleanup; import lombok.RequiredArgsConstructor; import lombok.Setter; +import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.connection.RedisConnection; import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.connection.RedisStringCommands; +import org.springframework.data.redis.core.types.Expiration; import org.springframework.security.oauth2.provider.OAuth2Authentication; import org.springframework.security.oauth2.provider.code.RandomValueAuthorizationCodeServices; import org.springframework.security.oauth2.provider.token.store.redis.JdkSerializationStrategy; @@ -22,6 +25,12 @@ import org.springframework.stereotype.Service; @RequiredArgsConstructor public class PigxAuthorizationCodeServicesImpl extends RandomValueAuthorizationCodeServices { + /** + * 授权码模式时: 验证码有效期设置, 默认有效期为5分钟, 单位秒 + */ + @Value("${pigx.authorizationCode.expirationTime:300}") + private Long expirationTime; + private final RedisConnectionFactory connectionFactory; @Setter @@ -39,7 +48,10 @@ public class PigxAuthorizationCodeServicesImpl extends RandomValueAuthorizationC protected void store(String code, OAuth2Authentication authentication) { @Cleanup RedisConnection connection = connectionFactory.getConnection(); - connection.set(serializationStrategy.serialize(prefix + code), serializationStrategy.serialize(authentication)); + connection.set(serializationStrategy.serialize(prefix + code), + serializationStrategy.serialize(authentication), + Expiration.seconds(expirationTime), + RedisStringCommands.SetOption.UPSERT); } /**