format
This commit is contained in:
parent
8b03735e83
commit
2a4f62d88f
@ -27,25 +27,30 @@ using namespace Azure::Core::Http::Policies::_internal;
|
||||
using namespace Azure::Core::Http::_internal;
|
||||
|
||||
#if defined(BUILD_TRANSPORT_WINHTTP_ADAPTER)
|
||||
// Whenever winHTTP transport is built, create a policy to make request with no client certificate for attestation requests
|
||||
// Whenever winHTTP transport is built, create a policy to make request with no client certificate
|
||||
// for attestation requests
|
||||
#include "azure/core/http/win_http_transport.hpp"
|
||||
|
||||
namespace {
|
||||
class SetNoClientCertificatePolicy : public Azure::Core::Http::Policies::HttpPolicy {
|
||||
public:
|
||||
std::unique_ptr<Azure::Core::Http::Policies::HttpPolicy> Clone() const override
|
||||
{
|
||||
return std::make_unique<SetNoClientCertificatePolicy>();
|
||||
}
|
||||
class SetNoClientCertificatePolicy : public Azure::Core::Http::Policies::HttpPolicy {
|
||||
public:
|
||||
std::unique_ptr<Azure::Core::Http::Policies::HttpPolicy> Clone() const override
|
||||
{
|
||||
return std::make_unique<SetNoClientCertificatePolicy>();
|
||||
}
|
||||
|
||||
std::unique_ptr<Azure::Core::Http::RawResponse> Send(
|
||||
Azure::Core::Http::Request& request,
|
||||
Azure::Core::Http::Policies::NextHttpPolicy nextHttpPolicy,
|
||||
const Azure::Core::Context& ctx) const override {
|
||||
return nextHttpPolicy.Send(request, Azure::Core::Http::_internal::WinHttpTransportContextProvider::GetNoClientCertificateContext(ctx));
|
||||
}
|
||||
};
|
||||
}
|
||||
std::unique_ptr<Azure::Core::Http::RawResponse> Send(
|
||||
Azure::Core::Http::Request& request,
|
||||
Azure::Core::Http::Policies::NextHttpPolicy nextHttpPolicy,
|
||||
const Azure::Core::Context& ctx) const override
|
||||
{
|
||||
return nextHttpPolicy.Send(
|
||||
request,
|
||||
Azure::Core::Http::_internal::WinHttpTransportContextProvider::
|
||||
GetNoClientCertificateContext(ctx));
|
||||
}
|
||||
};
|
||||
} // namespace
|
||||
#endif
|
||||
|
||||
AttestationClient::AttestationClient(
|
||||
@ -67,11 +72,11 @@ AttestationClient::AttestationClient(
|
||||
}
|
||||
m_apiVersion = options.Version.ToString();
|
||||
std::vector<std::unique_ptr<HttpPolicy>> perCallpolicies;
|
||||
|
||||
#if defined(BUILD_TRANSPORT_WINHTTP_ADAPTER)
|
||||
|
||||
#if defined(BUILD_TRANSPORT_WINHTTP_ADAPTER)
|
||||
// This configuration will make winHTTP to disable client certificate for all attestation requests
|
||||
perCallpolicies.emplace_back(std::make_unique<SetNoClientCertificatePolicy>());
|
||||
#endif
|
||||
#endif
|
||||
|
||||
m_pipeline = std::make_shared<Azure::Core::Http::_internal::HttpPipeline>(
|
||||
options,
|
||||
|
||||
@ -145,13 +145,13 @@ namespace Azure { namespace Core { namespace Http {
|
||||
*
|
||||
*/
|
||||
class WinHttpTransportContextProvider {
|
||||
public:
|
||||
// Factory with no constructor
|
||||
WinHttpTransportContextProvider() = delete;
|
||||
public:
|
||||
// Factory with no constructor
|
||||
WinHttpTransportContextProvider() = delete;
|
||||
|
||||
// Creates a set up token to make
|
||||
static Azure::Core::Context GetNoClientCertificateContext(Azure::Core::Context const& parent);
|
||||
static bool HasNoClientCertificateConfiguration(Azure::Core::Context const& context);
|
||||
// Creates a set up token to make
|
||||
static Azure::Core::Context GetNoClientCertificateContext(Azure::Core::Context const& parent);
|
||||
static bool HasNoClientCertificateConfiguration(Azure::Core::Context const& context);
|
||||
};
|
||||
} // namespace _internal
|
||||
|
||||
|
||||
@ -200,11 +200,16 @@ Azure::Core::Context::Key NoClientCertificateConfiguration;
|
||||
|
||||
} // namespace
|
||||
|
||||
Azure::Core::Context Azure::Core::Http::_internal::WinHttpTransportContextProvider::GetNoClientCertificateContext(Azure::Core::Context const& parent) {
|
||||
Azure::Core::Context
|
||||
Azure::Core::Http::_internal::WinHttpTransportContextProvider::GetNoClientCertificateContext(
|
||||
Azure::Core::Context const& parent)
|
||||
{
|
||||
return parent.WithValue(NoClientCertificateConfiguration, true);
|
||||
}
|
||||
|
||||
bool Azure::Core::Http::_internal::WinHttpTransportContextProvider::HasNoClientCertificateConfiguration(Azure::Core::Context const& context) {
|
||||
bool Azure::Core::Http::_internal::WinHttpTransportContextProvider::
|
||||
HasNoClientCertificateConfiguration(Azure::Core::Context const& context)
|
||||
{
|
||||
bool value = false;
|
||||
context.TryGetValue<bool>(NoClientCertificateConfiguration, value);
|
||||
return value;
|
||||
@ -355,7 +360,8 @@ void WinHttpTransport::CreateRequestHandle(std::unique_ptr<_detail::HandleManage
|
||||
}
|
||||
|
||||
// Option is set up by context settings only and is only available for SDK clients
|
||||
if(m_noClientCert) {
|
||||
if (m_noClientCert)
|
||||
{
|
||||
// If the service requests TLS client certificates, we want to let the WinHTTP APIs know that
|
||||
// it's ok to initiate the request without a client certificate.
|
||||
//
|
||||
|
||||
Loading…
Reference in New Issue
Block a user