Skip to content

Commit d7a590a

Browse files
committed
fix: 修复token有效期问题
1 parent 6a0f87c commit d7a590a

2 files changed

Lines changed: 16 additions & 10 deletions

File tree

src/main/java/io/github/opensabre/authorization/entity/RegisteredClientConvert.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,16 @@
1414
import org.springframework.security.oauth2.server.authorization.settings.TokenSettings;
1515
import org.springframework.stereotype.Component;
1616

17+
import java.time.Duration;
1718
import java.time.Instant;
1819
import java.util.Arrays;
1920
import java.util.Date;
21+
import java.util.Map;
2022
import java.util.Set;
2123
import java.util.stream.Collectors;
2224

25+
import static org.springframework.security.oauth2.server.authorization.settings.ConfigurationSettingNames.Token.*;
26+
2327
@Component
2428
public class RegisteredClientConvert {
2529

@@ -44,6 +48,7 @@ public RegisteredClient convertToRegisteredClient(RegisteredClientPo registeredC
4448
Set<ClientAuthenticationMethod> methods = Arrays.stream(StringUtils.split(registeredClientPo.getClientAuthenticationMethods(), ","))
4549
.map(ClientAuthenticationMethod::new)
4650
.collect(Collectors.toSet());
51+
Map<String, Object> tokenSettings = registeredClientPo.getTokenSettings();
4752
// 构建 RegisteredClient对象
4853
RegisteredClient.Builder registeredClientBuilder = RegisteredClient.withId(registeredClientPo.getId())
4954
.clientId(registeredClientPo.getClientId())
@@ -54,16 +59,18 @@ public RegisteredClient convertToRegisteredClient(RegisteredClientPo registeredC
5459
.clientAuthenticationMethods(methodSet -> methodSet.addAll(methods))
5560
.scopes(scopeSet -> scopeSet.addAll(scopes))
5661
.authorizationGrantTypes(grantType -> grantType.addAll(grantTypes))
62+
// Client相关设置
5763
.clientSettings(ClientSettings.withSettings(registeredClientPo.getClientSettings()).build())
64+
// Token相关设置
5865
.tokenSettings(TokenSettings.builder()
5966
// token有效期5小时
60-
// .accessTokenTimeToLive(registeredClientPo.getTokenSettings().getAccessTokenTimeToLive())
67+
.accessTokenTimeToLive(Duration.ofSeconds(((Double)tokenSettings.get(ACCESS_TOKEN_TIME_TO_LIVE)).longValue()))
6168
// 使用默认JWT相关格式
6269
.accessTokenFormat(OAuth2TokenFormat.SELF_CONTAINED)
6370
// 开启刷新token
64-
.reuseRefreshTokens(true)
71+
.reuseRefreshTokens((Boolean)tokenSettings.get(REUSE_REFRESH_TOKENS))
6572
// refreshToken有效期120分钟
66-
// .refreshTokenTimeToLive(registeredClientPo.getTokenSettings().getRefreshTokenTimeToLive())
73+
.refreshTokenTimeToLive(Duration.ofSeconds(((Double)tokenSettings.get(REFRESH_TOKEN_TIME_TO_LIVE)).longValue()))
6774
// idToken签名算法
6875
.idTokenSignatureAlgorithm(SignatureAlgorithm.RS256).build()
6976
);

src/main/java/io/github/opensabre/authorization/provider/SmsCodeProvider.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,18 @@
22

33
import org.springframework.cloud.openfeign.FeignClient;
44
import org.springframework.web.bind.annotation.GetMapping;
5-
import org.springframework.web.bind.annotation.PathVariable;
6-
import org.springframework.web.bind.annotation.RequestParam;
5+
import org.springframework.web.bind.annotation.RequestPart;
76

87
/**
9-
* todo 实现短信验证码的服务
8+
* 实现短信验证码的服务
109
*/
11-
@FeignClient(name = "base-sms", fallback = OrganizationProviderFallback.class)
10+
@FeignClient(name = "base-sysadmin", fallback = OrganizationProviderFallback.class)
1211
public interface SmsCodeProvider {
1312

1413
/**
15-
* @param mobile 手机号
14+
* @param phoneNo 手机号
1615
* @return String 验证码
1716
*/
18-
@GetMapping(value = "/sms/{mobile}")
19-
String getSmsCode(@PathVariable("mobile") String mobile, @RequestParam("businessType") String businessType);
17+
@GetMapping(value = "/captcha/send/sms")
18+
String getSmsCode(@RequestPart("phoneNo") String phoneNo, @RequestPart("scenario") String scenario);
2019
}

0 commit comments

Comments
 (0)