Skip to content

Commit 13f9344

Browse files
author
Stanislav Deviatykh
committed
feat: add jwtDecoderCustomizer to McpServerOAuth2Configurer
1 parent fb3f0f4 commit 13f9344

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

mcp-server-security/src/main/java/org/springaicommunity/mcp/security/server/config/McpServerOAuth2Configurer.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ public class McpServerOAuth2Configurer extends AbstractHttpConfigurer<McpServerO
5454

5555
private boolean validateAudienceClaim = false;
5656

57+
private Consumer<NimbusJwtDecoder.JwkSetUriJwtDecoderBuilder> jwtDecoderCustomizer = null;
58+
5759
public McpServerOAuth2Configurer authorizationServer(String issuerUri) {
5860
this.issuerUri = issuerUri;
5961
return this;
@@ -90,6 +92,11 @@ public McpServerOAuth2Configurer validateAudienceClaim(boolean validateAudienceC
9092
return this;
9193
}
9294

95+
public McpServerOAuth2Configurer jwtDecoderCustomizer(Consumer<NimbusJwtDecoder.JwkSetUriJwtDecoderBuilder> jwtDecoderCustomizer) {
96+
this.jwtDecoderCustomizer = jwtDecoderCustomizer;
97+
return this;
98+
}
99+
93100
@Override
94101
public void init(HttpSecurity http) throws Exception {
95102
Assert.notNull(this.issuerUri, "authorizationServer cannot be null");
@@ -113,7 +120,12 @@ public void init(HttpSecurity http) throws Exception {
113120
}
114121

115122
private JwtDecoder getJwtDecoder(HttpSecurity http) {
116-
var decoder = NimbusJwtDecoder.withIssuerLocation(this.issuerUri).build();
123+
var builder = NimbusJwtDecoder.withIssuerLocation(this.issuerUri);
124+
if (this.jwtDecoderCustomizer != null) {
125+
this.jwtDecoderCustomizer.accept(builder);
126+
}
127+
128+
var decoder = builder.build();
117129

118130
if (this.validateAudienceClaim) {
119131
OAuth2TokenValidator<Jwt> jwtValidator = JwtValidators

0 commit comments

Comments
 (0)