Skip to content

Commit 7e0f2b8

Browse files
committed
mcp-server: default ApiKeyAuthenticationConverter
Signed-off-by: Daniel Garnier-Moiroux <[email protected]>
1 parent f5054ac commit 7e0f2b8

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

mcp-server-security/src/main/java/org/springaicommunity/mcp/security/server/apikey/web/ApiKeyAuthenticationConverter.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,12 @@ public class ApiKeyAuthenticationConverter implements AuthenticationConverter {
3737

3838
private final String apiKeyHeaderName;
3939

40+
public static final String DEFAULT_API_KEY_HEADER = "X-API-Key";
41+
42+
public ApiKeyAuthenticationConverter() {
43+
this.apiKeyHeaderName = DEFAULT_API_KEY_HEADER;
44+
}
45+
4046
public ApiKeyAuthenticationConverter(String apiKeyHeaderName) {
4147
Assert.hasText(apiKeyHeaderName, "apiKeyHeaderName cannot be blank");
4248
this.apiKeyHeaderName = apiKeyHeaderName;

mcp-server-security/src/test/java/org/springaicommunity/mcp/security/server/apikey/web/ApiKeyAuthenticationConverterTests.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,21 @@ void convertExtractsApiKey() {
2626
assertThat(apiKey.getCredentials().getSecret()).isEqualTo("my-secret");
2727
}
2828

29+
@Test
30+
void convertDefaultHeaderExtractsApiKey() {
31+
var request = new MockHttpServletRequest();
32+
request.addHeader("x-api-key", "api01.my-secret");
33+
34+
var converter = new ApiKeyAuthenticationConverter();
35+
var authentication = converter.convert(request);
36+
assertThat(authentication).isInstanceOf(ApiKeyAuthenticationToken.class);
37+
var apiKey = (ApiKeyAuthenticationToken) authentication;
38+
assertThat(apiKey.isAuthenticated()).isFalse();
39+
assertThat(apiKey.getPrincipal()).isNull();
40+
assertThat(apiKey.getCredentials().getId()).isEqualTo("api01");
41+
assertThat(apiKey.getCredentials().getSecret()).isEqualTo("my-secret");
42+
}
43+
2944
@Test
3045
void convertWhenNoHeaderReturnsNull() {
3146
var request = new MockHttpServletRequest();

0 commit comments

Comments
 (0)