• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Java AWSSessionCredentials类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中com.amazonaws.auth.AWSSessionCredentials的典型用法代码示例。如果您正苦于以下问题:Java AWSSessionCredentials类的具体用法?Java AWSSessionCredentials怎么用?Java AWSSessionCredentials使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



AWSSessionCredentials类属于com.amazonaws.auth包,在下文中一共展示了AWSSessionCredentials类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: assertEqualCredentials

import com.amazonaws.auth.AWSSessionCredentials; //导入依赖的package包/类
private static void assertEqualCredentials(AWSCredentials expected, AWSCredentials actual) {
    assertEquals(expected.getAWSAccessKeyId(),
            actual.getAWSAccessKeyId());
    assertEquals(expected.getAWSAccessKeyId(),
            actual.getAWSAccessKeyId());

    if (expected instanceof AWSSessionCredentials) {
        assertTrue(actual instanceof AWSSessionCredentials);

        AWSSessionCredentials expectedSession = (AWSSessionCredentials)expected;
        AWSSessionCredentials actualSession   = (AWSSessionCredentials)actual;
        assertEquals(expectedSession.getSessionToken(),
                actualSession.getSessionToken());
    } else {
        assertFalse(actual instanceof AWSSessionCredentials);
    }
}
 
开发者ID:IBM,项目名称:ibm-cos-sdk-java,代码行数:18,代码来源:ProfilesConfigFileWriterTest.java


示例2: testTwoProfileWithSameName

import com.amazonaws.auth.AWSSessionCredentials; //导入依赖的package包/类
/**
 * Tests two profiles having same name. The second profile overrides the first profile. Also
 * checks if the AWS Access Key ID and AWS Secret Access Key are mapped properly under the
 * profile.
 */
@Test
public void testTwoProfileWithSameName() throws URISyntaxException {
    ProfilesConfigFile profile = new ProfilesConfigFile(
            ProfileResourceLoader.profilesWithSameProfileName().asFile());

    AWSCredentials defaultCred = profile.getCredentials(DEFAULT_PROFILE_NAME);
    assertNotNull(defaultCred);
    assertTrue(defaultCred instanceof BasicAWSCredentials);

    AWSCredentials testCred = profile.getCredentials(PROFILE_NAME_TEST);
    assertNotNull(testCred);
    assertTrue(testCred instanceof AWSSessionCredentials);
    AWSSessionCredentials testSessionCred = (AWSSessionCredentials) testCred;
    assertEquals(testSessionCred.getAWSAccessKeyId(), "testProfile2");
    assertEquals(testSessionCred.getAWSSecretKey(), "testProfile2");
    assertEquals(testSessionCred.getSessionToken(), "testProfile2");

}
 
开发者ID:IBM,项目名称:ibm-cos-sdk-java,代码行数:24,代码来源:CredentialProfilesTest.java


示例3: sign

import com.amazonaws.auth.AWSSessionCredentials; //导入依赖的package包/类
public void sign(SignableRequest<?> request, AWSCredentials credentials) throws SdkClientException {
    AWSCredentials sanitizedCredentials = sanitizeCredentials(credentials);

    if ( sanitizedCredentials instanceof AWSSessionCredentials ) {
        addSessionCredentials(request, (AWSSessionCredentials) sanitizedCredentials);
    }

    String expirationInSeconds = Long.toString(expiration.getTime() / 1000L);

    String canonicalString = RestUtils.makeS3CanonicalString(
            httpVerb, resourcePath, request, expirationInSeconds);

    String signature = super.signAndBase64Encode(canonicalString, sanitizedCredentials.getAWSSecretKey(), SigningAlgorithm.HmacSHA1);

    request.addParameter("AWSAccessKeyId", sanitizedCredentials.getAWSAccessKeyId());
    request.addParameter("Expires", expirationInSeconds);
    request.addParameter("Signature", signature);
}
 
开发者ID:IBM,项目名称:ibm-cos-sdk-java,代码行数:19,代码来源:S3QueryStringSigner.java


示例4: credentials

import com.amazonaws.auth.AWSSessionCredentials; //导入依赖的package包/类
/** By default, get credentials from the {@link DefaultAWSCredentialsProviderChain} */
@Bean
@ConditionalOnMissingBean
AWSCredentials.Provider credentials() {
  return new AWSCredentials.Provider() {
    AWSCredentialsProvider delegate = new DefaultAWSCredentialsProviderChain();

    @Override public AWSCredentials get() {
      com.amazonaws.auth.AWSCredentials result = delegate.getCredentials();
      String sessionToken = result instanceof AWSSessionCredentials
          ? ((AWSSessionCredentials) result).getSessionToken()
          : null;
      return new AWSCredentials(
          result.getAWSAccessKeyId(),
          result.getAWSSecretKey(),
          sessionToken
      );
    }
  };
}
 
开发者ID:liaominghua,项目名称:zipkin,代码行数:21,代码来源:ZipkinElasticsearchAwsStorageAutoConfiguration.java


示例5: getCopyConfig

import com.amazonaws.auth.AWSSessionCredentials; //导入依赖的package包/类
private String getCopyConfig(Map<String, Object> configInput, boolean maskConfig)
        throws IOException
{
    TaskRequest taskRequest = testHelper.createTaskRequest(configInput, Optional.absent());
    OperatorContext operatorContext = mock(OperatorContext.class);
    when(operatorContext.getProjectPath()).thenReturn(testHelper.projectPath());
    when(operatorContext.getTaskRequest()).thenReturn(taskRequest);
    RedshiftLoadOperatorFactory.RedshiftLoadOperator operator = (RedshiftLoadOperatorFactory.RedshiftLoadOperator) operatorFactory.newOperator(operatorContext);
    assertThat(operator, is(instanceOf(RedshiftLoadOperatorFactory.RedshiftLoadOperator.class)));

    AWSSessionCredentials credentials = mock(AWSSessionCredentials.class);
    when(credentials.getAWSAccessKeyId()).thenReturn("my-access-key-id");
    when(credentials.getAWSSecretKey()).thenReturn("my-secret-access-key");

    RedshiftConnection.CopyConfig copyConfig = operator.createCopyConfig(testHelper.createConfig(configInput), credentials);

    Connection connection = mock(Connection.class);

    RedshiftConnection redshiftConnection = new RedshiftConnection(connection);

    return redshiftConnection.buildCopyStatement(copyConfig, maskConfig);
}
 
开发者ID:treasure-data,项目名称:digdag,代码行数:23,代码来源:RedshiftLoadOperatorFactoryTest.java


示例6: getUnloadConfig

import com.amazonaws.auth.AWSSessionCredentials; //导入依赖的package包/类
private String getUnloadConfig(Map<String, Object> configInput, String queryId, boolean maskConfig)
        throws IOException
{
    TaskRequest taskRequest = testHelper.createTaskRequest(configInput, Optional.absent());
    OperatorContext operatorContext = mock(OperatorContext.class);
    when(operatorContext.getProjectPath()).thenReturn(testHelper.projectPath());
    when(operatorContext.getTaskRequest()).thenReturn(taskRequest);
    RedshiftUnloadOperatorFactory.RedshiftUnloadOperator operator = (RedshiftUnloadOperatorFactory.RedshiftUnloadOperator) operatorFactory.newOperator(operatorContext);
    assertThat(operator, is(instanceOf(RedshiftUnloadOperatorFactory.RedshiftUnloadOperator.class)));

    AWSSessionCredentials credentials = mock(AWSSessionCredentials.class);
    when(credentials.getAWSAccessKeyId()).thenReturn("my-access-key-id");
    when(credentials.getAWSSecretKey()).thenReturn("my-secret-access-key");

    RedshiftConnection.UnloadConfig unloadConfig = operator.createUnloadConfig(testHelper.createConfig(configInput), credentials, queryId);

    Connection connection = mock(Connection.class);

    RedshiftConnection redshiftConnection = new RedshiftConnection(connection);

    return redshiftConnection.buildUnloadStatement(unloadConfig, maskConfig);
}
 
开发者ID:treasure-data,项目名称:digdag,代码行数:23,代码来源:RedshiftUnloadOperatorFactoryTest.java


示例7: serviceWithSessionToken

import com.amazonaws.auth.AWSSessionCredentials; //导入依赖的package包/类
@Test
public void serviceWithSessionToken() throws Exception {
  String accessKey = "accessKey";
  String secretKey = "secretKey";
  String sessionToken = "sessionToken";
  new MockUnit(Config.class)
      .expect(unit -> {
        Config config = unit.get(Config.class);
        expect(config.hasPath("aws.s3.accessKey")).andReturn(false);
        expect(config.hasPath("aws.s3.secretKey")).andReturn(false);
        expect(config.hasPath("aws.s3.sessionToken")).andReturn(false);
        expect(config.hasPath("aws.sessionToken")).andReturn(true);
        expect(config.getString("aws.accessKey")).andReturn(accessKey);
        expect(config.getString("aws.secretKey")).andReturn(secretKey);
        expect(config.getString("aws.sessionToken")).andReturn(sessionToken);
      })
      .run(unit -> {
        AWSSessionCredentials creds = (AWSSessionCredentials) new ConfigCredentialsProvider(
            unit.get(Config.class))
            .service("s3").getCredentials();
        assertEquals("accessKey", creds.getAWSAccessKeyId());
        assertEquals("secretKey", creds.getAWSSecretKey());
        assertEquals("sessionToken", creds.getSessionToken());
      });
}
 
开发者ID:jooby-project,项目名称:jooby,代码行数:26,代码来源:ConfigCredentialsProviderTest.java


示例8: serviceWithCustomSessionToken

import com.amazonaws.auth.AWSSessionCredentials; //导入依赖的package包/类
@Test
public void serviceWithCustomSessionToken() throws Exception {
  String accessKey = "accessKey";
  String secretKey = "secretKey";
  String sessionToken = "sessionToken";
  new MockUnit(Config.class)
      .expect(unit -> {
        Config config = unit.get(Config.class);
        expect(config.hasPath("aws.s3.accessKey")).andReturn(false);
        expect(config.hasPath("aws.s3.secretKey")).andReturn(false);
        expect(config.hasPath("aws.s3.sessionToken")).andReturn(true);
        expect(config.getString("aws.accessKey")).andReturn(accessKey);
        expect(config.getString("aws.secretKey")).andReturn(secretKey);
        expect(config.getString("aws.s3.sessionToken")).andReturn(sessionToken);
      })
      .run(unit -> {
        AWSSessionCredentials creds = (AWSSessionCredentials) new ConfigCredentialsProvider(
            unit.get(Config.class))
            .service("s3").getCredentials();
        assertEquals("accessKey", creds.getAWSAccessKeyId());
        assertEquals("secretKey", creds.getAWSSecretKey());
        assertEquals("sessionToken", creds.getSessionToken());
      });
}
 
开发者ID:jooby-project,项目名称:jooby,代码行数:25,代码来源:ConfigCredentialsProviderTest.java


示例9: Profile

import com.amazonaws.auth.AWSSessionCredentials; //导入依赖的package包/类
public Profile(String profileName, AWSCredentials awsCredentials) {
    Map<String, String> properties = new LinkedHashMap<String, String>();
    properties.put(ProfileKeyConstants.AWS_ACCESS_KEY_ID, awsCredentials.getAWSAccessKeyId());
    properties.put(ProfileKeyConstants.AWS_SECRET_ACCESS_KEY, awsCredentials.getAWSSecretKey());

    if (awsCredentials instanceof AWSSessionCredentials) {
        AWSSessionCredentials sessionCred = (AWSSessionCredentials)awsCredentials;
        properties.put(ProfileKeyConstants.AWS_SESSION_TOKEN, sessionCred.getSessionToken());
    }

    this.profileName = profileName;
    this.properties = properties;
    this.awsCredentials = new StaticCredentialsProvider(awsCredentials);
}
 
开发者ID:IBM,项目名称:ibm-cos-sdk-java,代码行数:15,代码来源:Profile.java


示例10: getSignedHeaders

import com.amazonaws.auth.AWSSessionCredentials; //导入依赖的package包/类
public Map<String, String> getSignedHeaders(String uri, String method,
                                            Map<String, String> queryParams,
                                            Map<String, String> headers,
                                            Optional<byte[]> payload) {
    final LocalDateTime now = clock.get();
    final AWSCredentials credentials = credentialsProvider.getCredentials();
    final Map<String, String> result = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
    result.putAll(headers);
    if (!result.containsKey(DATE)) {
        result.put(X_AMZ_DATE, now.format(BASIC_TIME_FORMAT));
    }
    if (AWSSessionCredentials.class.isAssignableFrom(credentials.getClass())) {
        result.put(SESSION_TOKEN, ((AWSSessionCredentials) credentials).getSessionToken());
    }

    final StringBuilder headersString = new StringBuilder();
    final ImmutableList.Builder<String> signedHeaders = ImmutableList.builder();

    for (Map.Entry<String, String> entry : result.entrySet()) {
        headersString.append(headerAsString(entry)).append(RETURN);
        signedHeaders.add(entry.getKey().toLowerCase());
    }

    final String signedHeaderKeys = JOINER.join(signedHeaders.build());
    final String canonicalRequest = method + RETURN +
            uri + RETURN +
            queryParamsString(queryParams) + RETURN +
            headersString.toString() + RETURN +
            signedHeaderKeys + RETURN +
            toBase16(hash(payload.orElse(EMPTY.getBytes(Charsets.UTF_8))));
    final String stringToSign = createStringToSign(canonicalRequest, now);
    final String signature = sign(stringToSign, now, credentials);
    final String autorizationHeader = AWS4_HMAC_SHA256_CREDENTIAL + credentials.getAWSAccessKeyId() + SLASH + getCredentialScope(now) +
            SIGNED_HEADERS + signedHeaderKeys +
            SIGNATURE + signature;

    result.put(AUTHORIZATION, autorizationHeader);
    return ImmutableMap.copyOf(result);
}
 
开发者ID:sonyxperiadev,项目名称:lumber-mill,代码行数:40,代码来源:AWSV4SignerImpl.java


示例11: getCredentials

import com.amazonaws.auth.AWSSessionCredentials; //导入依赖的package包/类
@Override
public AWSSessionCredentials getCredentials() {
    if (this.credentials == null || this.lastRefreshedInstant.isBefore(Instant.now().minus(CREDENTIALS_DURATION))) {
        refresh();
    }
    return this.credentials;
}
 
开发者ID:awslabs,项目名称:aws-codepipeline-plugin-for-jenkins,代码行数:8,代码来源:AWSCodePipelineJobCredentialsProvider.java


示例12: refresh

import com.amazonaws.auth.AWSSessionCredentials; //导入依赖的package包/类
@Override
public synchronized void refresh() {
    final GetJobDetailsRequest getJobDetailsRequest = new GetJobDetailsRequest().withJobId(jobId);
    final GetJobDetailsResult getJobDetailsResult = codePipelineClient.getJobDetails(getJobDetailsRequest);
    final com.amazonaws.services.codepipeline.model.AWSSessionCredentials credentials
        = getJobDetailsResult.getJobDetails().getData().getArtifactCredentials();

    this.lastRefreshedInstant = Instant.now();
    this.credentials = new BasicSessionCredentials(
            credentials.getAccessKeyId(),
            credentials.getSecretAccessKey(),
            credentials.getSessionToken());
}
 
开发者ID:awslabs,项目名称:aws-codepipeline-plugin-for-jenkins,代码行数:14,代码来源:AWSCodePipelineJobCredentialsProvider.java


示例13: createSessionCredentials

import com.amazonaws.auth.AWSSessionCredentials; //导入依赖的package包/类
private AWSSessionCredentials createSessionCredentials(Config config, SecretProvider secrets, BasicAWSCredentials baseCredential)
{
    List<AcceptableUri> acceptableUris = buildAcceptableUriForSessionCredentials(config, baseCredential);

    if (!config.get("temp_credentials", Boolean.class, true)) {
        return new BasicSessionCredentials(
                baseCredential.getAWSAccessKeyId(),
                baseCredential.getAWSSecretKey(),
                null
        );
    }

    AWSSessionCredentialsFactory sessionCredentialsFactory =
            new AWSSessionCredentialsFactory(baseCredential, acceptableUris);

    Optional<String> roleArn = getSecretOptionalValue(secrets, "role_arn");
    if (roleArn.isPresent()) {
        sessionCredentialsFactory.withRoleArn(roleArn.get());
        Optional<String> roleSessionName = secrets.getSecretOptional("role_session_name");
        if (roleSessionName.isPresent()) {
            sessionCredentialsFactory.withRoleSessionName(roleSessionName.get());
        }
    }

    Optional<Integer> durationSeconds = config.getOptional("session_duration", Integer.class);
    if (durationSeconds.isPresent()) {
        sessionCredentialsFactory.withDurationSeconds(durationSeconds.get());
    }

    return sessionCredentialsFactory.get();
}
 
开发者ID:treasure-data,项目名称:digdag,代码行数:32,代码来源:BaseRedshiftLoadOperator.java


示例14: run

import com.amazonaws.auth.AWSSessionCredentials; //导入依赖的package包/类
@Override
protected TaskResult run(Config params, Config state, RedshiftConnectionConfig connectionConfig)
{
    UUID queryId;
    // generate query id
    if (!state.has(QUERY_ID)) {
        // this is the first execution of this task
        logger.debug("Generating query id for a new {} task", type());
        queryId = UUID.randomUUID();
        state.set(QUERY_ID, queryId);
        throw TaskExecutionException.ofNextPolling(0, ConfigElement.copyOf(state));
    }
    queryId = state.get(QUERY_ID, UUID.class);

    BasicAWSCredentials baseCredentials = createBaseCredential(context.getSecrets());
    AWSSessionCredentials sessionCredentials = createSessionCredentials(params, context.getSecrets(), baseCredentials);
    T statementConfig = createStatementConfig(params, sessionCredentials, queryId.toString());

    beforeConnect(baseCredentials, statementConfig);

    pollingRetryExecutor(TaskState.of(state), "load")
            .retryIf(LockConflictException.class, x -> true)
            .withErrorMessage("Redshift Load/Unload operation failed")
            .runAction(s -> executeTask(params, connectionConfig, statementConfig, queryId));

    return TaskResult.defaultBuilder(request).build();
}
 
开发者ID:treasure-data,项目名称:digdag,代码行数:28,代码来源:BaseRedshiftLoadOperator.java


示例15: createUnloadConfig

import com.amazonaws.auth.AWSSessionCredentials; //导入依赖的package包/类
@VisibleForTesting
RedshiftConnection.UnloadConfig createUnloadConfig(Config config, AWSSessionCredentials sessionCredentials, String queryId)
{
    RedshiftConnection.UnloadConfig uc = new RedshiftConnection.UnloadConfig();
    uc.configure(
            unloadConfig -> {
                unloadConfig.accessKeyId = sessionCredentials.getAWSAccessKeyId();
                unloadConfig.secretAccessKey = sessionCredentials.getAWSSecretKey();
                if (sessionCredentials.getSessionToken() != null) {
                    unloadConfig.sessionToken = Optional.of(sessionCredentials.getSessionToken());
                }

                unloadConfig.query = config.get("query", String.class);
                unloadConfig.to = config.get("to", String.class);
                unloadConfig.manifest = config.getOptional("manifest", Boolean.class);
                unloadConfig.encrypted = config.getOptional("encrypted", Boolean.class);
                unloadConfig.allowoverwrite = config.getOptional("allowoverwrite", Boolean.class);
                unloadConfig.delimiter = config.getOptional("delimiter", String.class);
                unloadConfig.fixedwidth = config.getOptional("fixedwidth", String.class);
                unloadConfig.gzip = config.getOptional("gzip", Boolean.class);
                unloadConfig.bzip2 = config.getOptional("bzip2", Boolean.class);
                unloadConfig.nullAs = config.getOptional("null_as", String.class);
                unloadConfig.escape = config.getOptional("escape", Boolean.class);
                unloadConfig.addquotes = config.getOptional("addquotes", Boolean.class);
                unloadConfig.parallel = config.getOptional("parallel", String.class);

                unloadConfig.setupWithPrefixDir(queryId);
            }
    );
    return uc;
}
 
开发者ID:treasure-data,项目名称:digdag,代码行数:32,代码来源:RedshiftUnloadOperatorFactory.java


示例16: bind

import com.amazonaws.auth.AWSSessionCredentials; //导入依赖的package包/类
@Override
public MultiEnvironment bind(@Nonnull Run<?, ?> build, FilePath workspace, Launcher launcher, TaskListener listener) throws IOException, InterruptedException {
    AWSCredentials credentials = getCredentials(build).getCredentials();
    Map<String,String> m = new HashMap<String,String>();
    m.put(accessKeyVariable, credentials.getAWSAccessKeyId());
    m.put(secretKeyVariable, credentials.getAWSSecretKey());

    // If role has been assumed, STS requires AWS_SESSION_TOKEN variable set too.
    if(credentials instanceof AWSSessionCredentials) {
        m.put(SESSION_TOKEN_VARIABLE_NAME, ((AWSSessionCredentials) credentials).getSessionToken());
    }
    return new MultiEnvironment(m);
}
 
开发者ID:jenkinsci,项目名称:aws-credentials-plugin,代码行数:14,代码来源:AmazonWebServicesCredentialsBinding.java


示例17: calculateAndAddSignatureInternal

import com.amazonaws.auth.AWSSessionCredentials; //导入依赖的package包/类
private void calculateAndAddSignatureInternal(HttpHeaders httpHeaders, Operation operation,
                                              String objectName, String contentMd5, String contentType, String virtualHost) {
    String dateString = RFC_822_DATE_FORMAT.format(System.currentTimeMillis());
    stringToSignBuilder
            .append(operation.getHttpMethod())
            .append('\n')
            .append(contentMd5)
            .append('\n')
            .append(contentType)
            .append('\n')
            .append(dateString)
            .append('\n');

    AWSCredentials credentials = credentialsProvider.getCredentials();
    if (credentials instanceof AWSSessionCredentials) {
        String sessionToken = ((AWSSessionCredentials) credentials).getSessionToken();
        httpHeaders.set(HEADER_TOKEN, sessionToken);
        stringToSignBuilder
                .append(HEADER_TOKEN)
                .append(':')
                .append(sessionToken)
                .append('\n');
    }

    stringToSignBuilder.append('/');

    stringToSignBuilder.append(virtualHost);
    operation.getResourceName(stringToSignBuilder, objectName);

    KeyParameter keyParameter = new KeyParameter(credentials.getAWSSecretKey().getBytes());
    String authorization = calculateRFC2104HMAC(stringToSignBuilder.toString(), keyParameter);
    stringToSignBuilder.clear();

    stringToSignBuilder.append("AWS ").append(credentials.getAWSAccessKeyId()).append(':').append(authorization);

    httpHeaders.set(HEADER_AUTHORIZATION, stringToSignBuilder.toString());
    httpHeaders.set(HEADER_DATE, dateString);
}
 
开发者ID:codewise,项目名称:RxS3,代码行数:39,代码来源:AWSSignatureCalculator.java


示例18: addSessionCredentials

import com.amazonaws.auth.AWSSessionCredentials; //导入依赖的package包/类
@Override
protected void addSessionCredentials(SignableRequest<?> request, AWSSessionCredentials credentials) {
	// TODO Auto-generated method stub
	
}
 
开发者ID:IBM,项目名称:ibm-cos-sdk-java,代码行数:6,代码来源:IBMOAuthSigner.java


示例19: addSessionCredentials

import com.amazonaws.auth.AWSSessionCredentials; //导入依赖的package包/类
@Override
protected void addSessionCredentials(SignableRequest<?> request, AWSSessionCredentials credentials) {
    request.addParameter("x-amz-security-token", credentials.getSessionToken());
}
 
开发者ID:IBM,项目名称:ibm-cos-sdk-java,代码行数:5,代码来源:S3QueryStringSigner.java


示例20: sign

import com.amazonaws.auth.AWSSessionCredentials; //导入依赖的package包/类
@Override
public void sign(SignableRequest<?> request, AWSCredentials credentials) {

    if (resourcePath == null) {
        throw new UnsupportedOperationException(
                "Cannot sign a request using a dummy S3Signer instance with "
                        + "no resource path");
    }

    if (credentials == null || credentials.getAWSSecretKey() == null) {
        log.debug("Canonical string will not be signed, as no AWS Secret Key was provided");
        return;
    }

    AWSCredentials sanitizedCredentials = sanitizeCredentials(credentials);
    if (sanitizedCredentials instanceof AWSSessionCredentials) {
        addSessionCredentials(request,
                (AWSSessionCredentials) sanitizedCredentials);
    }

    /*
     * In s3 sigv2, the way slash characters are encoded should be
     * consistent in both the request url and the encoded resource path.
     * Since we have to encode "//" to "/%2F" in the request url to make
     * httpclient works, we need to do the same encoding here for the
     * resource path.
     */
    String encodedResourcePath = SdkHttpUtils.appendUri(
            request.getEndpoint().getPath(), SdkHttpUtils.urlEncode(resourcePath, true),
            true);

    int timeOffset = request.getTimeOffset();
    Date date = getSignatureDate(timeOffset);
    request.addHeader(Headers.DATE, ServiceUtils.formatRfc822Date(date));
    String canonicalString = RestUtils.makeS3CanonicalString(httpVerb,
            encodedResourcePath, request, null, additionalQueryParamsToSign);
    log.debug("Calculated string to sign:\n\"" + canonicalString + "\"");

    String signature = super.signAndBase64Encode(canonicalString,
            sanitizedCredentials.getAWSSecretKey(),
            SigningAlgorithm.HmacSHA1);
    request.addHeader("Authorization",
            "AWS " + sanitizedCredentials.getAWSAccessKeyId() + ":"
                    + signature);
}
 
开发者ID:IBM,项目名称:ibm-cos-sdk-java,代码行数:46,代码来源:S3Signer.java



注:本文中的com.amazonaws.auth.AWSSessionCredentials类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java LittleEndianDataInputStream类代码示例发布时间:2022-05-21
下一篇:
Java XSD类代码示例发布时间:2022-05-21
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap