Author: tommaso
Date: Wed Oct 15 07:49:18 2014
New Revision: 1631965

URL: http://svn.apache.org/r1631965
Log:
SLING-3899 - correct check on agent session

Modified:
    
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/SimpleReplicationAgent.java
    
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/strategy/PrivilegeReplicationPackageExporterStrategy.java

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=1631965&r1=1631964&r2=1631965&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
 Wed Oct 15 07:49:18 2014
@@ -141,7 +141,15 @@ public class SimpleReplicationAgent impl
 
         List<ReplicationPackage> exportedPackages = 
replicationPackageExporterStrategy.exportPackages(resourceResolver,
                 replicationRequest,
-                replicationPackageExporter);
+                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);
 
         return replicationPackages;
@@ -242,7 +250,7 @@ public class SimpleReplicationAgent impl
     private boolean processTransportQueue(ReplicationQueueItem queueItem) {
         boolean success = false;
         log.debug("reading package with id {}", queueItem.getId());
-        ResourceResolver resourceResolver = getResourceResolver();
+        ResourceResolver resourceResolver = getAgentResourceResolver();
         try {
 
             ReplicationPackage replicationPackage = 
replicationPackageExporter.exportPackageById(resourceResolver, 
queueItem.getId());
@@ -263,7 +271,7 @@ public class SimpleReplicationAgent impl
         return success;
     }
 
-    private ResourceResolver getResourceResolver() {
+    private ResourceResolver getAgentResourceResolver() {
         ResourceResolver resourceResolver = null;
 
         Map<String, Object> authenticationInfo = new HashMap<String, Object>();
@@ -293,7 +301,7 @@ public class SimpleReplicationAgent impl
 
         public void handle(ReplicationRequest request) {
             try {
-                ResourceResolver resourceResolver = getResourceResolver();
+                ResourceResolver resourceResolver = getAgentResourceResolver();
                 agent.execute(resourceResolver, request);
             } catch (AgentReplicationException e) {
                 log.error("Error executing handler", e);

Modified: 
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/strategy/PrivilegeReplicationPackageExporterStrategy.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/strategy/PrivilegeReplicationPackageExporterStrategy.java?rev=1631965&r1=1631964&r2=1631965&view=diff
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/strategy/PrivilegeReplicationPackageExporterStrategy.java
 (original)
+++ 
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/strategy/PrivilegeReplicationPackageExporterStrategy.java
 Wed Oct 15 07:49:18 2014
@@ -31,7 +31,6 @@ import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 import javax.jcr.security.AccessControlManager;
 import javax.jcr.security.Privilege;
-import java.nio.file.AccessDeniedException;
 import java.util.List;
 import java.util.Map;
 
@@ -76,7 +75,7 @@ public class PrivilegeReplicationPackage
             throws RepositoryException, ReplicationPackageBuildingException {
         AccessControlManager acMgr = session.getAccessControlManager();
 
-        Privilege[] privileges = new Privilege[] { 
acMgr.privilegeFromName(jcrPrivilege) };
+        Privilege[] privileges = new Privilege[] { 
acMgr.privilegeFromName(jcrPrivilege), 
acMgr.privilegeFromName(Privilege.JCR_READ) };
         for (String path : paths) {
             if(!acMgr.hasPrivileges(path, privileges)) {
                 throw new ReplicationPackageBuildingException("Not enough 
privileges");
@@ -89,7 +88,7 @@ public class PrivilegeReplicationPackage
             throws RepositoryException, ReplicationPackageBuildingException {
         AccessControlManager acMgr = session.getAccessControlManager();
 
-        Privilege[] privileges = new Privilege[] { 
acMgr.privilegeFromName(jcrPrivilege) };
+        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 ReplicationPackageBuildingException("Not enough 
privileges");


Reply via email to