You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by an...@apache.org on 2014/06/12 18:45:17 UTC

svn commit: r1602227 - /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/user/action/DefaultAuthorizableActionProvider.java

Author: angela
Date: Thu Jun 12 16:45:17 2014
New Revision: 1602227

URL: http://svn.apache.org/r1602227
Log:
OAK-1889 : Incomplete component declaration with default action provider

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/user/action/DefaultAuthorizableActionProvider.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/user/action/DefaultAuthorizableActionProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/user/action/DefaultAuthorizableActionProvider.java?rev=1602227&r1=1602226&r2=1602227&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/user/action/DefaultAuthorizableActionProvider.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/user/action/DefaultAuthorizableActionProvider.java Thu Jun 12 16:45:17 2014
@@ -19,37 +19,54 @@ package org.apache.jackrabbit.oak.spi.se
 import java.util.List;
 import java.util.Map;
 
+import com.google.common.collect.Lists;
 import org.apache.felix.scr.annotations.Activate;
 import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Properties;
 import org.apache.felix.scr.annotations.Property;
 import org.apache.felix.scr.annotations.PropertyOption;
 import org.apache.felix.scr.annotations.Service;
+import org.apache.jackrabbit.oak.commons.PropertiesUtil;
 import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters;
 import org.apache.jackrabbit.oak.spi.security.SecurityProvider;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.collect.Lists;
-
 /**
  * Default implementation of the {@link AuthorizableActionProvider} interface
  * that allows to config all actions provided by the OAK.
  */
-@Component()
+@Component(metatype = true, label = "Apache Jackrabbit Oak AuthorizableActionProvider")
 @Service(AuthorizableActionProvider.class)
+@Properties({
+        @Property(name = DefaultAuthorizableActionProvider.ENABLED_ACTIONS,
+                label = "Authorizable Actions",
+                description = "The set of actions that is supported by this provider implementation.",
+                cardinality = 4,
+                options = {
+                        @PropertyOption(name = "org.apache.jackrabbit.oak.spi.security.user.action.AccessControlAction", value = "AccessControlAction"),
+                        @PropertyOption(name = "org.apache.jackrabbit.oak.spi.security.user.action.PasswordValidationAction", value = "PasswordValidationAction"),
+                        @PropertyOption(name = "org.apache.jackrabbit.oak.spi.security.user.action.PasswordChangeAction", value = "PasswordChangeAction"),
+                        @PropertyOption(name = "org.apache.jackrabbit.oak.spi.security.user.action.ClearMembershipAction", value = "ClearMembershipAction")
+                }),
+        @Property(name = AccessControlAction.USER_PRIVILEGE_NAMES,
+                label = "Configure AccessControlAction: User Privileges",
+                description = "The name of the privileges that should be granted to a given user on it's home.",
+                cardinality = Integer.MAX_VALUE),
+        @Property(name = AccessControlAction.GROUP_PRIVILEGE_NAMES,
+                label = "Configure AccessControlAction: Group Privileges",
+                description = "The name of the privileges that should be granted to a given group on it's home.",
+                cardinality = Integer.MAX_VALUE),
+        @Property(name = PasswordValidationAction.CONSTRAINT,
+                label = "Configure PasswordValidationAction: Password Constraint",
+                description = "A regular expression specifying the pattern that must be matched by a user's password.")
+})
 public class DefaultAuthorizableActionProvider implements AuthorizableActionProvider {
 
     private static final Logger log = LoggerFactory.getLogger(DefaultAuthorizableActionProvider.class);
 
-    private static final String ENABLED_ACTIONS = "enabledActions";
+    static final String ENABLED_ACTIONS = "enabledActions";
 
-    @Property(name = ENABLED_ACTIONS,
-            options = {
-                    @PropertyOption(name = "org.apache.jackrabbit.oak.spi.security.user.action.AccessControlAction", value = "AccessControlAction"),
-                    @PropertyOption(name = "org.apache.jackrabbit.oak.spi.security.user.action.PasswordValidationAction", value = "PasswordValidationAction"),
-                    @PropertyOption(name = "org.apache.jackrabbit.oak.spi.security.user.action.PasswordChangeAction", value = "PasswordChangeAction"),
-                    @PropertyOption(name = "org.apache.jackrabbit.oak.spi.security.user.action.ClearMembershipAction", value = "ClearMembershipAction")
-            })
     private String[] enabledActions = new String[] {AccessControlAction.class.getName()};
 
     private ConfigurationParameters config = ConfigurationParameters.EMPTY;
@@ -86,5 +103,6 @@ public class DefaultAuthorizableActionPr
     @Activate
     private void activate(Map<String, Object> properties) {
         config = ConfigurationParameters.of(properties);
+        enabledActions = PropertiesUtil.toStringArray(properties.get(ENABLED_ACTIONS), new String[0]);
     }
 }
\ No newline at end of file