All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.inlong.sort.filesystem.shaded.com.amazonaws.auth.AWS4UnsignedPayloadSigner Maven / Gradle / Ivy

There is a newer version: 1.13.0
Show newest version
/*
 * Copyright 2010-2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License").
 * You may not use this file except in compliance with the License.
 * A copy of the License is located at
 *
 *  http://aws.amazon.com/apache2.0
 *
 * or in the "license" file accompanying this file. This file is distributed
 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 * express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */
package com.amazonaws.auth;

import com.amazonaws.SignableRequest;
import com.amazonaws.annotation.SdkTestInternalApi;
import com.amazonaws.util.BinaryUtils;

import static com.amazonaws.auth.internal.SignerConstants.X_AMZ_CONTENT_SHA256;

/**
 * Exactly the same as {@link AWS4Signer} except if the request is being sent
 * over HTTPS, then it returns the string UNSIGNED-PAYLOAD as the
 * content SHA-256 so services that support it can avoid needing to calculate
 * the value when authorizing the request.
 * 

* Payloads are still signed for requests over HTTP to preserve the request * integrity over a non-secure transport. */ public class AWS4UnsignedPayloadSigner extends AWS4Signer { public AWS4UnsignedPayloadSigner() { super(); } @SdkTestInternalApi public AWS4UnsignedPayloadSigner(SdkClock clock) { super(clock); } @Override public void sign(SignableRequest request, AWSCredentials credentials) { request.getHeaders().put(X_AMZ_CONTENT_SHA256, "required"); super.sign(request, credentials); } @Override protected String calculateContentHash(SignableRequest request) { if ("https".equals(request.getEndpoint().getScheme())) { return "UNSIGNED-PAYLOAD"; } return super.calculateContentHash(request); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy