Skip to content

Commit 34dea95

Browse files
committed
Merge branch '3.1.x'
2 parents f5f0be1 + fd36db2 commit 34dea95

File tree

2 files changed

+22
-18
lines changed

2 files changed

+22
-18
lines changed

spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/support/PassphraseCredentialsProvider.java

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,17 +31,17 @@ public class PassphraseCredentialsProvider extends CredentialsProvider {
3131
/**
3232
* Prompt to skip iteration for.
3333
*/
34-
public static final String PROMPT = "Passphrase for";
34+
public static final String PROMPT = "Passphrase";
3535

36-
private final String passphrase;
36+
private final char[] passphrase;
3737

3838
/**
3939
* Initialize the provider with a the ssh passphrase.
4040
* @param passphrase passphrase to populate the credential items with
4141
*/
4242
public PassphraseCredentialsProvider(String passphrase) {
4343
super();
44-
this.passphrase = passphrase;
44+
this.passphrase = passphrase.toCharArray();
4545
}
4646

4747
/**
@@ -58,12 +58,13 @@ public boolean isInteractive() {
5858
@Override
5959
public boolean supports(CredentialItem... items) {
6060
for (final CredentialItem item : items) {
61-
if (item instanceof CredentialItem.StringType && item.getPromptText().startsWith(PROMPT)) {
61+
if (item instanceof CredentialItem.InformationalMessage) {
6262
continue;
6363
}
64-
else {
65-
return false;
64+
if (item instanceof CredentialItem.Password && item.getPromptText().equals(PROMPT)) {
65+
continue;
6666
}
67+
return false;
6768
}
6869
return true;
6970
}
@@ -80,8 +81,11 @@ public boolean supports(CredentialItem... items) {
8081
@Override
8182
public boolean get(URIish uri, CredentialItem... items) throws UnsupportedCredentialItem {
8283
for (final CredentialItem item : items) {
83-
if (item instanceof CredentialItem.StringType && item.getPromptText().startsWith(PROMPT)) {
84-
((CredentialItem.StringType) item).setValue(this.passphrase);
84+
if (item instanceof CredentialItem.InformationalMessage) {
85+
continue;
86+
}
87+
if (item instanceof CredentialItem.Password && item.getPromptText().equals(PROMPT)) {
88+
((CredentialItem.Password) item).setValue(this.passphrase);
8589
continue;
8690
}
8791
throw new UnsupportedCredentialItem(uri, item.getClass().getName() + ":" + item.getPromptText());

spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/environment/JGitEnvironmentRepositoryTests.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -922,12 +922,11 @@ public void passphraseShouldSetCredentials() throws Exception {
922922
CredentialsProvider provider = mockCloneCommand.getCredentialsProvider();
923923
assertThat(provider.isInteractive()).isFalse();
924924

925-
CredentialItem.StringType stringCredential = new CredentialItem.StringType(PassphraseCredentialsProvider.PROMPT,
926-
true);
925+
CredentialItem.Password credential = new CredentialItem.Password(PassphraseCredentialsProvider.PROMPT);
927926

928-
assertThat(provider.supports(stringCredential)).isTrue();
929-
provider.get(new URIish(), stringCredential);
930-
assertThat(passphrase).isEqualTo(stringCredential.getValue());
927+
assertThat(provider.supports(credential)).isTrue();
928+
provider.get(new URIish(), credential);
929+
assertThat(passphrase.toCharArray()).isEqualTo(credential.getValue());
931930
}
932931

933932
@Test
@@ -951,12 +950,13 @@ public void gitCredentialsProviderFactoryCreatesPassphraseProvider() throws Exce
951950
CredentialsProvider provider = mockCloneCommand.getCredentialsProvider();
952951
assertThat(provider.isInteractive()).isFalse();
953952

954-
CredentialItem.StringType stringCredential = new CredentialItem.StringType(PassphraseCredentialsProvider.PROMPT,
955-
true);
953+
CredentialItem.InformationalMessage informational = new CredentialItem.InformationalMessage(
954+
"Passphrase required for ssh key");
955+
CredentialItem.Password credential = new CredentialItem.Password(PassphraseCredentialsProvider.PROMPT);
956956

957-
assertThat(provider.supports(stringCredential)).isTrue();
958-
provider.get(new URIish(), stringCredential);
959-
assertThat(passphrase).isEqualTo(stringCredential.getValue());
957+
assertThat(provider.supports(credential)).isTrue();
958+
provider.get(new URIish(), informational, credential);
959+
assertThat(passphrase.toCharArray()).isEqualTo(credential.getValue());
960960

961961
}
962962

0 commit comments

Comments
 (0)