You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ol...@apache.org on 2021/06/16 21:50:40 UTC
[sling-org-apache-sling-commons-crypto] 02/02: do not deconstruct
component, keep it in an usable state
This is an automated email from the ASF dual-hosted git repository.
olli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-crypto.git
commit 3aaa5b95db563693b21de684edaefdc8fa4287e3
Author: Oliver Lietz <ol...@apache.org>
AuthorDate: Wed Jun 16 23:50:27 2021 +0200
do not deconstruct component, keep it in an usable state
---
.../sling/commons/crypto/internal/FilePasswordProvider.java | 3 ++-
.../commons/crypto/internal/FilePasswordProviderTest.java | 12 ++++++++++++
2 files changed, 14 insertions(+), 1 deletion(-)
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 022e44d..f34b4ac 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
@@ -24,6 +24,7 @@ import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.util.Arrays;
+import java.util.Objects;
import org.apache.sling.commons.crypto.PasswordProvider;
import org.jetbrains.annotations.NotNull;
@@ -74,7 +75,6 @@ public class FilePasswordProvider implements PasswordProvider {
@Deactivate
protected void deactivate() {
logger.debug("deactivating");
- this.configuration = null;
}
private char[] readPassword(final String path, final boolean fixPosixNewline) throws IOException {
@@ -106,6 +106,7 @@ public class FilePasswordProvider implements PasswordProvider {
@Override
public char @NotNull [] getPassword() {
+ Objects.requireNonNull(configuration, "Configuration must not be null");
try {
return readPassword(configuration.path(), configuration.fix_posixNewline());
} catch (IOException e) {
diff --git a/src/test/java/org/apache/sling/commons/crypto/internal/FilePasswordProviderTest.java b/src/test/java/org/apache/sling/commons/crypto/internal/FilePasswordProviderTest.java
index 5510451..bf38ed2 100644
--- a/src/test/java/org/apache/sling/commons/crypto/internal/FilePasswordProviderTest.java
+++ b/src/test/java/org/apache/sling/commons/crypto/internal/FilePasswordProviderTest.java
@@ -43,6 +43,14 @@ public class FilePasswordProviderTest {
public ExpectedException exception = ExpectedException.none();
@Test
+ public void testMissingConfiguration() {
+ final FilePasswordProvider provider = new FilePasswordProvider();
+ exception.expect(NullPointerException.class);
+ exception.expectMessage("Configuration must not be null");
+ provider.getPassword();
+ }
+
+ @Test
public void testComponentLifecycle() throws IOException {
final FilePasswordProvider provider = new FilePasswordProvider();
{ // activate
@@ -59,6 +67,10 @@ public class FilePasswordProviderTest {
provider.modified(configuration);
assertThat(provider.getPassword()).isEqualTo(PASSWORD_UTF8);
}
+ { // deactivate
+ provider.deactivate();
+ assertThat(provider.getPassword()).isEqualTo(PASSWORD_UTF8);
+ }
}
@Test