|
15 | 15 | import software.amazon.awssdk.http.SdkHttpMethod; |
16 | 16 | import software.amazon.awssdk.regions.providers.DefaultAwsRegionProviderChain; |
17 | 17 |
|
| 18 | +// Deactivated in favor to OAuthMcpConfig, because policy can evaluate only JWT principle |
18 | 19 | @Configuration |
19 | 20 | public class SigV4McpConfig { |
20 | 21 |
|
21 | | - private static final Logger log = LoggerFactory.getLogger(SigV4McpConfig.class); |
22 | | - private static final Set<String> RESTRICTED_HEADERS = Set.of("content-length", "host", "expect"); |
23 | | - |
24 | | - @Bean |
25 | | - McpSyncHttpClientRequestCustomizer sigV4RequestCustomizer() { |
26 | | - var signer = Aws4Signer.create(); |
27 | | - var credentialsProvider = DefaultCredentialsProvider.create(); |
28 | | - var region = new DefaultAwsRegionProviderChain().getRegion(); |
29 | | - log.info("SigV4 MCP request customizer: region={}, service=bedrock-agentcore", region); |
30 | | - |
31 | | - return (builder, method, endpoint, body, context) -> { |
32 | | - byte[] bodyBytes = (body != null) ? body.getBytes(java.nio.charset.StandardCharsets.UTF_8) : null; |
33 | | - |
34 | | - var sdkRequestBuilder = SdkHttpFullRequest.builder(); |
35 | | - sdkRequestBuilder.uri(endpoint); |
36 | | - sdkRequestBuilder.method(SdkHttpMethod.valueOf(method)); |
37 | | - |
38 | | - if (bodyBytes != null && bodyBytes.length > 0) { |
39 | | - sdkRequestBuilder.contentStreamProvider(() -> new ByteArrayInputStream(bodyBytes)); |
40 | | - sdkRequestBuilder.putHeader("Content-Length", String.valueOf(bodyBytes.length)); |
41 | | - } |
42 | | - sdkRequestBuilder.putHeader("Content-Type", "application/json"); |
43 | | - |
44 | | - var signedRequest = signer.sign(sdkRequestBuilder.build(), Aws4SignerParams.builder() |
45 | | - .signingName("bedrock-agentcore") |
46 | | - .signingRegion(region) |
47 | | - .awsCredentials(credentialsProvider.resolveCredentials()) |
48 | | - .build()); |
49 | | - |
50 | | - signedRequest.headers().forEach((name, values) -> { |
51 | | - if (!RESTRICTED_HEADERS.contains(name.toLowerCase())) { |
52 | | - values.forEach(value -> builder.setHeader(name, value)); |
53 | | - } |
54 | | - }); |
55 | | - }; |
56 | | - } |
| 22 | +// private static final Logger log = LoggerFactory.getLogger(SigV4McpConfig.class); |
| 23 | +// private static final Set<String> RESTRICTED_HEADERS = Set.of("content-length", "host", "expect"); |
| 24 | +// |
| 25 | +// @Bean |
| 26 | +// McpSyncHttpClientRequestCustomizer sigV4RequestCustomizer() { |
| 27 | +// var signer = Aws4Signer.create(); |
| 28 | +// var credentialsProvider = DefaultCredentialsProvider.create(); |
| 29 | +// var region = new DefaultAwsRegionProviderChain().getRegion(); |
| 30 | +// log.info("SigV4 MCP request customizer: region={}, service=bedrock-agentcore", region); |
| 31 | +// |
| 32 | +// return (builder, method, endpoint, body, context) -> { |
| 33 | +// byte[] bodyBytes = (body != null) ? body.getBytes(java.nio.charset.StandardCharsets.UTF_8) : null; |
| 34 | +// |
| 35 | +// var sdkRequestBuilder = SdkHttpFullRequest.builder(); |
| 36 | +// sdkRequestBuilder.uri(endpoint); |
| 37 | +// sdkRequestBuilder.method(SdkHttpMethod.valueOf(method)); |
| 38 | +// |
| 39 | +// if (bodyBytes != null && bodyBytes.length > 0) { |
| 40 | +// sdkRequestBuilder.contentStreamProvider(() -> new ByteArrayInputStream(bodyBytes)); |
| 41 | +// sdkRequestBuilder.putHeader("Content-Length", String.valueOf(bodyBytes.length)); |
| 42 | +// } |
| 43 | +// sdkRequestBuilder.putHeader("Content-Type", "application/json"); |
| 44 | +// |
| 45 | +// var signedRequest = signer.sign(sdkRequestBuilder.build(), Aws4SignerParams.builder() |
| 46 | +// .signingName("bedrock-agentcore") |
| 47 | +// .signingRegion(region) |
| 48 | +// .awsCredentials(credentialsProvider.resolveCredentials()) |
| 49 | +// .build()); |
| 50 | +// |
| 51 | +// signedRequest.headers().forEach((name, values) -> { |
| 52 | +// if (!RESTRICTED_HEADERS.contains(name.toLowerCase())) { |
| 53 | +// values.forEach(value -> builder.setHeader(name, value)); |
| 54 | +// } |
| 55 | +// }); |
| 56 | +// }; |
| 57 | +// } |
57 | 58 | } |
0 commit comments