Update package to match directory

Missed a merge commit for AWS CodeCommit support
This commit is contained in:
Don Laidlaw
2017-01-27 15:20:31 +00:00
committed by Spencer Gibb
parent 5a29d9c476
commit d81c9250dc
6 changed files with 43 additions and 16 deletions

View File

@@ -27,7 +27,7 @@ import java.util.Map;
import org.springframework.beans.BeanUtils;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.config.environment.Environment;
import org.springframework.cloud.config.server.credentials.GitCredentialsProviderFactory;
import org.springframework.cloud.config.server.support.GitCredentialsProviderFactory;
import org.springframework.core.env.ConfigurableEnvironment;
import org.springframework.util.PatternMatchUtils;
import org.springframework.util.StringUtils;
@@ -63,7 +63,8 @@ public class MultipleJGitEnvironmentRepository extends JGitEnvironmentRepository
@Override
public void afterPropertiesSet() throws Exception {
GitCredentialsProviderFactory credentialFactory = new GitCredentialsProviderFactory();
super.setGitCredentialsProvider(credentialFactory.createFor(getUri(), getUsername(), getPassword()));
super.setGitCredentialsProvider(credentialFactory.createFor(getUri(),
getUsername(), getPassword(), getPassphrase()));
super.afterPropertiesSet();
for (String name : this.repos.keySet()) {
PatternMatchingJGitEnvironmentRepository repo = this.repos.get(name);
@@ -79,11 +80,16 @@ public class MultipleJGitEnvironmentRepository extends JGitEnvironmentRepository
}
String user = repo.getUsername();
String pass = repo.getPassword();
String passphrase = repo.getPassphrase();
if (user == null) {
user = getUsername();
pass = getPassword();
}
repo.setGitCredentialsProvider(credentialFactory.createFor(repo.getUri(), user, pass));
if (passphrase == null) {
passphrase = getPassphrase();
}
repo.setGitCredentialsProvider(credentialFactory.createFor(repo.getUri(),
user, pass, passphrase));
repo.afterPropertiesSet();
}
}

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.cloud.config.server.credentials;
package org.springframework.cloud.config.server.support;
import static org.springframework.util.StringUtils.hasText;

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.cloud.config.server.credentials;
package org.springframework.cloud.config.server.support;
/**
* @author Don Laidlaw

View File

@@ -14,7 +14,8 @@
* limitations under the License.
*/
package org.springframework.cloud.config.server.credentials;
package org.springframework.cloud.config.server.support;
import static org.springframework.util.StringUtils.hasText;
@@ -49,9 +50,12 @@ public class GitCredentialsProviderFactory {
* @param uri the URI of the repository (cannot be null)
* @param username the username provided for the repository (may be null)
* @param password the password provided for the repository (may be null)
* @param passphrase the passphrase to unlock the ssh private key (may be null)
* @return the first matched credentials provider or the default or null.
*/
public CredentialsProvider createFor(String uri, String username, String password) {
public CredentialsProvider createFor(String uri,
String username, String password, String passphrase) {
CredentialsProvider provider = null;
if (awsAvailable() && AwsCodeCommitCredentialProvider.canHandle(uri)) {
logger.debug("Constructing AwsCodeCommitCredentialProvider for URI " + uri);
@@ -64,6 +68,11 @@ public class GitCredentialsProviderFactory {
logger.debug("Constructing UsernamePasswordCredentialsProvider for URI " + uri);
provider = new UsernamePasswordCredentialsProvider(username, password.toCharArray());
}
else if (hasText(passphrase)) {
logger.debug("Constructing PassphraseCredentialsProvider for URI " + uri);
provider = new PassphraseCredentialsProvider(passphrase);
}
else {
logger.debug("No credentials provider required for URI " + uri);
}

View File

@@ -25,6 +25,8 @@ import org.eclipse.jgit.transport.CredentialItem;
import org.eclipse.jgit.transport.URIish;
import org.junit.Before;
import org.junit.Test;
import org.springframework.cloud.config.server.support.AwsCodeCommitCredentialProvider;
import org.springframework.cloud.config.server.support.GitCredentialsProviderFactory;
import com.amazonaws.auth.AWSCredentialsProvider;
@@ -48,7 +50,7 @@ public class AwsCodeCommitCredentialsProviderTests {
public void init() {
GitCredentialsProviderFactory factory = new GitCredentialsProviderFactory();
provider = (AwsCodeCommitCredentialProvider)
factory.createFor(AWS_REPO, USER, PASSWORD);
factory.createFor(AWS_REPO, USER, PASSWORD, null);
}
@Test

View File

@@ -22,6 +22,9 @@ import org.eclipse.jgit.transport.CredentialsProvider;
import org.eclipse.jgit.transport.UsernamePasswordCredentialsProvider;
import org.junit.Before;
import org.junit.Test;
import org.springframework.cloud.config.server.support.AwsCodeCommitCredentialProvider;
import org.springframework.cloud.config.server.support.GitCredentialsProviderFactory;
import org.springframework.cloud.config.server.support.PassphraseCredentialsProvider;
/**
* @author don laidlaw
@@ -43,33 +46,33 @@ public class GitCredentialsProviderFactoryTests {
@Test
public void testCreateForFileNoUsernameIsNull() {
CredentialsProvider provider = factory.createFor(FILE_REPO, null, null);
CredentialsProvider provider = factory.createFor(FILE_REPO, null, null, null);
assertNull(provider);
}
@Test
public void testCreateForFileWithUsername() {
CredentialsProvider provider = factory.createFor(FILE_REPO, USER, PASSWORD);
CredentialsProvider provider = factory.createFor(FILE_REPO, USER, PASSWORD, null);
assertNotNull(provider);
assertTrue(provider instanceof UsernamePasswordCredentialsProvider);
}
@Test
public void testCreateForServerNoUsernameIsNull() {
CredentialsProvider provider = factory.createFor(GIT_REPO, null, null);
CredentialsProvider provider = factory.createFor(GIT_REPO, null, null, null);
assertNull(provider);
}
@Test
public void testCreateForServerWithUsername() {
CredentialsProvider provider = factory.createFor(GIT_REPO, USER, PASSWORD);
CredentialsProvider provider = factory.createFor(GIT_REPO, USER, PASSWORD, null);
assertNotNull(provider);
assertTrue(provider instanceof UsernamePasswordCredentialsProvider);
}
@Test
public void testCreateForAwsNoUsername() {
CredentialsProvider provider = factory.createFor(AWS_REPO, null, null);
CredentialsProvider provider = factory.createFor(AWS_REPO, null, null, null);
assertNotNull(provider);
assertTrue(provider instanceof AwsCodeCommitCredentialProvider);
AwsCodeCommitCredentialProvider aws = (AwsCodeCommitCredentialProvider) provider;
@@ -79,7 +82,7 @@ public class GitCredentialsProviderFactoryTests {
@Test
public void testCreateForAwsWithUsername() {
CredentialsProvider provider = factory.createFor(AWS_REPO, USER, PASSWORD);
CredentialsProvider provider = factory.createFor(AWS_REPO, USER, PASSWORD, null);
assertNotNull(provider);
assertTrue(provider instanceof AwsCodeCommitCredentialProvider);
AwsCodeCommitCredentialProvider aws = (AwsCodeCommitCredentialProvider) provider;
@@ -90,13 +93,20 @@ public class GitCredentialsProviderFactoryTests {
@Test
public void testCreateForAwsDisabled() {
factory.setAwsCodeCommitEnabled(false);
CredentialsProvider provider = factory.createFor(AWS_REPO, null, null);
CredentialsProvider provider = factory.createFor(AWS_REPO, null, null, null);
assertNull(provider);
provider = factory.createFor(AWS_REPO, USER, PASSWORD);
provider = factory.createFor(AWS_REPO, USER, PASSWORD, null);
assertNotNull(provider);
assertTrue(provider instanceof UsernamePasswordCredentialsProvider);
}
@Test
public void testCreatePassphraseCredentialProvider() {
CredentialsProvider provider = factory.createFor(GIT_REPO, null, null, PASSWORD);
assertNotNull(provider);
assertTrue(provider instanceof PassphraseCredentialsProvider);
}
@Test
public void testIsAwsCodeCommitEnabled() {