Skip to content

Commit 3a42d7e

Browse files
committed
changes
1 parent 74ec3e0 commit 3a42d7e

File tree

5 files changed

+17
-29
lines changed

5 files changed

+17
-29
lines changed

generated/src/aws-cpp-sdk-transcribestreaming/source/TranscribeStreamingServiceClient.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -227,10 +227,10 @@ void TranscribeStreamingServiceClient::StartCallAnalyticsStreamTranscriptionAsyn
227227
auto eventEncoderStream = Aws::MakeShared<Model::AudioStream>(ALLOCATION_TAG);
228228
request.SetAudioStream(eventEncoderStream); // this becomes the body of the request
229229
auto streamReadySemaphore = Aws::MakeShared<Aws::Utils::Threading::Semaphore>(ALLOCATION_TAG, 0, 1);
230+
request.SetRequestSignedHandler([eventEncoderStream, streamReadySemaphore](const Aws::Http::HttpRequest& httpRequest) { eventEncoderStream->SetSignatureSeed(Aws::Client::GetAuthorizationHeader(httpRequest)); streamReadySemaphore->ReleaseAll(); });
230231
m_clientConfiguration.executor->Submit([this, &request, handler, handlerContext, eventEncoderStream, streamReadySemaphore] () mutable {
231232
auto eventStreamHandler = [&](std::shared_ptr<Aws::Utils::Event::EventStreamEncoder> encoder) -> void{
232233
eventEncoderStream->SetEncoder(encoder);
233-
streamReadySemaphore->ReleaseAll();
234234
};
235235
JsonOutcome outcome = MakeEventStreamRequestDeserialize(&request, request.GetServiceRequestName(), Aws::Http::HttpMethod::HTTP_POST, [&](Aws::Endpoint::AWSEndpoint& resolvedEndpoint) -> void {
236236
resolvedEndpoint.AddPathSegments("/call-analytics-stream-transcription");
@@ -293,10 +293,10 @@ void TranscribeStreamingServiceClient::StartMedicalScribeStreamAsync(Model::Star
293293
auto eventEncoderStream = Aws::MakeShared<Model::MedicalScribeInputStream>(ALLOCATION_TAG);
294294
request.SetInputStream(eventEncoderStream); // this becomes the body of the request
295295
auto streamReadySemaphore = Aws::MakeShared<Aws::Utils::Threading::Semaphore>(ALLOCATION_TAG, 0, 1);
296+
request.SetRequestSignedHandler([eventEncoderStream, streamReadySemaphore](const Aws::Http::HttpRequest& httpRequest) { eventEncoderStream->SetSignatureSeed(Aws::Client::GetAuthorizationHeader(httpRequest)); streamReadySemaphore->ReleaseAll(); });
296297
m_clientConfiguration.executor->Submit([this, &request, handler, handlerContext, eventEncoderStream, streamReadySemaphore] () mutable {
297298
auto eventStreamHandler = [&](std::shared_ptr<Aws::Utils::Event::EventStreamEncoder> encoder) -> void{
298299
eventEncoderStream->SetEncoder(encoder);
299-
streamReadySemaphore->ReleaseAll();
300300
};
301301
JsonOutcome outcome = MakeEventStreamRequestDeserialize(&request, request.GetServiceRequestName(), Aws::Http::HttpMethod::HTTP_POST, [&](Aws::Endpoint::AWSEndpoint& resolvedEndpoint) -> void {
302302
resolvedEndpoint.AddPathSegments("/medical-scribe-stream");
@@ -371,10 +371,10 @@ void TranscribeStreamingServiceClient::StartMedicalStreamTranscriptionAsync(Mode
371371
auto eventEncoderStream = Aws::MakeShared<Model::AudioStream>(ALLOCATION_TAG);
372372
request.SetAudioStream(eventEncoderStream); // this becomes the body of the request
373373
auto streamReadySemaphore = Aws::MakeShared<Aws::Utils::Threading::Semaphore>(ALLOCATION_TAG, 0, 1);
374+
request.SetRequestSignedHandler([eventEncoderStream, streamReadySemaphore](const Aws::Http::HttpRequest& httpRequest) { eventEncoderStream->SetSignatureSeed(Aws::Client::GetAuthorizationHeader(httpRequest)); streamReadySemaphore->ReleaseAll(); });
374375
m_clientConfiguration.executor->Submit([this, &request, handler, handlerContext, eventEncoderStream, streamReadySemaphore] () mutable {
375376
auto eventStreamHandler = [&](std::shared_ptr<Aws::Utils::Event::EventStreamEncoder> encoder) -> void{
376377
eventEncoderStream->SetEncoder(encoder);
377-
streamReadySemaphore->ReleaseAll();
378378
};
379379
JsonOutcome outcome = MakeEventStreamRequestDeserialize(&request, request.GetServiceRequestName(), Aws::Http::HttpMethod::HTTP_POST, [&](Aws::Endpoint::AWSEndpoint& resolvedEndpoint) -> void {
380380
resolvedEndpoint.AddPathSegments("/medical-stream-transcription");
@@ -431,10 +431,10 @@ void TranscribeStreamingServiceClient::StartStreamTranscriptionAsync(Model::Star
431431
auto eventEncoderStream = Aws::MakeShared<Model::AudioStream>(ALLOCATION_TAG);
432432
request.SetAudioStream(eventEncoderStream); // this becomes the body of the request
433433
auto streamReadySemaphore = Aws::MakeShared<Aws::Utils::Threading::Semaphore>(ALLOCATION_TAG, 0, 1);
434+
request.SetRequestSignedHandler([eventEncoderStream, streamReadySemaphore](const Aws::Http::HttpRequest& httpRequest) { eventEncoderStream->SetSignatureSeed(Aws::Client::GetAuthorizationHeader(httpRequest)); streamReadySemaphore->ReleaseAll(); });
434435
m_clientConfiguration.executor->Submit([this, &request, handler, handlerContext, eventEncoderStream, streamReadySemaphore] () mutable {
435436
auto eventStreamHandler = [&](std::shared_ptr<Aws::Utils::Event::EventStreamEncoder> encoder) -> void{
436437
eventEncoderStream->SetEncoder(encoder);
437-
streamReadySemaphore->ReleaseAll();
438438
};
439439
JsonOutcome outcome = MakeEventStreamRequestDeserialize(&request, request.GetServiceRequestName(), Aws::Http::HttpMethod::HTTP_POST, [&](Aws::Endpoint::AWSEndpoint& resolvedEndpoint) -> void {
440440
resolvedEndpoint.AddPathSegments("/stream-transcription");

src/aws-cpp-sdk-core/include/aws/core/utils/event/EventStreamEncoder.h

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ namespace Aws
4141
* The signing is done via the signer member.
4242
*/
4343
Aws::Vector<unsigned char> EncodeAndSign(const Aws::Utils::Event::Message& msg);
44+
45+
virtual ~EventStreamEncoder(){};
4446
protected:
4547
virtual bool SignEventMessage(Event::Message& msg);
4648
Aws::String m_signatureSeed;
@@ -67,22 +69,22 @@ namespace Aws
6769
class AWS_CORE_API SmithyEventStreamEncoder : public EventStreamEncoder {
6870
public:
6971
using SIGNER_TYPE = smithy::AwsSignerBase<IdentityT>;
70-
SmithyEventStreamEncoder(std::shared_ptr<SIGNER_TYPE> signer, IdentityT& identity) : EventStreamEncoder(), m_smithySigner(signer), m_identity{identity}{};
72+
SmithyEventStreamEncoder(std::shared_ptr<SIGNER_TYPE> signer, std::shared_ptr<smithy::AwsIdentity> awsIdentity) : EventStreamEncoder(), m_smithySigner(signer), m_awsIdentity{awsIdentity}{};
7173
//SmithyEventStreamEncoder() : EventStreamEncoder(){};
7274

7375
protected:
7476
bool SignEventMessage(Event::Message& signedMessage) override {
7577

7678
//resolved identity
77-
//auto identity = *static_cast<IdentityT*>(m_requestContext.m_awsIdentity.get());
79+
const auto& identity = *static_cast<IdentityT*>(m_awsIdentity.get());
7880

7981
//@to do: if identity expired, resolve it again
80-
return (m_smithySigner->SignEventMessage(signedMessage, m_signatureSeed, m_identity));
82+
return (m_smithySigner->SignEventMessage(signedMessage, m_signatureSeed, identity));
8183
}
8284

8385
private:
8486
std::shared_ptr<SIGNER_TYPE> m_smithySigner;
85-
IdentityT m_identity;
87+
std::shared_ptr<smithy::AwsIdentity> m_awsIdentity;
8688
};
8789
}
8890
}

src/aws-cpp-sdk-core/include/smithy/client/common/AwsSmithyRequestSigning.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ namespace smithy
224224

225225
if(m_httpRequest->IsEventStreamRequest() && m_requestContext.m_eventEncoderStreamHandler)
226226
{
227-
m_requestContext.m_eventEncoderStreamHandler(Aws::MakeShared<Aws::Utils::Event::SmithyEventStreamEncoder<IdentityT>>("", signer, *static_cast<IdentityT*>(m_requestContext.m_awsIdentity.get())));
227+
m_requestContext.m_eventEncoderStreamHandler(Aws::MakeShared<Aws::Utils::Event::SmithyEventStreamEncoder<IdentityT>>("", signer, m_requestContext.m_awsIdentity));
228228
}
229229

230230
result.emplace(signer->sign(m_httpRequest,

src/aws-cpp-sdk-core/include/smithy/identity/signer/built-in/SigV4Signer.h

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ namespace smithy {
2525
explicit AwsSigV4Signer(const Aws::String& serviceName, const Aws::String& region)
2626
: m_serviceName(serviceName),
2727
m_region(region),
28-
legacySigner(nullptr, serviceName.c_str(), region, Aws::Client::AWSAuthV4Signer::PayloadSigningPolicy::Always)
28+
legacySigner(nullptr, serviceName.c_str(), region, Aws::Client::AWSAuthV4Signer::PayloadSigningPolicy::Always),
29+
legacyEventStreamSigner{Aws::MakeShared<Aws::Client::AWSAuthEventStreamV4Signer>("SigV4AuthScheme", nullptr, serviceName.c_str(), region)}
2930
{
3031
}
3132
/*
@@ -34,23 +35,8 @@ namespace smithy {
3435
explicit AwsSigV4Signer(const Aws::String& serviceName, const Aws::String& region, Aws::Client::AWSAuthV4Signer::PayloadSigningPolicy policy, bool urlEscapePath)
3536
: m_serviceName(serviceName),
3637
m_region(region),
37-
legacySigner(nullptr, serviceName.c_str(), region, policy, urlEscapePath)
38-
{
39-
}
40-
41-
explicit AwsSigV4Signer(const Aws::String& serviceName, const Aws::String& region, Aws::Client::AWSAuthV4Signer::PayloadSigningPolicy policy, bool urlEscapePath, bool enableEventStreaming)
42-
: m_serviceName(serviceName),
43-
m_region(region),
44-
legacySigner(nullptr, serviceName.c_str(), region, policy, urlEscapePath),
45-
legacyEventStreamSigner{enableEventStreaming ? Aws::MakeShared<Aws::Client::AWSAuthEventStreamV4Signer>("SigV4AuthScheme", nullptr, serviceName.c_str(), region) : nullptr}
46-
{
47-
}
48-
49-
explicit AwsSigV4Signer(const std::shared_ptr<Auth::AWSCredentialsProvider>& credentialsProvider,const Aws::String& serviceName, const Aws::String& region, Aws::Client::AWSAuthV4Signer::PayloadSigningPolicy policy, bool urlEscapePath, bool enableEventStreaming)
50-
: m_serviceName(serviceName),
51-
m_region(region),
52-
legacySigner(nullptr, serviceName.c_str(), region, policy, urlEscapePath),
53-
legacyEventStreamSigner{enableEventStreaming ? Aws::MakeShared<Aws::Client::AWSAuthEventStreamV4Signer>("SigV4AuthScheme", credentialsProvider, serviceName.c_str(), region) : nullptr}
38+
legacySigner(nullptr, serviceName.c_str(), region, policy, urlEscapePath),
39+
legacyEventStreamSigner{Aws::MakeShared<Aws::Client::AWSAuthEventStreamV4Signer>("SigV4AuthScheme", nullptr, serviceName.c_str(), region)}
5440
{
5541
}
5642

@@ -80,7 +66,7 @@ namespace smithy {
8066

8167
assert(httpRequest);
8268

83-
bool success = /*httpRequest->IsEventStreamRequest()? legacyEventStreamSigner->SignRequest(*httpRequest, region, svcName, signPayload, legacyCreds) : */
69+
bool success = httpRequest->IsEventStreamRequest()? legacyEventStreamSigner->SignRequest(*httpRequest, region, svcName, signPayload, legacyCreds) :
8470
legacySigner.SignRequestWithCreds(*httpRequest, legacyCreds, region, svcName, signPayload);
8571
if (success)
8672
{

tools/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/smithy/SmithyJsonServiceEventStreamOperationsSource.vm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,10 @@ void ${className}::${operation.name}Async(Model::${operation.request.shape.name}
3737
auto eventEncoderStream = Aws::MakeShared<Model::$streamModelType>(ALLOCATION_TAG);
3838
request.Set${streamModelNameWithFirstLetterCapitalized}(eventEncoderStream); // this becomes the body of the request
3939
auto streamReadySemaphore = Aws::MakeShared<Aws::Utils::Threading::Semaphore>(ALLOCATION_TAG, 0, 1);
40+
request.SetRequestSignedHandler([eventEncoderStream, streamReadySemaphore](const Aws::Http::HttpRequest& httpRequest) { eventEncoderStream->SetSignatureSeed(Aws::Client::GetAuthorizationHeader(httpRequest)); streamReadySemaphore->ReleaseAll(); });
4041
m_clientConfiguration.executor->Submit([this, &request, handler, handlerContext, #if($hasEndPointOverrides) endpointOverrides, #end eventEncoderStream, streamReadySemaphore] () mutable {
4142
auto eventStreamHandler = [&](std::shared_ptr<Aws::Utils::Event::EventStreamEncoder> encoder) -> void{
4243
eventEncoderStream->SetEncoder(encoder);
43-
streamReadySemaphore->ReleaseAll();
4444
};
4545
JsonOutcome outcome = MakeEventStreamRequestDeserialize(&request, request.GetServiceRequestName(), Aws::Http::HttpMethod::HTTP_${operation.http.method}, [&](Aws::Endpoint::AWSEndpoint& resolvedEndpoint) -> void {
4646
#parse("/com/amazonaws/util/awsclientgenerator/velocity/cpp/smithy/SmithyEndpointClosure.vm")

0 commit comments

Comments
 (0)