diff --git a/.gitignore b/.gitignore index 8a79b7e6..964627dd 100644 --- a/.gitignore +++ b/.gitignore @@ -30,3 +30,8 @@ target work *.releaseBackup release.properties + +.classpath +.factorypath +.project +.settings/ diff --git a/src/main/java/io/jenkins/plugins/credentials/secretsmanager/factory/CredentialsFactory.java b/src/main/java/io/jenkins/plugins/credentials/secretsmanager/factory/CredentialsFactory.java index 9de9a6e2..e965299f 100644 --- a/src/main/java/io/jenkins/plugins/credentials/secretsmanager/factory/CredentialsFactory.java +++ b/src/main/java/io/jenkins/plugins/credentials/secretsmanager/factory/CredentialsFactory.java @@ -16,6 +16,7 @@ import io.jenkins.plugins.credentials.secretsmanager.factory.string.AwsStringCredentials; import io.jenkins.plugins.credentials.secretsmanager.factory.username_password.AwsUsernamePasswordCredentials; +import java.nio.charset.StandardCharsets; import java.util.Map; import java.util.Optional; import java.util.function.Supplier; @@ -68,7 +69,7 @@ public SecretBytes get() { return getSecretValue().match(new SecretValue.Matcher() { @Override public SecretBytes string(String str) { - return null; + return SecretBytes.fromBytes(str.getBytes(StandardCharsets.UTF_8)); } @Override diff --git a/src/test/java/io/jenkins/plugins/credentials/secretsmanager/FileCredentialsIT.java b/src/test/java/io/jenkins/plugins/credentials/secretsmanager/FileCredentialsIT.java index cb3b29df..f53bdc4d 100644 --- a/src/test/java/io/jenkins/plugins/credentials/secretsmanager/FileCredentialsIT.java +++ b/src/test/java/io/jenkins/plugins/credentials/secretsmanager/FileCredentialsIT.java @@ -19,6 +19,7 @@ import java.io.IOException; import java.io.InputStream; import java.nio.ByteBuffer; +import java.nio.charset.StandardCharsets; import java.util.List; import static io.jenkins.plugins.credentials.secretsmanager.util.assertions.CustomAssertions.assertThat; @@ -30,6 +31,7 @@ public class FileCredentialsIT implements CredentialsTests { private static final String FILENAME = "hello.txt"; private static final byte[] CONTENT = {0x01, 0x02, 0x03}; + private static final String STRING_CONTENT = "This is a text file"; public MyJenkinsConfiguredWithCodeRule jenkins = new MyJenkinsConfiguredWithCodeRule(); public final AWSSecretsManagerRule secretsManager = new AutoErasingAWSSecretsManagerRule(); @@ -84,7 +86,7 @@ public void shouldHaveCustomisableFileName() { @Test @ConfiguredWithCode(value = "/integration.yml") - public void shouldHaveContent() { + public void shouldHaveFileContent() { // Given final CreateSecretResult foo = createFileSecret(CONTENT); @@ -96,6 +98,20 @@ public void shouldHaveContent() { .hasContent(CONTENT); } + @Test + @ConfiguredWithCode(value = "/integration.yml") + public void shouldHaveStringContent() { + // Given + final CreateSecretResult foo = createFileSecret(STRING_CONTENT); + + // When + final FileCredentials credential = lookup(FileCredentials.class, foo.getName()); + + // Then + assertThat(credential) + .hasContent(STRING_CONTENT.getBytes(StandardCharsets.UTF_8)); + } + @Test @ConfiguredWithCode(value = "/integration.yml") public void shouldHaveDescriptorIcon() { @@ -201,6 +217,12 @@ private CreateSecretResult createFileSecret(byte[] content) { return createSecret(content,tags); } + private CreateSecretResult createFileSecret(String content) { + final List tags = Lists.of(AwsTags.type(Type.file)); + + return createSecret(content,tags); + } + private CreateSecretResult createFileSecret(byte[] content, String filename) { final List tags = Lists.of(AwsTags.type(Type.file), AwsTags.filename(filename)); @@ -216,6 +238,15 @@ private CreateSecretResult createSecret(byte[] content, List tags) { return secretsManager.getClient().createSecret(request); } + private CreateSecretResult createSecret(String content, List tags) { + final CreateSecretRequest request = new CreateSecretRequest() + .withName(CredentialNames.random()) + .withSecretString(content) + .withTags(tags); + + return secretsManager.getClient().createSecret(request); + } + private C lookup(Class type, String id) { return jenkins.getCredentials().lookup(type, id); }