1
0
mirror of synced 2025-11-06 06:20:49 +08:00

Compare commits

...

2 Commits

Author SHA1 Message Date
yadong.zhang
6859b8a949 🔥 Amazon PKCE 中的 code_verifier 基于 state 缓存 2024-08-04 23:28:55 +08:00
yadong.zhang
b01704ff78 💩 解决单测失败的问题 2024-08-04 15:51:38 +08:00
3 changed files with 7 additions and 4 deletions

View File

@@ -1373,7 +1373,7 @@ public enum AuthDefaultSource implements AuthSource {
@Override
public Class<? extends AuthDefaultRequest> getTargetClass() {
return null;
return AuthFigmaRequest.class;
}
}

View File

@@ -50,15 +50,16 @@ public class AuthAmazonRequest extends AuthDefaultRequest {
*/
@Override
public String authorize(String state) {
String realState = getRealState(state);
UrlBuilder builder = UrlBuilder.fromBaseUrl(source.authorize())
.queryParam("client_id", config.getClientId())
.queryParam("scope", this.getScopes(" ", true, AuthScopeUtils.getDefaultScopes(AuthAmazonScope.values())))
.queryParam("redirect_uri", config.getRedirectUri())
.queryParam("response_type", "code")
.queryParam("state", getRealState(state));
.queryParam("state", realState);
if (config.isPkce()) {
String cacheKey = this.source.getName().concat(":code_verifier:").concat(config.getClientId());
String cacheKey = this.source.getName().concat(":code_verifier:").concat(realState);
String codeVerifier = PkceUtil.generateCodeVerifier();
String codeChallengeMethod = "S256";
String codeChallenge = PkceUtil.generateCodeChallenge(codeChallengeMethod, codeVerifier);
@@ -86,7 +87,7 @@ public class AuthAmazonRequest extends AuthDefaultRequest {
form.put("client_secret", config.getClientSecret());
if (config.isPkce()) {
String cacheKey = this.source.getName().concat(":code_verifier:").concat(config.getClientId());
String cacheKey = this.source.getName().concat(":code_verifier:").concat(authCallback.getState());
String codeVerifier = this.authStateCache.get(cacheKey);
form.put("code_verifier", codeVerifier);
}

View File

@@ -82,6 +82,8 @@ public class AuthRequestBuilderTest {
.stackOverflowKey("asd")
.deviceId("asd")
.clientOsType(3)
.kid("kid")
.teamId("teamid")
.build();
for (AuthDefaultSource value : AuthDefaultSource.values()) {