/* * Copyright 2016 Amazon Technologies, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at: * * http://aws.amazon.com/apache2.0 * * 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.eclipse.core.accounts.profiles; import java.util.HashMap; import java.util.Map; import com.amazonaws.auth.AWSCredentials; import com.amazonaws.auth.BasicAWSCredentials; import com.amazonaws.auth.BasicSessionCredentials; import com.amazonaws.auth.profile.internal.BasicProfile; import com.amazonaws.auth.profile.internal.Profile; import com.amazonaws.auth.profile.internal.ProfileKeyConstants; import com.amazonaws.internal.StaticCredentialsProvider; /** * Profile factory class to dispatch commonly used profiles. */ public class SdkProfilesFactory { /** * Dispatch a BasicProfile instance with the provided profileName, and empty access key and secret key. */ public static BasicProfile newEmptyBasicProfile(String profileName) { return newBasicProfile(profileName, "", "", null); } /** * Dispatch a BasicProfile instance with the provided parameters; */ public static BasicProfile newBasicProfile(String profileName, String accessKey, String secretKey, String sessionToken) { Map<String, String> properties = new HashMap<String, String>(); properties.put(ProfileKeyConstants.AWS_ACCESS_KEY_ID, accessKey); properties.put(ProfileKeyConstants.AWS_SECRET_ACCESS_KEY, secretKey); if (sessionToken != null) { properties.put(ProfileKeyConstants.AWS_SESSION_TOKEN, sessionToken); } return new BasicProfile(profileName, properties); } /** * Convert a BasicProfile instance to the legacy Profile class. */ public static Profile convert(BasicProfile profile) { if (profile == null) return null; AWSCredentials credentials; if (profile.getAwsSessionToken() != null) { credentials = new BasicSessionCredentials( profile.getAwsAccessIdKey(), profile.getAwsSecretAccessKey(), profile.getAwsSessionToken()); } else { credentials = new BasicAWSCredentials( profile.getAwsAccessIdKey(), profile.getAwsSecretAccessKey()); } Profile legacyProfile = new Profile(profile.getProfileName(), profile.getProperties(), new StaticCredentialsProvider(credentials)); return legacyProfile; } }