Skip to content

Commit

Permalink
remove CredentialsProviderFactory.java
Browse files Browse the repository at this point in the history
  • Loading branch information
JacksonTian committed Jun 12, 2024
1 parent 8bbe1a7 commit bd29e94
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 64 deletions.

This file was deleted.

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

This file was deleted.

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

0 comments on commit bd29e94

Please sign in to comment.