Skip to content

Commit 0f2230e

Browse files
committed
Update User-Agent with credential tracking features added during signing
1 parent b3c7083 commit 0f2230e

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

src/aws-cpp-sdk-core/include/smithy/client/features/UserAgentInterceptor.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
#include <aws/core/client/ClientConfiguration.h>
88
#include <aws/core/client/RetryStrategy.h>
99
#include <aws/core/client/UserAgent.h>
10+
#include <aws/core/AmazonWebServiceRequest.h>
11+
#include <aws/core/http/HttpRequest.h>
1012
#include <smithy/interceptor/Interceptor.h>
1113

1214
#include <utility>
@@ -39,6 +41,10 @@ class UserAgentInterceptor : public interceptor::Interceptor {
3941

4042
void AddLegacyFeaturesToUserAgent(const Aws::String& valueToAppend) { m_userAgent.AddLegacyFeature(valueToAppend); }
4143

44+
void UpdateUserAgentWithRequestFeatures(const Aws::AmazonWebServiceRequest& request, const std::shared_ptr<Aws::Http::HttpRequest>& httpRequest) {
45+
httpRequest->SetUserAgent(m_userAgent.SerializeWithFeatures(request.GetUserAgentFeatures()));
46+
}
47+
4248
private:
4349
Aws::Client::UserAgent m_userAgent;
4450
};

src/aws-cpp-sdk-core/source/client/AWSClient.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -596,6 +596,11 @@ HttpResponseOutcome AWSClient::AttemptOneRequest(const std::shared_ptr<Aws::Http
596596
return HttpResponseOutcome(AWSError<CoreErrors>(CoreErrors::CLIENT_SIGNING_FAILURE, "", "SDK failed to sign the request", false/*retryable*/));
597597
}
598598

599+
// Update User-Agent with credential tracking features added during signing
600+
if (m_userAgentInterceptor) {
601+
m_userAgentInterceptor->UpdateUserAgentWithRequestFeatures(request, httpRequest);
602+
}
603+
599604
if (request.GetRequestSignedHandler())
600605
{
601606
request.GetRequestSignedHandler()(*httpRequest);

0 commit comments

Comments
 (0)