Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

remove CredentialsProviderFactory.java #898

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.aliyuncs.auth;

@Deprecated
public class CredentialsProviderFactory {
public <T extends AlibabaCloudCredentialsProvider> T createCredentialsProvider(T classInstance) {
return classInstance;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,7 @@ public AlibabaCloudCredentials getCredentials() throws ClientException {
if (clientConfig == null) {
throw new ClientException("Client is not open in the specified credentials file");
}
CredentialsProviderFactory credentialsProviderFactory = new CredentialsProviderFactory();
return createCredential(clientConfig, credentialsProviderFactory);
return createCredential(clientConfig);
}

private Map<String, Map<String, String>> loadIni(Wini ini) {
Expand All @@ -65,20 +64,19 @@ private Map<String, Map<String, String>> loadIni(Wini ini) {
return client;
}

private AlibabaCloudCredentials createCredential(Map<String, String> clientConfig,
CredentialsProviderFactory factory) throws ClientException {
private AlibabaCloudCredentials createCredential(Map<String, String> clientConfig) throws ClientException {
String configType = clientConfig.get(AuthConstant.INI_TYPE);
if (StringUtils.isEmpty(configType)) {
throw new ClientException("The configured client type is empty");
}
if (AuthConstant.INI_TYPE_ARN.equals(configType)) {
return getSTSAssumeRoleSessionCredentials(clientConfig, factory);
return getSTSAssumeRoleSessionCredentials(clientConfig);
}
if (AuthConstant.INI_TYPE_KEY_PAIR.equals(configType)) {
return getSTSGetSessionAccessKeyCredentials(clientConfig, factory);
return getSTSGetSessionAccessKeyCredentials(clientConfig);
}
if (AuthConstant.INI_TYPE_RAM.equals(configType)) {
return getInstanceProfileCredentials(clientConfig, factory);
return getInstanceProfileCredentials(clientConfig);
}
String accessKeyId = clientConfig.get(AuthConstant.INI_ACCESS_KEY_ID);
String accessKeySecret = clientConfig.get(AuthConstant.INI_ACCESS_KEY_IDSECRET);
Expand All @@ -88,8 +86,7 @@ private AlibabaCloudCredentials createCredential(Map<String, String> clientConfi
return new BasicCredentials(accessKeyId, accessKeySecret);
}

private AlibabaCloudCredentials getSTSAssumeRoleSessionCredentials(Map<String, String> clientConfig,
CredentialsProviderFactory factory)
private AlibabaCloudCredentials getSTSAssumeRoleSessionCredentials(Map<String, String> clientConfig)
throws ClientException {
String accessKeyId = clientConfig.get(AuthConstant.INI_ACCESS_KEY_ID);
String accessKeySecret = clientConfig.get(AuthConstant.INI_ACCESS_KEY_IDSECRET);
Expand All @@ -103,14 +100,12 @@ private AlibabaCloudCredentials getSTSAssumeRoleSessionCredentials(Map<String, S
if (StringUtils.isEmpty(roleSessionName) || StringUtils.isEmpty(roleArn)) {
throw new ClientException("The configured role_session_name or role_arn is empty");
}
STSAssumeRoleSessionCredentialsProvider provider =
factory.createCredentialsProvider(new STSAssumeRoleSessionCredentialsProvider(accessKeyId,
accessKeySecret, roleSessionName, roleArn, regionId, policy));
STSAssumeRoleSessionCredentialsProvider provider = new STSAssumeRoleSessionCredentialsProvider(accessKeyId,
accessKeySecret, roleSessionName, roleArn, regionId, policy);
return provider.getCredentials();
}

private AlibabaCloudCredentials getSTSGetSessionAccessKeyCredentials(Map<String, String> clientConfig,
CredentialsProviderFactory factory)
private AlibabaCloudCredentials getSTSGetSessionAccessKeyCredentials(Map<String, String> clientConfig)
throws ClientException {
String publicKeyId = clientConfig.get(AuthConstant.INI_PUBLIC_KEY_ID);
String privateKeyFile = clientConfig.get(AuthConstant.INI_PRIVATE_KEY_FILE);
Expand All @@ -121,20 +116,16 @@ private AlibabaCloudCredentials getSTSGetSessionAccessKeyCredentials(Map<String,
if (StringUtils.isEmpty(publicKeyId) || StringUtils.isEmpty(privateKey)) {
throw new ClientException("The configured public_key_id or private_key_file content is empty");
}
STSGetSessionAccessKeyCredentialsProvider provider =
factory.createCredentialsProvider(new STSGetSessionAccessKeyCredentialsProvider(publicKeyId, privateKey));
STSGetSessionAccessKeyCredentialsProvider provider = new STSGetSessionAccessKeyCredentialsProvider(publicKeyId, privateKey);
return provider.getCredentials();
}

private AlibabaCloudCredentials getInstanceProfileCredentials(Map<String, String> clientConfig,
CredentialsProviderFactory factory)
throws ClientException {
private AlibabaCloudCredentials getInstanceProfileCredentials(Map<String, String> clientConfig) throws ClientException {
String roleName = clientConfig.get(AuthConstant.INI_ROLE_NAME);
if (StringUtils.isEmpty(roleName)) {
throw new ClientException("The configured role_name is empty");
}
InstanceProfileCredentialsProvider provider =
factory.createCredentialsProvider(new InstanceProfileCredentialsProvider(roleName));
InstanceProfileCredentialsProvider provider = new InstanceProfileCredentialsProvider(roleName);
return provider.getCredentials();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,12 +47,11 @@ public void createCredentialTest() throws NoSuchMethodException, InvocationTarge
ProfileCredentialsProvider provider = new ProfileCredentialsProvider();
Class providerClass = provider.getClass();
Method createCredential = providerClass.getDeclaredMethod(
"createCredential", Map.class, CredentialsProviderFactory.class);
"createCredential", Map.class);
createCredential.setAccessible(true);
CredentialsProviderFactory factory = new CredentialsProviderFactory();
Map<String, String> client = new HashMap<String, String>();
try {
createCredential.invoke(provider, client, factory);
createCredential.invoke(provider, client);
Assert.fail();
} catch (Exception e) {
Assert.assertEquals("The configured client type is empty", e.getCause().getLocalizedMessage());
Expand All @@ -61,7 +60,7 @@ public void createCredentialTest() throws NoSuchMethodException, InvocationTarge

client.put(AuthConstant.INI_TYPE, AuthConstant.INI_TYPE_RAM);
try {
createCredential.invoke(provider, client, factory);
createCredential.invoke(provider, client);
Assert.fail();
} catch (Exception e) {
Assert.assertEquals("The configured role_name is empty",
Expand All @@ -71,21 +70,20 @@ public void createCredentialTest() throws NoSuchMethodException, InvocationTarge
client.clear();
client.put(AuthConstant.INI_ACCESS_KEY_ID, AuthConstant.INI_TYPE_RAM);
client.put(AuthConstant.INI_TYPE, "access_key");
Assert.assertNull(createCredential.invoke(provider, client, factory));
Assert.assertNull(createCredential.invoke(provider, client));
}

@Test
public void getSTSAssumeRoleSessionCredentialsTest() throws NoSuchMethodException {
ProfileCredentialsProvider provider = new ProfileCredentialsProvider();
Class providerClass = provider.getClass();
Method createCredential = providerClass.getDeclaredMethod(
"createCredential", Map.class, CredentialsProviderFactory.class);
"createCredential", Map.class);
createCredential.setAccessible(true);
CredentialsProviderFactory factory = new CredentialsProviderFactory();
Map<String, String> client = new HashMap<String, String>();
client.put(AuthConstant.INI_TYPE, AuthConstant.INI_TYPE_ARN);
try {
createCredential.invoke(provider, client, factory);
createCredential.invoke(provider, client);
Assert.fail();
} catch (Exception e) {
Assert.assertEquals("The configured access_key_id or access_key_secret is empty",
Expand All @@ -94,23 +92,23 @@ public void getSTSAssumeRoleSessionCredentialsTest() throws NoSuchMethodExceptio

try {
client.put(AuthConstant.INI_ACCESS_KEY_ID, AuthConstant.INI_TYPE_ARN);
createCredential.invoke(provider, client, factory);
createCredential.invoke(provider, client);
Assert.fail();
} catch (Exception e) {
Assert.assertEquals("The configured access_key_id or access_key_secret is empty",
e.getCause().getLocalizedMessage());
}
try {
client.put(AuthConstant.INI_ACCESS_KEY_IDSECRET, AuthConstant.INI_TYPE_ARN);
createCredential.invoke(provider, client, factory);
createCredential.invoke(provider, client);
Assert.fail();
} catch (Exception e) {
Assert.assertEquals("The configured role_session_name or role_arn is empty",
e.getCause().getLocalizedMessage());
}
try {
client.put(AuthConstant.INI_ROLE_SESSION_NAME, AuthConstant.INI_TYPE_ARN);
createCredential.invoke(provider, client, factory);
createCredential.invoke(provider, client);
} catch (Exception e) {
Assert.assertEquals("The configured role_session_name or role_arn is empty",
e.getCause().getLocalizedMessage());
Expand All @@ -122,13 +120,12 @@ public void getSTSGetSessionAccessKeyCredentialsTest() throws NoSuchMethodExcep
ProfileCredentialsProvider provider = new ProfileCredentialsProvider();
Class providerClass = provider.getClass();
Method createCredential = providerClass.getDeclaredMethod(
"createCredential", Map.class, CredentialsProviderFactory.class);
"createCredential", Map.class);
createCredential.setAccessible(true);
CredentialsProviderFactory factory = new CredentialsProviderFactory();
Map<String, String> client = new HashMap<String, String>();
client.put(AuthConstant.INI_TYPE, AuthConstant.INI_TYPE_KEY_PAIR);
try {
createCredential.invoke(provider, client, factory);
createCredential.invoke(provider, client);
Assert.fail();
} catch (Exception e) {
Assert.assertEquals("The configured private_key_file is empty",
Expand All @@ -137,7 +134,7 @@ public void getSTSGetSessionAccessKeyCredentialsTest() throws NoSuchMethodExcep
client.put(AuthConstant.INI_PRIVATE_KEY_FILE, "sads");
AuthUtils.setPrivateKey("test");
try {
createCredential.invoke(provider, client, factory);
createCredential.invoke(provider, client);
Assert.fail();
} catch (Exception e) {
Assert.assertEquals("The configured public_key_id or private_key_file content is empty",
Expand All @@ -153,7 +150,7 @@ public void createCredentialsProviderTest() throws
ProfileCredentialsProvider profileCredentialsProvider = new ProfileCredentialsProvider();
Class providerClass = profileCredentialsProvider.getClass();
Method createCredential = providerClass.getDeclaredMethod(
"createCredential", Map.class, CredentialsProviderFactory.class);
"createCredential", Map.class);
createCredential.setAccessible(true);
Map<String, String> client = new HashMap<String, String>();
client.put(AuthConstant.INI_TYPE, AuthConstant.INI_TYPE_ARN);
Expand All @@ -165,10 +162,9 @@ public void createCredentialsProviderTest() throws
STSAssumeRoleSessionCredentialsProvider stsAssumeRoleSessionCredentialsProvider =
Mockito.mock(STSAssumeRoleSessionCredentialsProvider.class);
Mockito.when(stsAssumeRoleSessionCredentialsProvider.getCredentials()).thenReturn(null);
CredentialsProviderFactory factory = Mockito.mock(CredentialsProviderFactory.class);
Mockito.when(factory.createCredentialsProvider(Mockito.any(STSAssumeRoleSessionCredentialsProvider.class))).
Mockito.when(Mockito.any(STSAssumeRoleSessionCredentialsProvider.class)).
thenReturn(stsAssumeRoleSessionCredentialsProvider);
Assert.assertNull(createCredential.invoke(profileCredentialsProvider, client, factory));
Assert.assertNull(createCredential.invoke(profileCredentialsProvider, client));

client.clear();
client.put(AuthConstant.INI_TYPE, AuthConstant.INI_TYPE_KEY_PAIR);
Expand All @@ -179,9 +175,9 @@ public void createCredentialsProviderTest() throws
STSGetSessionAccessKeyCredentialsProvider stsGetSessionAccessKeyCredentialsProvider =
Mockito.mock(STSGetSessionAccessKeyCredentialsProvider.class);
Mockito.when(stsGetSessionAccessKeyCredentialsProvider.getCredentials()).thenReturn(null);
Mockito.when(factory.createCredentialsProvider(Mockito.any(STSGetSessionAccessKeyCredentialsProvider.class))).
Mockito.when(Mockito.any(STSGetSessionAccessKeyCredentialsProvider.class)).
thenReturn(stsGetSessionAccessKeyCredentialsProvider);
Assert.assertNull(createCredential.invoke(profileCredentialsProvider, client, factory));
Assert.assertNull(createCredential.invoke(profileCredentialsProvider, client));
AuthUtils.setPrivateKey(null);

client.clear();
Expand All @@ -190,9 +186,9 @@ public void createCredentialsProviderTest() throws
InstanceProfileCredentialsProvider instanceProfileCredentialsProvider =
Mockito.mock(InstanceProfileCredentialsProvider.class);
Mockito.when(instanceProfileCredentialsProvider.getCredentials()).thenReturn(null);
Mockito.when(factory.createCredentialsProvider(Mockito.any(InstanceProfileCredentialsProvider.class))).
Mockito.when(Mockito.any(InstanceProfileCredentialsProvider.class)).
thenReturn(instanceProfileCredentialsProvider);
Assert.assertNull(createCredential.invoke(profileCredentialsProvider, client, factory));
Assert.assertNull(createCredential.invoke(profileCredentialsProvider, client));
}

@Test
Expand Down
Loading