You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by to...@apache.org on 2014/10/16 09:03:32 UTC
svn commit: r1632218 - in /sling/trunk/contrib/extensions/replication:
core/src/main/java/org/apache/sling/replication/agent/
core/src/main/java/org/apache/sling/replication/agent/impl/
core/src/main/java/org/apache/sling/replication/packaging/ core/sr...
Author: tommaso
Date: Thu Oct 16 07:03:31 2014
New Revision: 1632218
URL: http://svn.apache.org/r1632218
Log:
SLING-3899 - using authorization strategy for checking resource resolver
Added:
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/ReplicationRequestAuthorizationStrategy.java (with props)
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/PrivilegeReplicationRequestAuthorizationStrategy.java (with props)
Removed:
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/ReplicationPackageExporterStrategy.java
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/strategy/
Modified:
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/DefaultReplicationComponentFactory.java
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/SimpleReplicationAgent.java
sling/trunk/contrib/extensions/replication/core/src/test/java/org/apache/sling/replication/agent/impl/SimpleReplicationAgentTest.java
sling/trunk/contrib/extensions/replication/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-publish-reverse.json
sling/trunk/contrib/extensions/replication/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-publish.json
sling/trunk/contrib/extensions/replication/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-cache-flush.json
sling/trunk/contrib/extensions/replication/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-reverse.json
Added: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/ReplicationRequestAuthorizationStrategy.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/ReplicationRequestAuthorizationStrategy.java?rev=1632218&view=auto
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/ReplicationRequestAuthorizationStrategy.java (added)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/ReplicationRequestAuthorizationStrategy.java Thu Oct 16 07:03:31 2014
@@ -0,0 +1,42 @@
+/*
+ * 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.sling.replication.agent;
+
+import java.util.List;
+
+import org.apache.sling.api.resource.ResourceResolver;
+import org.apache.sling.replication.communication.ReplicationRequest;
+import org.apache.sling.replication.packaging.ReplicationPackage;
+import org.apache.sling.replication.packaging.ReplicationPackageExporter;
+import org.apache.sling.replication.serialization.ReplicationPackageBuildingException;
+
+/**
+ * Strategy for authorizing requests
+ */
+public interface ReplicationRequestAuthorizationStrategy {
+
+ /**
+ * @param resourceResolver a {@link org.apache.sling.api.resource.ResourceResolver} representing the calling 'user'
+ * @param replicationRequest a request bringing metadata for getting {@link org.apache.sling.replication.packaging.ReplicationPackage}s
+ * to be exported
+ * @throws AgentReplicationException
+ */
+ void checkPermission(ResourceResolver resourceResolver, ReplicationRequest replicationRequest) throws AgentReplicationException;
+
+}
Propchange: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/ReplicationRequestAuthorizationStrategy.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/DefaultReplicationComponentFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/DefaultReplicationComponentFactory.java?rev=1632218&r1=1632217&r2=1632218&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/DefaultReplicationComponentFactory.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/DefaultReplicationComponentFactory.java Thu Oct 16 07:03:31 2014
@@ -36,15 +36,13 @@ import org.apache.sling.jcr.api.SlingRep
import org.apache.sling.replication.agent.ReplicationAgent;
import org.apache.sling.replication.agent.ReplicationComponentFactory;
import org.apache.sling.replication.agent.ReplicationComponentProvider;
+import org.apache.sling.replication.agent.ReplicationRequestAuthorizationStrategy;
import org.apache.sling.replication.event.ReplicationEventFactory;
import org.apache.sling.replication.packaging.ReplicationPackageExporter;
-import org.apache.sling.replication.packaging.ReplicationPackageExporterStrategy;
import org.apache.sling.replication.packaging.ReplicationPackageImporter;
import org.apache.sling.replication.packaging.impl.exporter.AgentReplicationPackageExporter;
import org.apache.sling.replication.packaging.impl.exporter.LocalReplicationPackageExporter;
import org.apache.sling.replication.packaging.impl.exporter.RemoteReplicationPackageExporter;
-import org.apache.sling.replication.packaging.impl.exporter.strategy.DefaultReplicationPackageExporterStrategy;
-import org.apache.sling.replication.packaging.impl.exporter.strategy.PrivilegeReplicationPackageExporterStrategy;
import org.apache.sling.replication.packaging.impl.importer.LocalReplicationPackageImporter;
import org.apache.sling.replication.packaging.impl.importer.RemoteReplicationPackageImporter;
import org.apache.sling.replication.queue.ReplicationQueueDistributionStrategy;
@@ -147,8 +145,8 @@ public class DefaultReplicationComponent
Map<String, Object> exporterProperties = extractMap("packageExporter", properties);
ReplicationPackageExporter packageExporter = createExporter(exporterProperties, componentProvider);
- Map<String, Object> exporterStrategyProperties = extractMap("packageExporterStrategy", properties);
- ReplicationPackageExporterStrategy packageExporterStrategy = createExporterStrategy(exporterStrategyProperties, componentProvider);
+ Map<String, Object> authorizationStrategyProperties = extractMap("requestAuthorizationStrategy", properties);
+ ReplicationRequestAuthorizationStrategy packageExporterStrategy = createAuthorizationStrategy(authorizationStrategyProperties, componentProvider);
Map<String, Object> queueDistributionStrategyProperties = extractMap("queueDistributionStrategy", properties);
ReplicationQueueDistributionStrategy queueDistributionStrategy = createDistributionStrategy(queueDistributionStrategyProperties, componentProvider);
@@ -177,20 +175,17 @@ public class DefaultReplicationComponent
}
- private ReplicationPackageExporterStrategy createExporterStrategy(Map<String, Object> properties, ReplicationComponentProvider componentProvider) {
+ private ReplicationRequestAuthorizationStrategy createAuthorizationStrategy(Map<String, Object> properties, ReplicationComponentProvider componentProvider) {
String factory = PropertiesUtil.toString(properties.get(COMPONENT_TYPE), "service");
if ("service".equals(factory)) {
String name = PropertiesUtil.toString(properties.get(NAME), null);
- return componentProvider.getComponent(ReplicationPackageExporterStrategy.class, name);
+ return componentProvider.getComponent(ReplicationRequestAuthorizationStrategy.class, name);
}
- else if (DefaultReplicationPackageExporterStrategy.NAME.equals(factory)) {
- return new DefaultReplicationPackageExporterStrategy();
- }
- else if (PrivilegeReplicationPackageExporterStrategy.NAME.equals(factory)) {
- return new PrivilegeReplicationPackageExporterStrategy(properties);
+ else if (PrivilegeReplicationRequestAuthorizationStrategy.NAME.equals(factory)) {
+ return new PrivilegeReplicationRequestAuthorizationStrategy(properties);
}
return null;
Added: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/PrivilegeReplicationRequestAuthorizationStrategy.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/PrivilegeReplicationRequestAuthorizationStrategy.java?rev=1632218&view=auto
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/PrivilegeReplicationRequestAuthorizationStrategy.java (added)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/PrivilegeReplicationRequestAuthorizationStrategy.java Thu Oct 16 07:03:31 2014
@@ -0,0 +1,102 @@
+/*
+ * 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.sling.replication.agent.impl;
+
+import javax.jcr.RepositoryException;
+import javax.jcr.Session;
+import javax.jcr.security.AccessControlManager;
+import javax.jcr.security.Privilege;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.sling.api.resource.ResourceResolver;
+import org.apache.sling.commons.osgi.PropertiesUtil;
+import org.apache.sling.replication.agent.AgentReplicationException;
+import org.apache.sling.replication.agent.ReplicationRequestAuthorizationStrategy;
+import org.apache.sling.replication.communication.ReplicationActionType;
+import org.apache.sling.replication.communication.ReplicationRequest;
+import org.apache.sling.replication.packaging.ReplicationPackage;
+import org.apache.sling.replication.packaging.ReplicationPackageExporter;
+import org.apache.sling.replication.serialization.ReplicationPackageBuildingException;
+
+public class PrivilegeReplicationRequestAuthorizationStrategy implements ReplicationRequestAuthorizationStrategy {
+ public static final String NAME = "privilege";
+ public static final String JCR_PRIVILEGE = "jcrPrivilege";
+
+ private final String jcrPrivilege;
+
+ public PrivilegeReplicationRequestAuthorizationStrategy(Map<String, Object> config) {
+ this(PropertiesUtil.toString(config.get(JCR_PRIVILEGE), null));
+ }
+
+ public PrivilegeReplicationRequestAuthorizationStrategy(String jcrPrivilege) {
+ if (jcrPrivilege == null) {
+ throw new IllegalArgumentException("Jcr Privilege is required");
+ }
+
+ this.jcrPrivilege = jcrPrivilege;
+ }
+
+ public void checkPermission(ResourceResolver resourceResolver, ReplicationRequest replicationRequest) throws AgentReplicationException {
+ Session session = resourceResolver.adaptTo(Session.class);
+
+ try {
+ if (ReplicationActionType.ADD.equals(replicationRequest.getAction())) {
+ checkPermissionForAdd(session, replicationRequest.getPaths());
+ }
+ else if (ReplicationActionType.DELETE.equals(replicationRequest.getAction())) {
+ checkPermissionForDelete(session, replicationRequest.getPaths());
+ }
+
+ }
+ catch (RepositoryException e) {
+ throw new AgentReplicationException("Not enough privileges");
+ }
+
+
+ }
+
+ private void checkPermissionForAdd(Session session, String[] paths)
+ throws RepositoryException, AgentReplicationException {
+ AccessControlManager acMgr = session.getAccessControlManager();
+
+ Privilege[] privileges = new Privilege[] { acMgr.privilegeFromName(jcrPrivilege), acMgr.privilegeFromName(Privilege.JCR_READ) };
+ for (String path : paths) {
+ if(!acMgr.hasPrivileges(path, privileges)) {
+ throw new AgentReplicationException("Not enough privileges");
+ }
+ }
+
+ }
+
+ private void checkPermissionForDelete(Session session, String[] paths)
+ throws RepositoryException, AgentReplicationException {
+ AccessControlManager acMgr = session.getAccessControlManager();
+
+ Privilege[] privileges = new Privilege[] { acMgr.privilegeFromName(jcrPrivilege), acMgr.privilegeFromName(Privilege.JCR_REMOVE_NODE) };
+ for (String path : paths) {
+ if(session.nodeExists(path) && !acMgr.hasPrivileges(path, privileges)) {
+ throw new AgentReplicationException("Not enough privileges");
+ }
+ }
+
+ }
+
+
+}
Propchange: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/PrivilegeReplicationRequestAuthorizationStrategy.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/SimpleReplicationAgent.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/SimpleReplicationAgent.java?rev=1632218&r1=1632217&r2=1632218&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/SimpleReplicationAgent.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/SimpleReplicationAgent.java Thu Oct 16 07:03:31 2014
@@ -32,13 +32,13 @@ import org.apache.sling.api.resource.Res
import org.apache.sling.replication.agent.AgentReplicationException;
import org.apache.sling.replication.agent.ReplicationAgent;
import org.apache.sling.replication.agent.ReplicationComponent;
+import org.apache.sling.replication.agent.ReplicationRequestAuthorizationStrategy;
import org.apache.sling.replication.communication.ReplicationRequest;
import org.apache.sling.replication.communication.ReplicationResponse;
import org.apache.sling.replication.event.ReplicationEventFactory;
import org.apache.sling.replication.event.ReplicationEventType;
import org.apache.sling.replication.packaging.ReplicationPackage;
import org.apache.sling.replication.packaging.ReplicationPackageExporter;
-import org.apache.sling.replication.packaging.ReplicationPackageExporterStrategy;
import org.apache.sling.replication.packaging.ReplicationPackageImporter;
import org.apache.sling.replication.queue.ReplicationQueue;
import org.apache.sling.replication.queue.ReplicationQueueDistributionStrategy;
@@ -75,7 +75,7 @@ public class SimpleReplicationAgent impl
private final String name;
- private final ReplicationPackageExporterStrategy replicationPackageExporterStrategy;
+ private final ReplicationRequestAuthorizationStrategy replicationRequestAuthorizationStrategy;
private final ResourceResolverFactory resourceResolverFactory;
private final String subServiceName;
@@ -84,21 +84,20 @@ public class SimpleReplicationAgent impl
String subServiceName,
ReplicationPackageImporter replicationPackageImporter,
ReplicationPackageExporter replicationPackageExporter,
- ReplicationPackageExporterStrategy replicationPackageExporterStrategy,
+ ReplicationRequestAuthorizationStrategy replicationRequestAuthorizationStrategy,
ReplicationQueueProvider queueProvider,
ReplicationQueueDistributionStrategy queueDistributionStrategy,
ReplicationEventFactory replicationEventFactory,
ResourceResolverFactory resourceResolverFactory,
List<ReplicationTrigger> triggers) {
- this.subServiceName = subServiceName;
- this.replicationPackageExporterStrategy = replicationPackageExporterStrategy;
- this.resourceResolverFactory = resourceResolverFactory;
+
// check configuration is valid
if (name == null
|| replicationPackageImporter == null
|| replicationPackageExporter == null
- || replicationPackageExporterStrategy == null
+ || subServiceName == null
+ || replicationRequestAuthorizationStrategy == null
|| queueProvider == null
|| queueDistributionStrategy == null
|| replicationEventFactory == null
@@ -107,7 +106,8 @@ public class SimpleReplicationAgent impl
String errorMessage = Arrays.toString(new Object[]{name,
replicationPackageImporter,
replicationPackageExporter,
- replicationPackageExporterStrategy,
+ subServiceName,
+ replicationRequestAuthorizationStrategy,
queueProvider,
queueDistributionStrategy,
replicationEventFactory,
@@ -115,6 +115,9 @@ public class SimpleReplicationAgent impl
throw new IllegalArgumentException("all arguments are required: " + errorMessage);
}
+ this.subServiceName = subServiceName;
+ this.replicationRequestAuthorizationStrategy = replicationRequestAuthorizationStrategy;
+ this.resourceResolverFactory = resourceResolverFactory;
this.name = name;
this.passive = passive;
this.replicationPackageImporter = replicationPackageImporter;
@@ -128,7 +131,9 @@ public class SimpleReplicationAgent impl
public ReplicationResponse execute(ResourceResolver resourceResolver, ReplicationRequest replicationRequest)
throws AgentReplicationException {
try {
- return schedule(buildPackages(resourceResolver, replicationRequest));
+ replicationRequestAuthorizationStrategy.checkPermission(resourceResolver, replicationRequest);
+ List<ReplicationPackage> replicationPackages = buildPackages(replicationRequest);
+ return schedule(replicationPackages);
} catch (Exception e) {
log.error("Error executing replication request {}", replicationRequest, e);
throw new AgentReplicationException(e);
@@ -140,23 +145,11 @@ public class SimpleReplicationAgent impl
return passive;
}
- private List<ReplicationPackage> buildPackages(ResourceResolver resourceResolver, ReplicationRequest replicationRequest) throws ReplicationPackageBuildingException {
-
- List<ReplicationPackage> replicationPackages = new ArrayList<ReplicationPackage>();
+ private List<ReplicationPackage> buildPackages(ReplicationRequest replicationRequest) throws ReplicationPackageBuildingException {
+ ResourceResolver agentResourceResolver = getAgentResourceResolver();
- List<ReplicationPackage> exportedPackages = replicationPackageExporterStrategy.exportPackages(resourceResolver,
- replicationRequest,
- new ReplicationPackageExporter() {
- public List<ReplicationPackage> exportPackage(ResourceResolver resourceResolver, ReplicationRequest replicationRequest) throws ReplicationPackageBuildingException {
- return replicationPackageExporter.exportPackage(getAgentResourceResolver(), replicationRequest);
- }
-
- public ReplicationPackage exportPackageById(ResourceResolver resourceResolver, String replicationPackageId) {
- return replicationPackageExporter.exportPackageById(getAgentResourceResolver(), replicationPackageId);
- }
- });
- replicationPackages.addAll(exportedPackages);
+ List<ReplicationPackage> replicationPackages = replicationPackageExporter.exportPackage(agentResourceResolver, replicationRequest);
return replicationPackages;
}
Modified: sling/trunk/contrib/extensions/replication/core/src/test/java/org/apache/sling/replication/agent/impl/SimpleReplicationAgentTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/test/java/org/apache/sling/replication/agent/impl/SimpleReplicationAgentTest.java?rev=1632218&r1=1632217&r2=1632218&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/test/java/org/apache/sling/replication/agent/impl/SimpleReplicationAgentTest.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/test/java/org/apache/sling/replication/agent/impl/SimpleReplicationAgentTest.java Thu Oct 16 07:03:31 2014
@@ -22,13 +22,13 @@ import java.util.Arrays;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.api.resource.ResourceResolverFactory;
+import org.apache.sling.replication.agent.ReplicationRequestAuthorizationStrategy;
import org.apache.sling.replication.communication.ReplicationActionType;
import org.apache.sling.replication.communication.ReplicationRequest;
import org.apache.sling.replication.communication.ReplicationResponse;
import org.apache.sling.replication.event.ReplicationEventFactory;
import org.apache.sling.replication.packaging.ReplicationPackage;
import org.apache.sling.replication.packaging.ReplicationPackageExporter;
-import org.apache.sling.replication.packaging.ReplicationPackageExporterStrategy;
import org.apache.sling.replication.packaging.ReplicationPackageImporter;
import org.apache.sling.replication.queue.ReplicationQueue;
import org.apache.sling.replication.queue.ReplicationQueueDistributionStrategy;
@@ -56,7 +56,7 @@ public class SimpleReplicationAgentTest
String name = "sample-agent";
ReplicationPackageImporter packageImporter = mock(ReplicationPackageImporter.class);
ReplicationPackageExporter packageExporter = mock(ReplicationPackageExporter.class);
- ReplicationPackageExporterStrategy packageExporterStrategy = mock(ReplicationPackageExporterStrategy.class);
+ ReplicationRequestAuthorizationStrategy packageExporterStrategy = mock(ReplicationRequestAuthorizationStrategy.class);
ReplicationQueueProvider queueProvider = mock(ReplicationQueueProvider.class);
ReplicationQueueDistributionStrategy distributionHandler = mock(ReplicationQueueDistributionStrategy.class);
ReplicationEventFactory replicationEventFactory = mock(ReplicationEventFactory.class);
@@ -73,7 +73,7 @@ public class SimpleReplicationAgentTest
ResourceResolver resourceResolver = mock(ResourceResolver.class);
when(replicationPackage.getPaths()).thenReturn(new String[]{"/"});
- when(packageExporterStrategy.exportPackages(any(ResourceResolver.class), any(ReplicationRequest.class), any(ReplicationPackageExporter.class)))
+ when(packageExporter.exportPackage(any(ResourceResolver.class), any(ReplicationRequest.class)))
.thenReturn(Arrays.asList(new ReplicationPackage[]{replicationPackage}));
when(queueProvider.getDefaultQueue(agent.getName())).thenReturn(
new SimpleReplicationQueue(agent.getName(), "name"));
@@ -87,7 +87,7 @@ public class SimpleReplicationAgentTest
String name = "sample-agent";
ReplicationPackageImporter packageImporter = mock(ReplicationPackageImporter.class);
ReplicationPackageExporter packageExporter = mock(ReplicationPackageExporter.class);
- ReplicationPackageExporterStrategy packageExporterStrategy = mock(ReplicationPackageExporterStrategy.class);
+ ReplicationRequestAuthorizationStrategy packageExporterStrategy = mock(ReplicationRequestAuthorizationStrategy.class);
ReplicationQueueProvider queueProvider = mock(ReplicationQueueProvider.class);
ReplicationQueueDistributionStrategy distributionHandler = mock(ReplicationQueueDistributionStrategy.class);
ReplicationEventFactory replicationEventFactory = mock(ReplicationEventFactory.class);
@@ -106,7 +106,7 @@ public class SimpleReplicationAgentTest
ReplicationQueueItemState state = new ReplicationQueueItemState();
state.setItemState(ReplicationQueueItemState.ItemState.SUCCEEDED);
when(distributionHandler.add(any(String.class), any(ReplicationQueueItem.class), eq(queueProvider))).thenReturn(state);
- when(packageExporterStrategy.exportPackages(any(ResourceResolver.class), any(ReplicationRequest.class), any(ReplicationPackageExporter.class)))
+ when(packageExporter.exportPackage(any(ResourceResolver.class), any(ReplicationRequest.class)))
.thenReturn(Arrays.asList(new ReplicationPackage[]{replicationPackage}));
when(queueProvider.getDefaultQueue(agent.getName())).thenReturn(
new SimpleReplicationQueue(agent.getName(), "name"));
@@ -120,7 +120,7 @@ public class SimpleReplicationAgentTest
String name = "sample-agent";
ReplicationPackageImporter packageImporter = mock(ReplicationPackageImporter.class);
ReplicationPackageExporter packageExporter = mock(ReplicationPackageExporter.class);
- ReplicationPackageExporterStrategy packageExporterStrategy = mock(ReplicationPackageExporterStrategy.class);
+ ReplicationRequestAuthorizationStrategy packageExporterStrategy = mock(ReplicationRequestAuthorizationStrategy.class);
ReplicationQueueProvider queueProvider = mock(ReplicationQueueProvider.class);
ReplicationQueueDistributionStrategy distributionHandler = mock(ReplicationQueueDistributionStrategy.class);
ReplicationEventFactory replicationEventFactory = mock(ReplicationEventFactory.class);
@@ -149,7 +149,7 @@ public class SimpleReplicationAgentTest
String name = "sample-agent";
ReplicationPackageImporter packageImporter = mock(ReplicationPackageImporter.class);
ReplicationPackageExporter packageExporter = mock(ReplicationPackageExporter.class);
- ReplicationPackageExporterStrategy packageExporterStrategy = mock(ReplicationPackageExporterStrategy.class);
+ ReplicationRequestAuthorizationStrategy packageExporterStrategy = mock(ReplicationRequestAuthorizationStrategy.class);
ReplicationQueueProvider queueProvider = mock(ReplicationQueueProvider.class);
ReplicationQueueDistributionStrategy distributionHandler = mock(ReplicationQueueDistributionStrategy.class);
@@ -172,7 +172,7 @@ public class SimpleReplicationAgentTest
String name = "sample-agent";
ReplicationPackageImporter packageImporter = mock(ReplicationPackageImporter.class);
ReplicationPackageExporter packageExporter = mock(ReplicationPackageExporter.class);
- ReplicationPackageExporterStrategy packageExporterStrategy = mock(ReplicationPackageExporterStrategy.class);
+ ReplicationRequestAuthorizationStrategy packageExporterStrategy = mock(ReplicationRequestAuthorizationStrategy.class);
ReplicationQueueProvider queueProvider = mock(ReplicationQueueProvider.class);
ReplicationQueueDistributionStrategy distributionHandler = mock(ReplicationQueueDistributionStrategy.class);
@@ -195,7 +195,7 @@ public class SimpleReplicationAgentTest
String name = "sample-agent";
ReplicationPackageImporter packageImporter = mock(ReplicationPackageImporter.class);
ReplicationPackageExporter packageExporter = mock(ReplicationPackageExporter.class);
- ReplicationPackageExporterStrategy packageExporterStrategy = mock(ReplicationPackageExporterStrategy.class);
+ ReplicationRequestAuthorizationStrategy packageExporterStrategy = mock(ReplicationRequestAuthorizationStrategy.class);
ReplicationQueueProvider queueProvider = mock(ReplicationQueueProvider.class);
ReplicationQueueDistributionStrategy distributionHandler = mock(ReplicationQueueDistributionStrategy.class);
Modified: sling/trunk/contrib/extensions/replication/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-publish-reverse.json
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-publish-reverse.json?rev=1632218&r1=1632217&r2=1632218&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-publish-reverse.json (original)
+++ sling/trunk/contrib/extensions/replication/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-publish-reverse.json Thu Oct 16 07:03:31 2014
@@ -16,7 +16,7 @@
"packageBuilder/type=vlt"
],
- "packageExporterStrategy" : [
+ "requestAuthorizationStrategy" : [
"type=privilege",
"jcrPrivilege=jcr:read"
],
Modified: sling/trunk/contrib/extensions/replication/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-publish.json
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-publish.json?rev=1632218&r1=1632217&r2=1632218&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-publish.json (original)
+++ sling/trunk/contrib/extensions/replication/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-publish.json Thu Oct 16 07:03:31 2014
@@ -9,7 +9,7 @@
"packageBuilder/type=vlt"
],
- "packageExporterStrategy" : [
+ "requestAuthorizationStrategy" : [
"type=privilege",
"jcrPrivilege=jcr:read"
],
Modified: sling/trunk/contrib/extensions/replication/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-cache-flush.json
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-cache-flush.json?rev=1632218&r1=1632217&r2=1632218&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-cache-flush.json (original)
+++ sling/trunk/contrib/extensions/replication/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-cache-flush.json Thu Oct 16 07:03:31 2014
@@ -7,7 +7,7 @@
"name=void"
],
- "packageExporterStrategy" : [
+ "requestAuthorizationStrategy" : [
"type=default"
],
Modified: sling/trunk/contrib/extensions/replication/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-reverse.json
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-reverse.json?rev=1632218&r1=1632217&r2=1632218&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-reverse.json (original)
+++ sling/trunk/contrib/extensions/replication/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-reverse.json Thu Oct 16 07:03:31 2014
@@ -8,10 +8,10 @@
"packageExporter": [
"type=local",
- "packageBuilder/type=vlt",
+ "packageBuilder/type=vlt"
],
- "packageExporterStrategy" : [
+ "requestAuthorizationStrategy" : [
"type=privilege",
"jcrPrivilege=jcr:read"
],