This is an automated email from the ASF dual-hosted git repository.
kwin pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git
The following commit(s) were added to refs/heads/trunk by this push:
new 03b703e91f OAK-10332 Allow reusing FilterProviderImpl outside OSGi
context (#1014)
03b703e91f is described below
commit 03b703e91f9964a2f192ccd34526d5980561839a
Author: Konrad Windszus <[email protected]>
AuthorDate: Tue Jul 11 15:54:51 2023 +0200
OAK-10332 Allow reusing FilterProviderImpl outside OSGi context (#1014)
---
.../principalbased/impl/FilterProviderImpl.java | 23 +++++++++++++++++-----
.../impl/AbstractPrincipalBasedTest.java | 4 +---
2 files changed, 19 insertions(+), 8 deletions(-)
diff --git
a/oak-authorization-principalbased/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/FilterProviderImpl.java
b/oak-authorization-principalbased/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/FilterProviderImpl.java
index 6f4233332a..6eb212c7b6 100644
---
a/oak-authorization-principalbased/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/FilterProviderImpl.java
+++
b/oak-authorization-principalbased/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/FilterProviderImpl.java
@@ -76,6 +76,15 @@ public class FilterProviderImpl implements FilterProvider {
private final Map<String, String> validatedPrincipalNamesPathMap =
Maps.newConcurrentMap();
private final Map<String, String> unsupportedPrincipalNames =
Maps.newConcurrentMap();
+ /**
+ * Constructor to use outside OSGi containers
+ * @param oakPath the repository path where the principals are located
+ * @since 1.54
+ */
+ public FilterProviderImpl(@NotNull String oakPath) {
+ setPath(oakPath);
+ }
+
//-----------------------------------------------------< FilterProvider
>---
@Override
@@ -98,19 +107,23 @@ public class FilterProviderImpl implements FilterProvider {
//----------------------------------------------------< SCR Integration
>---
+ public FilterProviderImpl() {
+ // constructor to use from SCR (not yet possible to use constructor
injection, see https://issues.apache.org/jira/browse/OAK-9837)
+ }
+
@Activate
protected void activate(Configuration configuration, Map<String, Object>
properties) {
- setPath(configuration);
+ setPath(configuration.path());
}
@Modified
protected void modified(Configuration configuration, Map<String, Object>
properties) {
- setPath(configuration);
+ setPath(configuration.path());
}
- private void setPath(@NotNull Configuration configuration) {
- checkState(isValidPath(configuration.path()), "Configured path must be
a valid absolute path.");
- oakPath = configuration.path();
+ private void setPath(@NotNull String path) {
+ checkState(isValidPath(path), "Configured path must be a valid
absolute path.");
+ oakPath = path;
}
private static boolean isValidPath(@Nullable String path) {
diff --git
a/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/AbstractPrincipalBasedTest.java
b/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/AbstractPrincipalBasedTest.java
index f0640d12fe..f1fb03e5d9 100644
---
a/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/AbstractPrincipalBasedTest.java
+++
b/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/AbstractPrincipalBasedTest.java
@@ -210,9 +210,7 @@ public abstract class AbstractPrincipalBasedTest extends
AbstractSecurityTest {
@NotNull
static FilterProviderImpl createFilterProviderImpl(@NotNull final String
path) {
- FilterProviderImpl fp = new FilterProviderImpl();
-
fp.activate(when(mock(FilterProviderImpl.Configuration.class).path()).thenReturn(path).getMock(),
Collections.emptyMap());
- return fp;
+ return new FilterProviderImpl(path);
}
@NotNull