Skip to content

Commit 116e055

Browse files
committed
changed from dynamic casting
1 parent c94b2fe commit 116e055

File tree

3 files changed

+14
-6
lines changed

3 files changed

+14
-6
lines changed

src/aws-cpp-sdk-core/include/aws/core/auth/signer/AWSAuthSignerBase.h

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414

1515
namespace Aws
1616
{
17+
class AmazonWebServiceRequest;
18+
1719
namespace Http
1820
{
1921
class HttpRequest;
@@ -82,6 +84,16 @@ namespace Aws
8284
return SignRequest(request);
8385
}
8486

87+
/**
88+
* Signs the request itself with access to the original AmazonWebServiceRequest for credential tracking.
89+
* Default implementation calls the standard SignRequest method.
90+
*/
91+
virtual bool SignRequest(Aws::Http::HttpRequest& request, Aws::AmazonWebServiceRequest& awsRequest, const char* region, const char* serviceName, bool signBody) const
92+
{
93+
AWS_UNREFERENCED_PARAM(awsRequest);
94+
return SignRequest(request, region, serviceName, signBody);
95+
}
96+
8597
/**
8698
* Signs a single event message in an event stream.
8799
* The input message buffer is copied and signed. The message's input buffer will be deallocated and a new

src/aws-cpp-sdk-core/include/aws/core/auth/signer/AWSAuthV4Signer.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ namespace Aws
149149
* and https is being used then the body of the payload will not be signed.
150150
* This overload passes the AWS request to the credentials provider for user agent feature tracking.
151151
*/
152-
bool SignRequest(Aws::Http::HttpRequest& request, Aws::AmazonWebServiceRequest& awsRequest, const char* region, const char* serviceName, bool signBody) const;
152+
bool SignRequest(Aws::Http::HttpRequest& request, Aws::AmazonWebServiceRequest& awsRequest, const char* region, const char* serviceName, bool signBody) const override;
153153

154154
/**
155155
* Takes a request and signs the URI based on the HttpMethod, URI and other info from the request.

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

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -581,11 +581,7 @@ HttpResponseOutcome AWSClient::AttemptOneRequest(const std::shared_ptr<Aws::Http
581581
auto signer = GetSignerByName(signerName);
582582
auto signedRequest = TracingUtils::MakeCallWithTiming<bool>([&]() -> bool {
583583
// Use request-aware signing for credential tracking
584-
auto* v4Signer = dynamic_cast<AWSAuthV4Signer*>(signer);
585-
if (v4Signer) {
586-
return v4Signer->SignRequest(*httpRequest, const_cast<Aws::AmazonWebServiceRequest&>(request), signerRegionOverride, signerServiceNameOverride, true);
587-
}
588-
return signer->SignRequest(*httpRequest, signerRegionOverride, signerServiceNameOverride, true);
584+
return signer->SignRequest(*httpRequest, const_cast<Aws::AmazonWebServiceRequest&>(request), signerRegionOverride, signerServiceNameOverride, true);
589585
},
590586
TracingUtils::SMITHY_CLIENT_SIGNING_METRIC,
591587
*m_telemetryProvider->getMeter(this->GetServiceClientName(), {}),

0 commit comments

Comments
 (0)