You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by dk...@apache.org on 2021/05/26 12:26:02 UTC
[sling-org-apache-sling-commons-crypto] 01/01: SLING-10415 - Adding
support for removing a trailing newline character from the password file
This is an automated email from the ASF dual-hosted git repository.
dklco pushed a commit to branch SLING-10415-remove-final-newline
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-crypto.git
commit e766685e6d2bdefd31451c8ffcc74cc6f4b31682
Author: Dan Klco <kl...@adobe.com>
AuthorDate: Wed May 26 08:25:36 2021 -0400
SLING-10415 - Adding support for removing a trailing newline character from the password file
---
.../sling/commons/crypto/internal/FilePasswordProvider.java | 10 +++++++++-
.../crypto/internal/FilePasswordProviderConfiguration.java | 8 ++++++++
.../tests/jasypt/JasyptStandardPBEStringCryptoServiceIT.java | 1 +
src/test/resources/password.ascii85 | 2 +-
4 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/src/main/java/org/apache/sling/commons/crypto/internal/FilePasswordProvider.java b/src/main/java/org/apache/sling/commons/crypto/internal/FilePasswordProvider.java
index 7ecd03e..816c32d 100644
--- a/src/main/java/org/apache/sling/commons/crypto/internal/FilePasswordProvider.java
+++ b/src/main/java/org/apache/sling/commons/crypto/internal/FilePasswordProvider.java
@@ -79,7 +79,7 @@ public class FilePasswordProvider implements PasswordProvider {
final File file = new File(path);
final char[] buffer = new char[(int) file.length()];
try (final BufferedReader reader = Files.newBufferedReader(file.toPath(), StandardCharsets.UTF_8)) {
- final int size = reader.read(buffer);
+ final int size = getSize(reader.read(buffer));
final char[] password = new char[size];
System.arraycopy(buffer, 0, password, 0, size);
Arrays.fill(buffer, '0');
@@ -87,6 +87,14 @@ public class FilePasswordProvider implements PasswordProvider {
}
}
+ private int getSize(int readSize) {
+ if (configuration.removeNewline()) {
+ return readSize - 1;
+ } else {
+ return readSize;
+ }
+ }
+
private void checkConfiguration() throws IOException {
final String path = configuration.path();
final File file = new File(path);
diff --git a/src/main/java/org/apache/sling/commons/crypto/internal/FilePasswordProviderConfiguration.java b/src/main/java/org/apache/sling/commons/crypto/internal/FilePasswordProviderConfiguration.java
index cefdfbe..00a4cad 100644
--- a/src/main/java/org/apache/sling/commons/crypto/internal/FilePasswordProviderConfiguration.java
+++ b/src/main/java/org/apache/sling/commons/crypto/internal/FilePasswordProviderConfiguration.java
@@ -19,6 +19,7 @@
package org.apache.sling.commons.crypto.internal;
import org.osgi.service.metatype.annotations.AttributeDefinition;
+import org.osgi.service.metatype.annotations.AttributeType;
import org.osgi.service.metatype.annotations.ObjectClassDefinition;
@ObjectClassDefinition(
@@ -40,6 +41,13 @@ import org.osgi.service.metatype.annotations.ObjectClassDefinition;
)
String path();
+ @AttributeDefinition(
+ name = "Remove Final Newline",
+ description = "removes the final character from the file to remove a trailing newline",
+ type = AttributeType.BOOLEAN
+ )
+ boolean removeNewline() default false;
+
String webconsole_configurationFactory_nameHint() default "{names} {path}";
}
diff --git a/src/test/java/org/apache/sling/commons/crypto/it/tests/jasypt/JasyptStandardPBEStringCryptoServiceIT.java b/src/test/java/org/apache/sling/commons/crypto/it/tests/jasypt/JasyptStandardPBEStringCryptoServiceIT.java
index 52b1c59..20ce8b9 100644
--- a/src/test/java/org/apache/sling/commons/crypto/it/tests/jasypt/JasyptStandardPBEStringCryptoServiceIT.java
+++ b/src/test/java/org/apache/sling/commons/crypto/it/tests/jasypt/JasyptStandardPBEStringCryptoServiceIT.java
@@ -55,6 +55,7 @@ public class JasyptStandardPBEStringCryptoServiceIT extends JasyptCryptoTestSupp
.asOption(),
factoryConfiguration("org.apache.sling.commons.crypto.internal.FilePasswordProvider")
.put("path", path)
+ .put("removeNewline", true)
.asOption()
);
}
diff --git a/src/test/resources/password.ascii85 b/src/test/resources/password.ascii85
index ad66ce8..8884d75 100644
--- a/src/test/resources/password.ascii85
+++ b/src/test/resources/password.ascii85
@@ -1 +1 @@
-+AQ?aDes!'DBMkrCi:FE6q\sOn=Pbmn=PK8n=PK?
\ No newline at end of file
++AQ?aDes!'DBMkrCi:FE6q\sOn=Pbmn=PK8n=PK?