This is an automated email from the ASF dual-hosted git repository. kwin pushed a commit to branch feature/ease-use-of-filterproviderimpl in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git
commit 7ee3c901c3925b5da8deb71d8f468771f0c7a3af Author: Konrad Windszus <[email protected]> AuthorDate: Mon Jul 3 18:26:40 2023 +0200 OAK-10332 Allow reusing FilterProviderImpl outside OSGi context --- .../principalbased/impl/FilterProviderImpl.java | 27 ++++++++++++++++------ 1 file changed, 20 insertions(+), 7 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..eb903887de 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(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); + protected void activate(Configuration configuration) { + setPath(configuration.path()); } @Modified - protected void modified(Configuration configuration, Map<String, Object> properties) { - setPath(configuration); + protected void modified(Configuration 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(String path) { + checkState(isValidPath(path), "Configured path must be a valid absolute path."); + oakPath = path; } private static boolean isValidPath(@Nullable String path) {
