jackrabbit-oak-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ang...@apache.org
Subject svn commit: r1521872 - in /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak: osgi/OsgiRestrictionProvider.java security/authorization/restriction/RestrictionProviderImpl.java
Date Wed, 11 Sep 2013 14:28:01 GMT
Author: angela
Date: Wed Sep 11 14:28:00 2013
New Revision: 1521872

URL: http://svn.apache.org/r1521872
Log:
OAK-528 : Support configurable/pluggable restrictions (WIP)

Added:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/osgi/OsgiRestrictionProvider.java
Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/restriction/RestrictionProviderImpl.java

Added: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/osgi/OsgiRestrictionProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/osgi/OsgiRestrictionProvider.java?rev=1521872&view=auto
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/osgi/OsgiRestrictionProvider.java
(added)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/osgi/OsgiRestrictionProvider.java
Wed Sep 11 14:28:00 2013
@@ -0,0 +1,87 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.oak.osgi;
+
+import java.util.Set;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+import javax.jcr.RepositoryException;
+import javax.jcr.Value;
+import javax.jcr.security.AccessControlException;
+
+import org.apache.jackrabbit.oak.api.Tree;
+import org.apache.jackrabbit.oak.spi.security.authorization.restriction.CompositeRestrictionProvider;
+import org.apache.jackrabbit.oak.spi.security.authorization.restriction.Restriction;
+import org.apache.jackrabbit.oak.spi.security.authorization.restriction.RestrictionDefinition;
+import org.apache.jackrabbit.oak.spi.security.authorization.restriction.RestrictionPattern;
+import org.apache.jackrabbit.oak.spi.security.authorization.restriction.RestrictionProvider;
+
+/**
+ * {@link RestrictionProvider} implementation that combines all available OSGi
+ * restriction providers.
+ */
+public class OsgiRestrictionProvider  extends AbstractServiceTracker<RestrictionProvider>
implements RestrictionProvider {
+
+    public OsgiRestrictionProvider() {
+        super(RestrictionProvider.class);
+    }
+
+    @Nonnull
+    @Override
+    public Set<RestrictionDefinition> getSupportedRestrictions(@Nullable String oakPath)
{
+        return getProvider().getSupportedRestrictions(oakPath);
+    }
+
+    @Nonnull
+    @Override
+    public Restriction createRestriction(@Nullable String oakPath, @Nonnull String oakName,
@Nonnull Value value) throws AccessControlException, RepositoryException {
+        return getProvider().createRestriction(oakPath, oakName, value);
+    }
+
+    @Nonnull
+    @Override
+    public Restriction createRestriction(@Nullable String oakPath, @Nonnull String oakName,
@Nonnull Value... values) throws AccessControlException, RepositoryException {
+        return getProvider().createRestriction(oakPath, oakName, values);
+    }
+
+    @Nonnull
+    @Override
+    public Set<Restriction> readRestrictions(@Nullable String oakPath, @Nonnull Tree
aceTree) {
+        return getProvider().readRestrictions(oakPath, aceTree);
+    }
+
+    @Override
+    public void writeRestrictions(String oakPath, Tree aceTree, Set<Restriction> restrictions)
throws RepositoryException {
+        getProvider().writeRestrictions(oakPath, aceTree, restrictions);
+    }
+
+    @Override
+    public void validateRestrictions(@Nullable String oakPath, @Nonnull Tree aceTree) throws
AccessControlException, RepositoryException {
+        getProvider().validateRestrictions(oakPath, aceTree);
+    }
+
+    @Nonnull
+    @Override
+    public RestrictionPattern getPattern(@Nullable String oakPath, @Nonnull Tree tree) {
+        return getProvider().getPattern(oakPath, tree);
+    }
+
+    //------------------------------------------------------------< private >---
+    private RestrictionProvider getProvider() {
+        return CompositeRestrictionProvider.newInstance(getServices());
+    }
+}
\ No newline at end of file

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/restriction/RestrictionProviderImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/restriction/RestrictionProviderImpl.java?rev=1521872&r1=1521871&r2=1521872&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/restriction/RestrictionProviderImpl.java
(original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/restriction/RestrictionProviderImpl.java
Wed Sep 11 14:28:00 2013
@@ -21,6 +21,8 @@ import java.util.List;
 import java.util.Map;
 
 import com.google.common.collect.ImmutableMap;
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Service;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Tree;
 import org.apache.jackrabbit.oak.api.Type;
@@ -29,6 +31,7 @@ import org.apache.jackrabbit.oak.spi.sec
 import org.apache.jackrabbit.oak.spi.security.authorization.restriction.RestrictionDefinition;
 import org.apache.jackrabbit.oak.spi.security.authorization.restriction.RestrictionDefinitionImpl;
 import org.apache.jackrabbit.oak.spi.security.authorization.restriction.RestrictionPattern;
+import org.apache.jackrabbit.oak.spi.security.authorization.restriction.RestrictionProvider;
 
 /**
  * Default restriction provider implementation that supports the following
@@ -43,6 +46,8 @@ import org.apache.jackrabbit.oak.spi.sec
  *     parent node is taken into consideration when evaluating the permissions.</li>
  * </ul>
  */
+@Component
+@Service(RestrictionProvider.class)
 public class RestrictionProviderImpl extends AbstractRestrictionProvider {
 
     public RestrictionProviderImpl() {



Mime
View raw message