| /* |
| * Copyright 2010-2018 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; |
| |
| /** |
| * SDKGlobalConfiguration is to configure any global settings |
| */ |
| public class SDKGlobalConfiguration { |
| /////////////////////// System Properties /////////////////////// |
| |
| /** System property name for the AWS access key ID */ |
| public static final String ACCESS_KEY_SYSTEM_PROPERTY = "aws.accessKeyId"; |
| |
| /** System property name for the AWS secret key */ |
| public static final String SECRET_KEY_SYSTEM_PROPERTY = "aws.secretKey"; |
| |
| /** |
| * System property name for the AWS session token |
| */ |
| public static final String SESSION_TOKEN_SYSTEM_PROPERTY = "aws.sessionToken"; |
| |
| /** |
| * System property for overriding the Amazon EC2 Instance Metadata Service |
| * endpoint. |
| */ |
| public static final String EC2_METADATA_SERVICE_OVERRIDE_SYSTEM_PROPERTY = |
| "com.amazonaws.sdk.ec2MetadataServiceEndpointOverride"; |
| |
| /** |
| * By default, the AmazonS3Client will continue to use the legacy |
| * S3Signer to authenticate requests it makes to S3 in regions that |
| * support the older protocol. Setting this property to anything other |
| * than null will cause the client to upgrade to Signature Version 4 |
| * whenever it has been configured with an explicit region (which is a |
| * required parameter for Signature Version 4). The client will continue |
| * to use the older signature protocol when not configured with a region |
| * to avoid breaking existing applications. |
| * <p> |
| * Signature Version 4 is more secure than the legacy S3Signer, but |
| * requires calculating a SHA-256 hash of the entire request body which |
| * can be expensive for large upload requests. |
| */ |
| @Deprecated |
| public static final String ENABLE_S3_SIGV4_SYSTEM_PROPERTY = |
| "com.amazonaws.services.s3.enableV4"; |
| |
| /** |
| * Like {@link #ENABLE_S3_SIGV4_SYSTEM_PROPERTY}, but causes the client to |
| * always use Signature Version 4, assuming a region of |
| * "us-east-1" if no explicit region has been configured. This |
| * guarantees that the more secure authentication protocol will be used, |
| * but will cause authentication failures in code that accesses buckets in |
| * regions other than US Standard without explicitly configuring a region. |
| */ |
| @Deprecated |
| public static final String ENFORCE_S3_SIGV4_SYSTEM_PROPERTY = |
| "com.amazonaws.services.s3.enforceV4"; |
| |
| /** |
| * @deprecated with {@link AmazonWebServiceRequest#getRequestClientOptions()} |
| * and {@link RequestClientOptions#setReadLimit(int)}. |
| * <p> |
| * The default size of the buffer when uploading data from a stream. A |
| * buffer of this size will be created and filled with the first bytes from |
| * a stream being uploaded so that any transmit errors that occur in that |
| * section of the data can be automatically retried without the caller's |
| * intervention. |
| * <p> |
| * If not set, the default value of 128 KB will be used. |
| */ |
| @Deprecated |
| public static final String DEFAULT_S3_STREAM_BUFFER_SIZE = |
| "com.amazonaws.sdk.s3.defaultStreamBufferSize"; |
| |
| /** |
| * @deprecated by {@link #DEFAULT_METRICS_SYSTEM_PROPERTY}. |
| * |
| * Internal system property to enable timing info collection. |
| */ |
| @Deprecated |
| public static final String PROFILING_SYSTEM_PROPERTY = |
| "com.amazonaws.sdk.enableRuntimeProfiling"; |
| |
| /////////////////////// Environment Variables /////////////////////// |
| /** Environment variable name for the AWS access key ID */ |
| public static final String ACCESS_KEY_ENV_VAR = "AWS_ACCESS_KEY_ID"; |
| |
| /** Alternate environment variable name for the AWS access key ID */ |
| public static final String ALTERNATE_ACCESS_KEY_ENV_VAR = "AWS_ACCESS_KEY"; |
| |
| /** Environment variable name for the AWS secret key */ |
| public static final String SECRET_KEY_ENV_VAR = "AWS_SECRET_KEY"; |
| |
| /** Alternate environment variable name for the AWS secret key */ |
| public static final String ALTERNATE_SECRET_KEY_ENV_VAR = "AWS_SECRET_ACCESS_KEY"; |
| |
| /** Environment variable name for the AWS session token */ |
| public static final String AWS_SESSION_TOKEN_ENV_VAR = "AWS_SESSION_TOKEN"; |
| |
| /** |
| * Environment variable to set an alternate path to the shared config file (default path is |
| * ~/.aws/config). |
| */ |
| public static final String AWS_CONFIG_FILE_ENV_VAR = "AWS_CONFIG_FILE"; |
| |
| /** |
| * Environment variable to disable loading credentials or regions from EC2 Metadata instance service. |
| */ |
| public static final String AWS_EC2_METADATA_DISABLED_ENV_VAR = "AWS_EC2_METADATA_DISABLED"; |
| |
| /** |
| * System property to disable loading credentials or regions from EC2 Metadata instance service. |
| */ |
| public static final String AWS_EC2_METADATA_DISABLED_SYSTEM_PROPERTY = "com.amazonaws.sdk.disableEc2Metadata"; |
| |
| |
| /** |
| * @deprecated by {@link SDKGlobalTime#setGlobalTimeOffset(int)} |
| */ |
| @Deprecated |
| public static void setGlobalTimeOffset(int timeOffset) { |
| SDKGlobalTime.setGlobalTimeOffset(timeOffset); |
| } |
| |
| /** |
| * @deprecated by {@link SDKGlobalTime#getGlobalTimeOffset()} |
| */ |
| @Deprecated |
| public static int getGlobalTimeOffset() { |
| return SDKGlobalTime.getGlobalTimeOffset(); |
| } |
| |
| public static boolean isEc2MetadataDisabled() { |
| return isPropertyTrue(System.getProperty(AWS_EC2_METADATA_DISABLED_SYSTEM_PROPERTY)) || |
| isPropertyTrue(System.getenv(AWS_EC2_METADATA_DISABLED_ENV_VAR)); |
| } |
| |
| private static boolean isPropertyTrue(final String property) { |
| if (property != null && property.equalsIgnoreCase("true")) { |
| return true; |
| } |
| return false; |
| } |
| } |