This is an automated email from the ASF dual-hosted git repository. gnodet pushed a commit to branch backport/29281-to-camel-4.18.x in repository https://gitbox.apache.org/repos/asf/camel.git
commit a04491280c4da9d8c29171463abee2bf3d2b1a8c Author: Guillaume Nodet <[email protected]> AuthorDate: Fri Nov 6 07:33:52 2026 +0000 [backport camel-4.18.x] CAMEL-26042: camel-aws2-sts - do not copy the temporary secret key and session token into message headers --- .../apache/camel/catalog/components/aws2-sts.json | 4 +- .../apache/camel/component/aws2/sts/aws2-sts.json | 4 +- .../src/main/docs/aws2-sts-component.adoc | 11 +++ .../camel/component/aws2/sts/STS2Constants.java | 18 ++++- .../camel/component/aws2/sts/STS2Producer.java | 9 +-- .../component/aws2/sts/AmazonSTSClientMock.java | 15 +++- .../camel/component/aws2/sts/STS2ProducerTest.java | 85 ++++++++++++++++++++++ .../endpoint/dsl/STS2EndpointBuilderFactory.java | 10 ++- 8 files changed, 139 insertions(+), 17 deletions(-) diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-sts.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-sts.json index 7326b8690799..2948d96f5ed4 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-sts.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-sts.json @@ -50,8 +50,8 @@ "CamelAwsStsFederatedName": { "index": 3, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the federated user.", "constantName": "org.apache.camel.component.aws2.sts.STS2Constants#FEDERATED_NAME" }, "CamelAwsStsAssumeRoleDurationSeconds": { "index": 4, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The duration, in seconds, of the role session. It could go from 900 seconds, to 1 to 12 hours (dependent on administrator settings. The default if not specified is 3600 seconds.", "constantName": "org.apache.camel.component. [...] "CamelAwsStsAccessKeyId": { "index": 5, "kind": "header", "displayName": "", "group": "assumeRole getSessionToken getFederationToken", "label": "assumeRole getSessionToken getFederationToken", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The temporary access key ID.", "constantName": "org.apache.camel.component.aws2.sts.STS2Constants#ACCESS_KEY_ID" }, - "CamelAwsStsSecretKey": { "index": 6, "kind": "header", "displayName": "", "group": "assumeRole getSessionToken getFederationToken", "label": "assumeRole getSessionToken getFederationToken", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The temporary secret access key.", "constantName": "org.apache.camel.component.aws2.sts.STS2Constants#SECRET_KEY_ID" }, - "CamelAwsStsSessionToken": { "index": 7, "kind": "header", "displayName": "", "group": "assumeRole getSessionToken getFederationToken", "label": "assumeRole getSessionToken getFederationToken", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The temporary session token.", "constantName": "org.apache.camel.component.aws2.sts.STS2Constants#SESSION_TOKEN" }, + "CamelAwsStsSecretKey": { "index": 6, "kind": "header", "displayName": "", "group": "assumeRole getSessionToken getFederationToken", "label": "assumeRole getSessionToken getFederationToken", "required": false, "javaType": "String", "deprecated": true, "deprecationNote": "The producer no longer sets this header. Take the secret access key from the body, such as ${body.credentials().secretAccessKey()}.", "autowired": false, "secret": false, "description": "The temporary secret access k [...] + "CamelAwsStsSessionToken": { "index": 7, "kind": "header", "displayName": "", "group": "assumeRole getSessionToken getFederationToken", "label": "assumeRole getSessionToken getFederationToken", "required": false, "javaType": "String", "deprecated": true, "deprecationNote": "The producer no longer sets this header. Take the session token from the body, such as ${body.credentials().sessionToken()}.", "autowired": false, "secret": false, "description": "The temporary session token. Depr [...] "CamelAwsStsExpiration": { "index": 8, "kind": "header", "displayName": "", "group": "assumeRole getSessionToken getFederationToken", "label": "assumeRole getSessionToken getFederationToken", "required": false, "javaType": "java.time.Instant", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The expiration date and time of the credentials.", "constantName": "org.apache.camel.component.aws2.sts.STS2Constants#EXPIRATION" }, "CamelAwsStsAssumedRoleArn": { "index": 9, "kind": "header", "displayName": "", "group": "assumeRole", "label": "assumeRole", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Amazon Resource Name (ARN) of the assumed role.", "constantName": "org.apache.camel.component.aws2.sts.STS2Constants#ASSUMED_ROLE_ARN" } }, diff --git a/components/camel-aws/camel-aws2-sts/src/generated/resources/META-INF/org/apache/camel/component/aws2/sts/aws2-sts.json b/components/camel-aws/camel-aws2-sts/src/generated/resources/META-INF/org/apache/camel/component/aws2/sts/aws2-sts.json index 7326b8690799..2948d96f5ed4 100644 --- a/components/camel-aws/camel-aws2-sts/src/generated/resources/META-INF/org/apache/camel/component/aws2/sts/aws2-sts.json +++ b/components/camel-aws/camel-aws2-sts/src/generated/resources/META-INF/org/apache/camel/component/aws2/sts/aws2-sts.json @@ -50,8 +50,8 @@ "CamelAwsStsFederatedName": { "index": 3, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the federated user.", "constantName": "org.apache.camel.component.aws2.sts.STS2Constants#FEDERATED_NAME" }, "CamelAwsStsAssumeRoleDurationSeconds": { "index": 4, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The duration, in seconds, of the role session. It could go from 900 seconds, to 1 to 12 hours (dependent on administrator settings. The default if not specified is 3600 seconds.", "constantName": "org.apache.camel.component. [...] "CamelAwsStsAccessKeyId": { "index": 5, "kind": "header", "displayName": "", "group": "assumeRole getSessionToken getFederationToken", "label": "assumeRole getSessionToken getFederationToken", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The temporary access key ID.", "constantName": "org.apache.camel.component.aws2.sts.STS2Constants#ACCESS_KEY_ID" }, - "CamelAwsStsSecretKey": { "index": 6, "kind": "header", "displayName": "", "group": "assumeRole getSessionToken getFederationToken", "label": "assumeRole getSessionToken getFederationToken", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The temporary secret access key.", "constantName": "org.apache.camel.component.aws2.sts.STS2Constants#SECRET_KEY_ID" }, - "CamelAwsStsSessionToken": { "index": 7, "kind": "header", "displayName": "", "group": "assumeRole getSessionToken getFederationToken", "label": "assumeRole getSessionToken getFederationToken", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The temporary session token.", "constantName": "org.apache.camel.component.aws2.sts.STS2Constants#SESSION_TOKEN" }, + "CamelAwsStsSecretKey": { "index": 6, "kind": "header", "displayName": "", "group": "assumeRole getSessionToken getFederationToken", "label": "assumeRole getSessionToken getFederationToken", "required": false, "javaType": "String", "deprecated": true, "deprecationNote": "The producer no longer sets this header. Take the secret access key from the body, such as ${body.credentials().secretAccessKey()}.", "autowired": false, "secret": false, "description": "The temporary secret access k [...] + "CamelAwsStsSessionToken": { "index": 7, "kind": "header", "displayName": "", "group": "assumeRole getSessionToken getFederationToken", "label": "assumeRole getSessionToken getFederationToken", "required": false, "javaType": "String", "deprecated": true, "deprecationNote": "The producer no longer sets this header. Take the session token from the body, such as ${body.credentials().sessionToken()}.", "autowired": false, "secret": false, "description": "The temporary session token. Depr [...] "CamelAwsStsExpiration": { "index": 8, "kind": "header", "displayName": "", "group": "assumeRole getSessionToken getFederationToken", "label": "assumeRole getSessionToken getFederationToken", "required": false, "javaType": "java.time.Instant", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The expiration date and time of the credentials.", "constantName": "org.apache.camel.component.aws2.sts.STS2Constants#EXPIRATION" }, "CamelAwsStsAssumedRoleArn": { "index": 9, "kind": "header", "displayName": "", "group": "assumeRole", "label": "assumeRole", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Amazon Resource Name (ARN) of the assumed role.", "constantName": "org.apache.camel.component.aws2.sts.STS2Constants#ASSUMED_ROLE_ARN" } }, diff --git a/components/camel-aws/camel-aws2-sts/src/main/docs/aws2-sts-component.adoc b/components/camel-aws/camel-aws2-sts/src/main/docs/aws2-sts-component.adoc index 037b481838ec..ce6bdc9d362d 100644 --- a/components/camel-aws/camel-aws2-sts/src/main/docs/aws2-sts-component.adoc +++ b/components/camel-aws/camel-aws2-sts/src/main/docs/aws2-sts-component.adoc @@ -82,6 +82,17 @@ Camel-AWS STS component provides the following operation on the producer side: - getSessionToken - getFederationToken +=== The temporary credentials + +The body of the message is the response of the AWS SDK, such as an `AssumeRoleResponse`, and its `credentials()` hold +the temporary credentials. + +The producer also sets the `CamelAwsStsAccessKeyId` and `CamelAwsStsExpiration` headers, and for `assumeRole` the +`CamelAwsStsAssumedRoleArn` header. It does not set headers with the secret access key and the session token: take them +from the body, such as `${body.credentials().secretAccessKey()}` and `${body.credentials().sessionToken()}` with the +xref:languages:simple-language.adoc[Simple] language. To keep them for later steps of the route, store them in a +variable rather than in a header, as message headers are logged, traced and sent on by many producers. + == Examples === Producer Examples diff --git a/components/camel-aws/camel-aws2-sts/src/main/java/org/apache/camel/component/aws2/sts/STS2Constants.java b/components/camel-aws/camel-aws2-sts/src/main/java/org/apache/camel/component/aws2/sts/STS2Constants.java index 4dd8f30655d8..6f052ae3e55a 100644 --- a/components/camel-aws/camel-aws2-sts/src/main/java/org/apache/camel/component/aws2/sts/STS2Constants.java +++ b/components/camel-aws/camel-aws2-sts/src/main/java/org/apache/camel/component/aws2/sts/STS2Constants.java @@ -37,11 +37,25 @@ public interface STS2Constants { @Metadata(label = "assumeRole getSessionToken getFederationToken", description = "The temporary access key ID.", javaType = "String") String ACCESS_KEY_ID = "CamelAwsStsAccessKeyId"; + /** + * @deprecated the producer no longer sets this header. Take the secret access key from the body, such as + * {@code ${body.credentials().secretAccessKey()}}. + */ @Metadata(label = "assumeRole getSessionToken getFederationToken", - description = "The temporary secret access key.", javaType = "String") + description = "The temporary secret access key.", javaType = "String", + deprecationNote = "The producer no longer sets this header. Take the secret access key from the body," + + " such as ${body.credentials().secretAccessKey()}.") + @Deprecated String SECRET_KEY_ID = "CamelAwsStsSecretKey"; + /** + * @deprecated the producer no longer sets this header. Take the session token from the body, such as + * {@code ${body.credentials().sessionToken()}}. + */ @Metadata(label = "assumeRole getSessionToken getFederationToken", - description = "The temporary session token.", javaType = "String") + description = "The temporary session token.", javaType = "String", + deprecationNote = "The producer no longer sets this header. Take the session token from the body, such" + + " as ${body.credentials().sessionToken()}.") + @Deprecated String SESSION_TOKEN = "CamelAwsStsSessionToken"; @Metadata(label = "assumeRole getSessionToken getFederationToken", description = "The expiration date and time of the credentials.", javaType = "java.time.Instant") diff --git a/components/camel-aws/camel-aws2-sts/src/main/java/org/apache/camel/component/aws2/sts/STS2Producer.java b/components/camel-aws/camel-aws2-sts/src/main/java/org/apache/camel/component/aws2/sts/STS2Producer.java index d2e1ba7cd130..3c0244ce278e 100644 --- a/components/camel-aws/camel-aws2-sts/src/main/java/org/apache/camel/component/aws2/sts/STS2Producer.java +++ b/components/camel-aws/camel-aws2-sts/src/main/java/org/apache/camel/component/aws2/sts/STS2Producer.java @@ -134,9 +134,8 @@ public class STS2Producer extends DefaultProducer { Message message = getMessageForResponse(exchange); message.setBody(result); if (ObjectHelper.isNotEmpty(result.credentials())) { + // the secret access key and the session token are only in the body, not in headers message.setHeader(STS2Constants.ACCESS_KEY_ID, result.credentials().accessKeyId()); - message.setHeader(STS2Constants.SECRET_KEY_ID, result.credentials().secretAccessKey()); - message.setHeader(STS2Constants.SESSION_TOKEN, result.credentials().sessionToken()); message.setHeader(STS2Constants.EXPIRATION, result.credentials().expiration()); } if (ObjectHelper.isNotEmpty(result.assumedRoleUser())) { @@ -172,9 +171,8 @@ public class STS2Producer extends DefaultProducer { Message message = getMessageForResponse(exchange); message.setBody(result); if (ObjectHelper.isNotEmpty(result.credentials())) { + // the secret access key and the session token are only in the body, not in headers message.setHeader(STS2Constants.ACCESS_KEY_ID, result.credentials().accessKeyId()); - message.setHeader(STS2Constants.SECRET_KEY_ID, result.credentials().secretAccessKey()); - message.setHeader(STS2Constants.SESSION_TOKEN, result.credentials().sessionToken()); message.setHeader(STS2Constants.EXPIRATION, result.credentials().expiration()); } } @@ -213,9 +211,8 @@ public class STS2Producer extends DefaultProducer { Message message = getMessageForResponse(exchange); message.setBody(result); if (ObjectHelper.isNotEmpty(result.credentials())) { + // the secret access key and the session token are only in the body, not in headers message.setHeader(STS2Constants.ACCESS_KEY_ID, result.credentials().accessKeyId()); - message.setHeader(STS2Constants.SECRET_KEY_ID, result.credentials().secretAccessKey()); - message.setHeader(STS2Constants.SESSION_TOKEN, result.credentials().sessionToken()); message.setHeader(STS2Constants.EXPIRATION, result.credentials().expiration()); } } diff --git a/components/camel-aws/camel-aws2-sts/src/test/java/org/apache/camel/component/aws2/sts/AmazonSTSClientMock.java b/components/camel-aws/camel-aws2-sts/src/test/java/org/apache/camel/component/aws2/sts/AmazonSTSClientMock.java index 2ac6d4247cbf..832f25717772 100644 --- a/components/camel-aws/camel-aws2-sts/src/test/java/org/apache/camel/component/aws2/sts/AmazonSTSClientMock.java +++ b/components/camel-aws/camel-aws2-sts/src/test/java/org/apache/camel/component/aws2/sts/AmazonSTSClientMock.java @@ -16,6 +16,8 @@ */ package org.apache.camel.component.aws2.sts; +import java.time.Instant; + import software.amazon.awssdk.services.sts.StsClient; import software.amazon.awssdk.services.sts.StsServiceClientConfiguration; import software.amazon.awssdk.services.sts.model.AssumeRoleRequest; @@ -29,18 +31,24 @@ import software.amazon.awssdk.services.sts.model.GetSessionTokenResponse; public class AmazonSTSClientMock implements StsClient { + static final Instant EXPIRATION = Instant.parse("2026-01-01T00:00:00Z"); + public AmazonSTSClientMock() { } @Override public AssumeRoleResponse assumeRole(AssumeRoleRequest assumeRoleRequest) { - return AssumeRoleResponse.builder().assumedRoleUser(AssumedRoleUser.builder().arn("arn").build()).build(); + return AssumeRoleResponse.builder().assumedRoleUser(AssumedRoleUser.builder().arn("arn").build()) + .credentials(Credentials.builder().accessKeyId("xxx").secretAccessKey("yyy").sessionToken("test") + .expiration(EXPIRATION).build()) + .build(); } @Override public GetSessionTokenResponse getSessionToken(GetSessionTokenRequest getSessionTokenRequest) { return GetSessionTokenResponse.builder() - .credentials(Credentials.builder().accessKeyId("xxx").secretAccessKey("yyy").sessionToken("test").build()) + .credentials(Credentials.builder().accessKeyId("xxx").secretAccessKey("yyy").sessionToken("test") + .expiration(EXPIRATION).build()) .build(); } @@ -52,7 +60,8 @@ public class AmazonSTSClientMock implements StsClient { @Override public GetFederationTokenResponse getFederationToken(GetFederationTokenRequest getFederationTokenRequest) { return GetFederationTokenResponse.builder() - .credentials(Credentials.builder().accessKeyId("xxx").secretAccessKey("yyy").sessionToken("test").build()) + .credentials(Credentials.builder().accessKeyId("xxx").secretAccessKey("yyy").sessionToken("test") + .expiration(EXPIRATION).build()) .build(); } diff --git a/components/camel-aws/camel-aws2-sts/src/test/java/org/apache/camel/component/aws2/sts/STS2ProducerTest.java b/components/camel-aws/camel-aws2-sts/src/test/java/org/apache/camel/component/aws2/sts/STS2ProducerTest.java index c45b98af4cde..02893d57ad40 100644 --- a/components/camel-aws/camel-aws2-sts/src/test/java/org/apache/camel/component/aws2/sts/STS2ProducerTest.java +++ b/components/camel-aws/camel-aws2-sts/src/test/java/org/apache/camel/component/aws2/sts/STS2ProducerTest.java @@ -28,6 +28,7 @@ import software.amazon.awssdk.services.sts.model.AssumeRoleResponse; import software.amazon.awssdk.services.sts.model.GetFederationTokenResponse; import software.amazon.awssdk.services.sts.model.GetSessionTokenResponse; +import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -100,6 +101,81 @@ public class STS2ProducerTest extends CamelTestSupport { .hasRootCauseMessage("Federated name needs to be specified for getFederationToken operation"); } + @Test + void assumeRoleWithPojoRequestAndWrongBodyTypeThrows() { + assertThatThrownBy(() -> template.requestBody("direct:assumeRolePojo", "not an AssumeRoleRequest")) + .hasRootCauseInstanceOf(IllegalArgumentException.class) + .hasRootCauseMessage("assumeRole operation requires AssumeRoleRequest in POJO mode"); + } + + @Test + void getSessionTokenWithPojoRequestAndWrongBodyTypeThrows() { + assertThatThrownBy(() -> template.requestBody("direct:getSessionTokenPojo", "not a GetSessionTokenRequest")) + .hasRootCauseInstanceOf(IllegalArgumentException.class) + .hasRootCauseMessage("getSessionToken operation requires GetSessionTokenRequest in POJO mode"); + } + + @Test + void getFederationTokenWithPojoRequestAndWrongBodyTypeThrows() { + assertThatThrownBy(() -> template.requestBody("direct:getFederationTokenPojo", "not a GetFederationTokenRequest")) + .hasRootCauseInstanceOf(IllegalArgumentException.class) + .hasRootCauseMessage("getFederationToken operation requires GetFederationTokenRequest in POJO mode"); + } + + @Test + void assumeRoleDoesNotCopyTheSecretKeyAndSessionTokenIntoHeaders() { + Exchange exchange = template.request("direct:assumeRole", e -> { + e.getIn().setHeader(STS2Constants.ROLE_ARN, "arn"); + e.getIn().setHeader(STS2Constants.ROLE_SESSION_NAME, "sessionarn"); + }); + + assertCredentialHeaders(exchange); + assertThat(exchange.getMessage().getHeader(STS2Constants.ASSUMED_ROLE_ARN)).isEqualTo("arn"); + AssumeRoleResponse body = exchange.getMessage().getBody(AssumeRoleResponse.class); + assertThat(body.credentials().secretAccessKey()).isEqualTo("yyy"); + assertThat(body.credentials().sessionToken()).isEqualTo("test"); + } + + @Test + void getSessionTokenDoesNotCopyTheSecretKeyAndSessionTokenIntoHeaders() { + Exchange exchange = template.request("direct:getSessionToken", e -> { + }); + + assertCredentialHeaders(exchange); + GetSessionTokenResponse body = exchange.getMessage().getBody(GetSessionTokenResponse.class); + assertThat(body.credentials().secretAccessKey()).isEqualTo("yyy"); + assertThat(body.credentials().sessionToken()).isEqualTo("test"); + } + + @Test + void getFederationTokenDoesNotCopyTheSecretKeyAndSessionTokenIntoHeaders() { + Exchange exchange = template.request("direct:getFederationToken", + e -> e.getIn().setHeader(STS2Constants.FEDERATED_NAME, "federation-account")); + + assertCredentialHeaders(exchange); + GetFederationTokenResponse body = exchange.getMessage().getBody(GetFederationTokenResponse.class); + assertThat(body.credentials().secretAccessKey()).isEqualTo("yyy"); + assertThat(body.credentials().sessionToken()).isEqualTo("test"); + } + + @Test + void theSecretKeyAndSessionTokenCanBeTakenFromTheBody() { + Exchange exchange = template.request("direct:assumeRoleCredentialsFromBody", e -> { + e.getIn().setHeader(STS2Constants.ROLE_ARN, "arn"); + e.getIn().setHeader(STS2Constants.ROLE_SESSION_NAME, "sessionarn"); + }); + + assertThat(exchange.getMessage().getBody(String.class)).isEqualTo("yyy test"); + } + + private static void assertCredentialHeaders(Exchange exchange) { + assertThat(exchange.getException()).isNull(); + assertThat(exchange.getMessage().getHeaders()) + .containsEntry(STS2Constants.ACCESS_KEY_ID, "xxx") + .containsEntry(STS2Constants.EXPIRATION, AmazonSTSClientMock.EXPIRATION) + .doesNotContainKeys("CamelAwsStsSecretKey", "CamelAwsStsSessionToken"); + } + @Override protected RouteBuilder createRouteBuilder() { return new RouteBuilder() { @@ -111,6 +187,15 @@ public class STS2ProducerTest extends CamelTestSupport { .to("mock:result"); from("direct:getFederationToken").to("aws2-sts://test?stsClient=#amazonStsClient&operation=getFederationToken") .to("mock:result"); + from("direct:assumeRolePojo") + .to("aws2-sts://test?stsClient=#amazonStsClient&operation=assumeRole&pojoRequest=true"); + from("direct:getSessionTokenPojo") + .to("aws2-sts://test?stsClient=#amazonStsClient&operation=getSessionToken&pojoRequest=true"); + from("direct:getFederationTokenPojo") + .to("aws2-sts://test?stsClient=#amazonStsClient&operation=getFederationToken&pojoRequest=true"); + from("direct:assumeRoleCredentialsFromBody") + .to("aws2-sts://test?stsClient=#amazonStsClient&operation=assumeRole") + .setBody(simple("${body.credentials().secretAccessKey()} ${body.credentials().sessionToken()}")); } }; } diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/STS2EndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/STS2EndpointBuilderFactory.java index f68744661906..38d3f66f7582 100644 --- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/STS2EndpointBuilderFactory.java +++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/STS2EndpointBuilderFactory.java @@ -621,7 +621,9 @@ public interface STS2EndpointBuilderFactory { return "CamelAwsStsAccessKeyId"; } /** - * The temporary secret access key. + * The temporary secret access key. Deprecation note: The producer no + * longer sets this header. Take the secret access key from the body, + * such as ${body.credentials().secretAccessKey()}. * * The option is a: {@code String} type. * @@ -629,11 +631,14 @@ public interface STS2EndpointBuilderFactory { * * @return the name of the header {@code AwsStsSecretKey}. */ + @Deprecated public String awsStsSecretKey() { return "CamelAwsStsSecretKey"; } /** - * The temporary session token. + * The temporary session token. Deprecation note: The producer no longer + * sets this header. Take the session token from the body, such as + * ${body.credentials().sessionToken()}. * * The option is a: {@code String} type. * @@ -641,6 +646,7 @@ public interface STS2EndpointBuilderFactory { * * @return the name of the header {@code AwsStsSessionToken}. */ + @Deprecated public String awsStsSessionToken() { return "CamelAwsStsSessionToken"; }
