Skip to content

Commit ea3b0c0

Browse files
committed
authorization-server: also include CLIENT_SECRET_POST auth method for DCR
- Claude code uses both PKCE + client_secret in the body of the request. Signed-off-by: Daniel Garnier-Moiroux <[email protected]>
1 parent fb3f0f4 commit ea3b0c0

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

mcp-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/config/annotation/web/configurers/OAuth2ClientRegistrationEndpointConfigurer.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,9 @@ public RegisteredClient convert(OAuth2ClientRegistration clientRegistration) {
8282
clientRegistration.getClaims().get(RESOURCE_IDS_KEY));
8383
}
8484
return RegisteredClient.from(registeredClient)
85-
// dgarnier
8685
.clientAuthenticationMethod(ClientAuthenticationMethod.CLIENT_SECRET_BASIC)
86+
// claude code does client_secret_post + PKCE
87+
.clientAuthenticationMethod(ClientAuthenticationMethod.CLIENT_SECRET_POST)
8788
.clientAuthenticationMethod(ClientAuthenticationMethod.NONE)
8889
.clientSettings(clientSettingsBuilder.build())
8990
.build();

mcp-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/converter/OAuth2ClientRegistrationRegisteredClientConverter.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,9 @@ else if (ClientAuthenticationMethod.CLIENT_SECRET_JWT.getValue().equals(clientRe
6767
else if (ClientAuthenticationMethod.PRIVATE_KEY_JWT.getValue().equals(clientRegistration.getTokenEndpointAuthenticationMethod())) {
6868
builder.clientAuthenticationMethod(ClientAuthenticationMethod.PRIVATE_KEY_JWT);
6969
}
70+
else if (ClientAuthenticationMethod.NONE.getValue().equals(clientRegistration.getTokenEndpointAuthenticationMethod())) {
71+
builder.clientAuthenticationMethod(ClientAuthenticationMethod.NONE);
72+
}
7073
else {
7174
builder
7275
.clientAuthenticationMethod(ClientAuthenticationMethod.CLIENT_SECRET_BASIC)

0 commit comments

Comments
 (0)