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/09/24 10:43:26 UTC

svn commit: r1627255 - in /sling/trunk/contrib/extensions/replication: core/src/main/java/org/apache/sling/replication/agent/impl/ core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/ core/src/main/java/org/apache/sling/replication/...

Author: tommaso
Date: Wed Sep 24 08:43:25 2014
New Revision: 1627255

URL: http://svn.apache.org/r1627255
Log:
SLING-3900 - applied Marius Petria's patch for removing password from transport configuration

Added:
    sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.transport.authentication.impl.UserCredentialsTransportAuthenticationProviderFactory-publishAdmin.json
    sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-replication.json
Modified:
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/DefaultReplicationComponentProvider.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/RemoteReplicationPackageExporter.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/RemoteReplicationPackageExporterFactory.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/AdvancedRemoteReplicationPackageImporter.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/RemoteReplicationPackageImporter.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/RemoteReplicationPackageImporterFactory.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/authentication/impl/NopTransportAuthenticationProvider.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/authentication/impl/RepositoryTransportAuthenticationProvider.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/authentication/impl/UserCredentialsTransportAuthenticationProvider.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/authentication/impl/UserCredentialsTransportAuthenticationProviderFactory.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/impl/ReplicationTransportConstants.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/impl/SimpleHttpReplicationTransportHandler.java
    sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.agent.impl.CompactSimpleReplicationAgentFactory-publish-reverse.json
    sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.agent.impl.CompactSimpleReplicationAgentFactory-publish.json
    sling/trunk/contrib/extensions/replication/it/src/test/java/org/apache/sling/replication/it/ReplicationIntegrationTestBase.java

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/DefaultReplicationComponentProvider.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/DefaultReplicationComponentProvider.java?rev=1627255&r1=1627254&r2=1627255&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/DefaultReplicationComponentProvider.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/DefaultReplicationComponentProvider.java Wed Sep 24 08:43:25 2014
@@ -28,7 +28,8 @@ import org.apache.sling.replication.queu
 import org.apache.sling.replication.rule.ReplicationRuleEngine;
 import org.apache.sling.replication.serialization.ReplicationPackageBuilder;
 import org.apache.sling.replication.serialization.impl.vlt.FileVaultReplicationPackageBuilderFactory;
-import org.apache.sling.replication.transport.authentication.TransportAuthenticationProviderFactory;
+import org.apache.sling.replication.transport.authentication.TransportAuthenticationProvider;
+import org.apache.sling.replication.transport.authentication.impl.UserCredentialsTransportAuthenticationProvider;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -40,7 +41,7 @@ import org.slf4j.LoggerFactory;
         @Reference(name = "replicationPackageExporter", referenceInterface = ReplicationPackageExporter.class, cardinality = ReferenceCardinality.OPTIONAL_MULTIPLE, policy = ReferencePolicy.DYNAMIC),
         @Reference(name = "replicationQueueProvider", referenceInterface = ReplicationQueueProvider.class, cardinality = ReferenceCardinality.OPTIONAL_MULTIPLE, policy = ReferencePolicy.DYNAMIC),
         @Reference(name = "replicationQueueDistributionStrategy", referenceInterface = ReplicationQueueDistributionStrategy.class, cardinality = ReferenceCardinality.OPTIONAL_MULTIPLE, policy = ReferencePolicy.DYNAMIC),
-        @Reference(name = "transportAuthenticationProviderFactory", referenceInterface = TransportAuthenticationProviderFactory.class, cardinality = ReferenceCardinality.OPTIONAL_MULTIPLE, policy = ReferencePolicy.DYNAMIC),
+        @Reference(name = "transportAuthenticationProvider", referenceInterface = TransportAuthenticationProvider.class, cardinality = ReferenceCardinality.OPTIONAL_MULTIPLE, policy = ReferencePolicy.DYNAMIC),
         @Reference(name = "replicationComponentListener", referenceInterface = ReplicationComponentListener.class, cardinality = ReferenceCardinality.OPTIONAL_MULTIPLE, policy = ReferencePolicy.DYNAMIC)
 })
 public class DefaultReplicationComponentProvider implements ReplicationComponentProvider {
@@ -65,7 +66,7 @@ public class DefaultReplicationComponent
     Map<String, ReplicationComponentListener> replicationComponentListenerMap = new ConcurrentHashMap<String, ReplicationComponentListener>();
     Map<String, ReplicationQueueProvider> replicationQueueProviderMap = new ConcurrentHashMap<String, ReplicationQueueProvider>();
     Map<String, ReplicationQueueDistributionStrategy> replicationQueueDistributionStrategyMap = new ConcurrentHashMap<String, ReplicationQueueDistributionStrategy>();
-    Map<String, TransportAuthenticationProviderFactory> transportAuthenticationProviderFactoryMap = new ConcurrentHashMap<String, TransportAuthenticationProviderFactory>();
+    Map<String, TransportAuthenticationProvider> transportAuthenticationProviderMap = new ConcurrentHashMap<String, TransportAuthenticationProvider>();
     Map<String, ReplicationPackageImporter> replicationPackageImporterMap = new ConcurrentHashMap<String, ReplicationPackageImporter>();
     Map<String, ReplicationPackageExporter> replicationPackageExporterMap = new ConcurrentHashMap<String, ReplicationPackageExporter>();
 
@@ -78,8 +79,8 @@ public class DefaultReplicationComponent
             return (ComponentType) replicationQueueProviderMap.get(componentName);
         } else if (type.isAssignableFrom(ReplicationQueueDistributionStrategy.class)) {
             return (ComponentType) replicationQueueDistributionStrategyMap.get(componentName);
-        } else if (type.isAssignableFrom(TransportAuthenticationProviderFactory.class)) {
-            return (ComponentType) transportAuthenticationProviderFactoryMap.get(componentName);
+        } else if (type.isAssignableFrom(TransportAuthenticationProvider.class)) {
+            return (ComponentType) transportAuthenticationProviderMap.get(componentName);
         }
 
         return null;
@@ -158,13 +159,13 @@ public class DefaultReplicationComponent
             ReplicationPackageBuilder packageBuilder = createBuilder(builderProperties);
             return LocalReplicationPackageExporterFactory.getInstance(packageBuilder);
         } else if ("remote".equals(factory)) {
-            Map<String, Object> authenticationFactoryProperties = extractMap("authenticationFactory", properties);
-            TransportAuthenticationProviderFactory authenticationProviderFactory = createAuthenticationProviderFactory(authenticationFactoryProperties, componentProvider);
+            Map<String, Object> authenticationProviderProperties = extractMap("authenticationProvider", properties);
+            TransportAuthenticationProvider authenticationProvider = createTransportAuthenticationProvider(authenticationProviderProperties, componentProvider);
 
             Map<String, Object> builderProperties = extractMap("packageBuilder", properties);
             ReplicationPackageBuilder packageBuilder = createBuilder(builderProperties);
 
-            return RemoteReplicationPackageExporterFactory.getInstance(properties, packageBuilder, authenticationProviderFactory);
+            return RemoteReplicationPackageExporterFactory.getInstance(properties, packageBuilder, authenticationProvider);
         }
 
         return null;
@@ -182,9 +183,10 @@ public class DefaultReplicationComponent
             ReplicationPackageBuilder packageBuilder = createBuilder(builderProperties);
             return LocalReplicationPackageImporterFactory.getInstance(properties, packageBuilder, replicationEventFactory);
         } else if ("remote".equals(factory)) {
-            Map<String, Object> authenticationFactoryProperties = extractMap("authenticationFactory", properties);
-            TransportAuthenticationProviderFactory authenticationProviderFactory = createAuthenticationProviderFactory(authenticationFactoryProperties, componentProvider);
-            return RemoteReplicationPackageImporterFactory.getInstance(properties, authenticationProviderFactory);
+            Map<String, Object> authenticationProviderProperties = extractMap("authenticationProvider", properties);
+            TransportAuthenticationProvider authenticationProvider = createTransportAuthenticationProvider(authenticationProviderProperties, componentProvider);
+
+            return RemoteReplicationPackageImporterFactory.getInstance(properties, authenticationProvider);
         }
 
         return null;
@@ -213,14 +215,17 @@ public class DefaultReplicationComponent
         return null;
     }
 
-    public TransportAuthenticationProviderFactory createAuthenticationProviderFactory(Map<String, Object> properties, ReplicationComponentProvider componentProvider) {
+    public TransportAuthenticationProvider createTransportAuthenticationProvider(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(TransportAuthenticationProviderFactory.class, name);
+            return componentProvider.getComponent(TransportAuthenticationProvider.class, name);
 
         }
+        else if ("user".equals(factory)) {
+            return new UserCredentialsTransportAuthenticationProvider(properties);
+        }
 
         return null;
     }
@@ -284,23 +289,23 @@ public class DefaultReplicationComponent
         }
     }
 
-    private void bindTransportAuthenticationProviderFactory(TransportAuthenticationProviderFactory transportAuthenticationProviderFactory, Map<String, Object> config) {
+    private void bindTransportAuthenticationProvider(TransportAuthenticationProvider transportAuthenticationProvider, Map<String, Object> config) {
 
         String name = (String) config.get("name");
         if (name != null) {
-            transportAuthenticationProviderFactoryMap.put(name, transportAuthenticationProviderFactory);
-            notifyListeners(transportAuthenticationProviderFactory, name, true);
+            transportAuthenticationProviderMap.put(name, transportAuthenticationProvider);
+            notifyListeners(transportAuthenticationProvider, name, true);
 
         }
 
     }
 
-    private void unbindTransportAuthenticationProviderFactory(TransportAuthenticationProviderFactory transportAuthenticationProviderFactory, Map<String, Object> config) {
+    private void unbindTransportAuthenticationProvider(TransportAuthenticationProvider transportAuthenticationProvider, Map<String, Object> config) {
 
         String name = (String) config.get("name");
         if (name != null) {
-            transportAuthenticationProviderFactoryMap.remove(name);
-            notifyListeners(transportAuthenticationProviderFactory, name, false);
+            transportAuthenticationProviderMap.remove(name);
+            notifyListeners(transportAuthenticationProvider, name, false);
 
         }
     }

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/RemoteReplicationPackageExporter.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/RemoteReplicationPackageExporter.java?rev=1627255&r1=1627254&r2=1627255&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/RemoteReplicationPackageExporter.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/RemoteReplicationPackageExporter.java Wed Sep 24 08:43:25 2014
@@ -32,7 +32,6 @@ import org.apache.sling.replication.seri
 import org.apache.sling.replication.serialization.ReplicationPackageBuildingException;
 import org.apache.sling.replication.transport.ReplicationTransportHandler;
 import org.apache.sling.replication.transport.authentication.TransportAuthenticationProvider;
-import org.apache.sling.replication.transport.authentication.TransportAuthenticationProviderFactory;
 import org.apache.sling.replication.transport.impl.MultipleEndpointReplicationTransportHandler;
 import org.apache.sling.replication.transport.impl.SimpleHttpReplicationTransportHandler;
 import org.apache.sling.replication.transport.impl.TransportEndpointStrategyType;
@@ -46,14 +45,13 @@ public class RemoteReplicationPackageExp
 
     ReplicationTransportHandler transportHandler;
 
-    public RemoteReplicationPackageExporter(ReplicationPackageBuilder packageBuilder, TransportAuthenticationProviderFactory transportAuthenticationProviderFactory,
-                                            Map<String, String> authenticationProperties,
+    public RemoteReplicationPackageExporter(ReplicationPackageBuilder packageBuilder, TransportAuthenticationProvider transportAuthenticationProvider,
                                             String[] endpoints,
                                             TransportEndpointStrategyType transportEndpointStrategyType,
                                             int pollItems) {
         this.packageBuilder = packageBuilder;
 
-        TransportAuthenticationProvider<Executor, Executor> transportAuthenticationProvider = (TransportAuthenticationProvider<Executor, Executor>) transportAuthenticationProviderFactory.createAuthenticationProvider(authenticationProperties);
+
         List<ReplicationTransportHandler> transportHandlers = new ArrayList<ReplicationTransportHandler>();
 
         for (String endpoint : endpoints) {
@@ -66,10 +64,6 @@ public class RemoteReplicationPackageExp
                 transportEndpointStrategyType);
     }
 
-    @Deactivate
-    protected void deactivate() {
-    }
-
     public List<ReplicationPackage> exportPackage(ReplicationRequest replicationRequest) throws ReplicationPackageBuildingException {
         try {
             return transportHandler.retrievePackages(replicationRequest);

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/RemoteReplicationPackageExporterFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/RemoteReplicationPackageExporterFactory.java?rev=1627255&r1=1627254&r2=1627255&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/RemoteReplicationPackageExporterFactory.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/RemoteReplicationPackageExporterFactory.java Wed Sep 24 08:43:25 2014
@@ -36,7 +36,7 @@ import org.apache.sling.replication.pack
 import org.apache.sling.replication.packaging.ReplicationPackageExporter;
 import org.apache.sling.replication.serialization.ReplicationPackageBuilder;
 import org.apache.sling.replication.serialization.ReplicationPackageBuildingException;
-import org.apache.sling.replication.transport.authentication.TransportAuthenticationProviderFactory;
+import org.apache.sling.replication.transport.authentication.TransportAuthenticationProvider;
 import org.apache.sling.replication.transport.impl.ReplicationTransportConstants;
 import org.apache.sling.replication.transport.impl.TransportEndpointStrategyType;
 import org.slf4j.Logger;
@@ -59,9 +59,9 @@ public class RemoteReplicationPackageExp
     @Property(value = "exporters/remote", propertyPrivate = true)
     private static final String FACTORY_NAME = "factoryName";
 
-    @Property(name = ReplicationTransportConstants.TRANSPORT_AUTHENTICATION_FACTORY)
+    @Property(name = ReplicationTransportConstants.TRANSPORT_AUTHENTICATION_PROVIDER_TARGET)
     @Reference(name = "TransportAuthenticationProviderFactory", policy = ReferencePolicy.DYNAMIC)
-    private TransportAuthenticationProviderFactory transportAuthenticationProviderFactory;
+    private TransportAuthenticationProvider transportAuthenticationProvider;
 
     @Property(label = "Target ReplicationPackageBuilder", name = "ReplicationPackageBuilder.target")
     @Reference(name = "ReplicationPackageBuilder", policy = ReferencePolicy.DYNAMIC)
@@ -85,21 +85,17 @@ public class RemoteReplicationPackageExp
 
     @Activate
     protected void activate(Map<String, Object> config) throws Exception {
-        exporter = getInstance(config, packageBuilder, transportAuthenticationProviderFactory);
+        exporter = getInstance(config, packageBuilder, transportAuthenticationProvider);
     }
 
     public static ReplicationPackageExporter getInstance(Map<String, Object> config,
-                                                         ReplicationPackageBuilder packageBuilder, TransportAuthenticationProviderFactory transportAuthenticationProviderFactory) {
-        if (transportAuthenticationProviderFactory == null) {
-            throw new IllegalArgumentException("transportAuthenticationProviderFactory is required");
-        }
+                                                         ReplicationPackageBuilder packageBuilder,
+                                                         TransportAuthenticationProvider transportAuthenticationProvider) {
 
         if (packageBuilder == null) {
             throw new IllegalArgumentException("packageBuilder is required");
         }
 
-        Map<String, String> authenticationProperties = PropertiesUtil.toMap(config.get(ReplicationTransportConstants.AUTHENTICATION_PROPERTIES), new String[0]);
-
         String[] endpoints = PropertiesUtil.toStringArray(config.get(ReplicationTransportConstants.ENDPOINTS), new String[0]);
 
         int pollItems = PropertiesUtil.toInteger(config.get(POLL_ITEMS), 1);
@@ -107,8 +103,7 @@ public class RemoteReplicationPackageExp
         String endpointStrategyName = PropertiesUtil.toString(config.get(ReplicationTransportConstants.ENDPOINT_STRATEGY), "One");
         TransportEndpointStrategyType transportEndpointStrategyType = TransportEndpointStrategyType.valueOf(endpointStrategyName);
 
-        return new RemoteReplicationPackageExporter(packageBuilder, transportAuthenticationProviderFactory,
-                authenticationProperties,
+        return new RemoteReplicationPackageExporter(packageBuilder, transportAuthenticationProvider,
                 endpoints,
                 transportEndpointStrategyType,
                 pollItems);

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/AdvancedRemoteReplicationPackageImporter.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/AdvancedRemoteReplicationPackageImporter.java?rev=1627255&r1=1627254&r2=1627255&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/AdvancedRemoteReplicationPackageImporter.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/AdvancedRemoteReplicationPackageImporter.java Wed Sep 24 08:43:25 2014
@@ -33,7 +33,6 @@ import org.apache.sling.replication.pack
 import org.apache.sling.replication.serialization.ReplicationPackageReadingException;
 import org.apache.sling.replication.transport.ReplicationTransportHandler;
 import org.apache.sling.replication.transport.authentication.TransportAuthenticationProvider;
-import org.apache.sling.replication.transport.authentication.TransportAuthenticationProviderFactory;
 import org.apache.sling.replication.transport.impl.AdvancedHttpReplicationTransportHandler;
 import org.apache.sling.replication.transport.impl.MultipleEndpointReplicationTransportHandler;
 import org.apache.sling.replication.transport.impl.ReplicationTransportConstants;
@@ -55,9 +54,9 @@ public class AdvancedRemoteReplicationPa
 
     private final Logger log = LoggerFactory.getLogger(getClass());
 
-    @Property(name = ReplicationTransportConstants.TRANSPORT_AUTHENTICATION_FACTORY)
-    @Reference(name = "TransportAuthenticationProviderFactory", policy = ReferencePolicy.DYNAMIC)
-    private TransportAuthenticationProviderFactory transportAuthenticationProviderFactory;
+    @Property(name = ReplicationTransportConstants.TRANSPORT_AUTHENTICATION_PROVIDER_TARGET)
+    @Reference(name = "TransportAuthenticationProvider", policy = ReferencePolicy.DYNAMIC)
+    private TransportAuthenticationProvider transportAuthenticationProvider;
 
     @Property(options = {
             @PropertyOption(name = "All",
@@ -90,10 +89,6 @@ public class AdvancedRemoteReplicationPa
     @Activate
     protected void activate(BundleContext context, Map<String, ?> config) throws Exception {
 
-        Map<String, String> authenticationProperties = PropertiesUtil.toMap(config.get(ReplicationTransportConstants.AUTHENTICATION_PROPERTIES), new String[0]);
-
-        TransportAuthenticationProvider<Executor, Executor> transportAuthenticationProvider = (TransportAuthenticationProvider<Executor, Executor>)
-                transportAuthenticationProviderFactory.createAuthenticationProvider(authenticationProperties);
         String[] endpoints = PropertiesUtil.toStringArray(config.get(ReplicationTransportConstants.ENDPOINTS), new String[0]);
         String endpointStrategyName = PropertiesUtil.toString(config.get(ReplicationTransportConstants.ENDPOINT_STRATEGY),
                 TransportEndpointStrategyType.One.name());

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/RemoteReplicationPackageImporter.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/RemoteReplicationPackageImporter.java?rev=1627255&r1=1627254&r2=1627255&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/RemoteReplicationPackageImporter.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/RemoteReplicationPackageImporter.java Wed Sep 24 08:43:25 2014
@@ -18,9 +18,7 @@
  */
 package org.apache.sling.replication.packaging.impl.importer;
 
-import org.apache.felix.scr.annotations.*;
 import org.apache.http.client.fluent.Executor;
-import org.apache.sling.commons.osgi.PropertiesUtil;
 import org.apache.sling.replication.communication.ReplicationEndpoint;
 import org.apache.sling.replication.event.ReplicationEventFactory;
 import org.apache.sling.replication.packaging.ReplicationPackage;
@@ -28,12 +26,9 @@ import org.apache.sling.replication.pack
 import org.apache.sling.replication.serialization.ReplicationPackageReadingException;
 import org.apache.sling.replication.transport.ReplicationTransportHandler;
 import org.apache.sling.replication.transport.authentication.TransportAuthenticationProvider;
-import org.apache.sling.replication.transport.authentication.TransportAuthenticationProviderFactory;
 import org.apache.sling.replication.transport.impl.MultipleEndpointReplicationTransportHandler;
-import org.apache.sling.replication.transport.impl.ReplicationTransportConstants;
 import org.apache.sling.replication.transport.impl.SimpleHttpReplicationTransportHandler;
 import org.apache.sling.replication.transport.impl.TransportEndpointStrategyType;
-import org.osgi.framework.BundleContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -49,21 +44,17 @@ public class RemoteReplicationPackageImp
 
     private final Logger log = LoggerFactory.getLogger(getClass());
 
-    private TransportAuthenticationProviderFactory transportAuthenticationProviderFactory;
+    private TransportAuthenticationProvider transportAuthenticationProviderFactory;
 
     private ReplicationEventFactory replicationEventFactory;
 
     private ReplicationTransportHandler transportHandler;
 
-    public RemoteReplicationPackageImporter(TransportAuthenticationProviderFactory transportAuthenticationProviderFactory,
-                                            Map<String, String> authenticationProperties,
+    public RemoteReplicationPackageImporter(TransportAuthenticationProvider transportAuthenticationProvider,
                                             String[] endpoints,
                                             TransportEndpointStrategyType transportEndpointStrategyType) {
 
 
-        TransportAuthenticationProvider<Executor, Executor> transportAuthenticationProvider = (TransportAuthenticationProvider<Executor, Executor>)
-                transportAuthenticationProviderFactory.createAuthenticationProvider(authenticationProperties);
-
 
         List<ReplicationTransportHandler> transportHandlers = new ArrayList<ReplicationTransportHandler>();
 

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/RemoteReplicationPackageImporterFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/RemoteReplicationPackageImporterFactory.java?rev=1627255&r1=1627254&r2=1627255&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/RemoteReplicationPackageImporterFactory.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/RemoteReplicationPackageImporterFactory.java Wed Sep 24 08:43:25 2014
@@ -19,24 +19,16 @@
 package org.apache.sling.replication.packaging.impl.importer;
 
 import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
 import java.util.Map;
 
 import org.apache.felix.scr.annotations.*;
-import org.apache.http.client.fluent.Executor;
 import org.apache.sling.commons.osgi.PropertiesUtil;
-import org.apache.sling.replication.communication.ReplicationEndpoint;
 import org.apache.sling.replication.event.ReplicationEventFactory;
 import org.apache.sling.replication.packaging.ReplicationPackage;
 import org.apache.sling.replication.packaging.ReplicationPackageImporter;
 import org.apache.sling.replication.serialization.ReplicationPackageReadingException;
-import org.apache.sling.replication.transport.ReplicationTransportHandler;
 import org.apache.sling.replication.transport.authentication.TransportAuthenticationProvider;
-import org.apache.sling.replication.transport.authentication.TransportAuthenticationProviderFactory;
-import org.apache.sling.replication.transport.impl.MultipleEndpointReplicationTransportHandler;
 import org.apache.sling.replication.transport.impl.ReplicationTransportConstants;
-import org.apache.sling.replication.transport.impl.SimpleHttpReplicationTransportHandler;
 import org.apache.sling.replication.transport.impl.TransportEndpointStrategyType;
 import org.osgi.framework.BundleContext;
 import org.slf4j.Logger;
@@ -57,9 +49,9 @@ public class RemoteReplicationPackageImp
     @Property
     private static final String NAME = "name";
 
-    @Property(name = ReplicationTransportConstants.TRANSPORT_AUTHENTICATION_FACTORY)
+    @Property(name = ReplicationTransportConstants.TRANSPORT_AUTHENTICATION_PROVIDER_TARGET)
     @Reference(name = "TransportAuthenticationProviderFactory", policy = ReferencePolicy.DYNAMIC)
-    private TransportAuthenticationProviderFactory transportAuthenticationProviderFactory;
+    private TransportAuthenticationProvider transportAuthenticationProvider;
 
     @Property(options = {
             @PropertyOption(name = "All",
@@ -80,18 +72,16 @@ public class RemoteReplicationPackageImp
     @Activate
     protected void activate(BundleContext context, Map<String, Object> config) throws Exception {
 
-       importer = getInstance(config, transportAuthenticationProviderFactory);
+       importer = getInstance(config, transportAuthenticationProvider);
 
     }
 
-    public static RemoteReplicationPackageImporter getInstance(Map<String, Object> config, TransportAuthenticationProviderFactory transportAuthenticationProviderFactory) {
+    public static RemoteReplicationPackageImporter getInstance(Map<String, Object> config, TransportAuthenticationProvider transportAuthenticationProvider) {
 
-        if (transportAuthenticationProviderFactory == null) {
+        if (transportAuthenticationProvider == null) {
             throw new IllegalArgumentException("transportAuthenticationProviderFactory is required");
         }
 
-        Map<String, String> authenticationProperties = PropertiesUtil.toMap(config.get(ReplicationTransportConstants.AUTHENTICATION_PROPERTIES), new String[0]);
-
         String[] endpoints = PropertiesUtil.toStringArray(config.get(ReplicationTransportConstants.ENDPOINTS), new String[0]);
 
         String endpointStrategyName = PropertiesUtil.toString(config.get(ENDPOINT_STRATEGY),
@@ -99,8 +89,7 @@ public class RemoteReplicationPackageImp
         TransportEndpointStrategyType transportEndpointStrategyType = TransportEndpointStrategyType.valueOf(endpointStrategyName);
 
 
-        return new RemoteReplicationPackageImporter(transportAuthenticationProviderFactory,
-                authenticationProperties, endpoints, transportEndpointStrategyType);
+        return new RemoteReplicationPackageImporter(transportAuthenticationProvider, endpoints, transportEndpointStrategyType);
 
     }
 

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/authentication/impl/NopTransportAuthenticationProvider.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/authentication/impl/NopTransportAuthenticationProvider.java?rev=1627255&r1=1627254&r2=1627255&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/authentication/impl/NopTransportAuthenticationProvider.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/authentication/impl/NopTransportAuthenticationProvider.java Wed Sep 24 08:43:25 2014
@@ -28,7 +28,7 @@ import org.apache.sling.replication.tran
 public class NopTransportAuthenticationProvider implements TransportAuthenticationProvider<Object, Object> {
 
     public Object authenticate(Object authenticable, TransportAuthenticationContext context)
-                    throws TransportAuthenticationException {
+            throws TransportAuthenticationException {
         return authenticable;
     }
 

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/authentication/impl/RepositoryTransportAuthenticationProvider.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/authentication/impl/RepositoryTransportAuthenticationProvider.java?rev=1627255&r1=1627254&r2=1627255&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/authentication/impl/RepositoryTransportAuthenticationProvider.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/authentication/impl/RepositoryTransportAuthenticationProvider.java Wed Sep 24 08:43:25 2014
@@ -18,10 +18,8 @@
  */
 package org.apache.sling.replication.transport.authentication.impl;
 
-import javax.jcr.Credentials;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
-import javax.jcr.SimpleCredentials;
 
 import org.apache.sling.jcr.api.SlingRepository;
 import org.apache.sling.replication.transport.authentication.TransportAuthenticationContext;
@@ -34,10 +32,10 @@ public class RepositoryTransportAuthenti
 
     private final Logger log = LoggerFactory.getLogger(getClass());
 
-    private final Credentials credentials;
+    private final String serviceName;
 
-    public RepositoryTransportAuthenticationProvider(String user, String password) {
-        this.credentials = new SimpleCredentials(user, password.toCharArray());
+    public RepositoryTransportAuthenticationProvider(String serviceName) {
+        this.serviceName = serviceName;
     }
 
     public boolean canAuthenticate(Class<?> authenticable) {
@@ -47,25 +45,28 @@ public class RepositoryTransportAuthenti
     public Session authenticate(SlingRepository authenticable, TransportAuthenticationContext context)
             throws TransportAuthenticationException {
         String path = context.getAttribute("path", String.class);
-        if (path != null) {
-            Session session = null;
-            try {
-                session = authenticable.login(credentials);
-                if (!session.nodeExists(path)) {
-                    throw new TransportAuthenticationException("failed to read path " + path);
-                } else {
-                    log.info("authenticated path {} ", path);
-                    return session;
-                }
-            } catch (RepositoryException re) {
-                if (session != null) {
-                    session.logout();
-                }
-                throw new TransportAuthenticationException(re);
-            }
-        } else {
+
+        if (path == null) {
             throw new TransportAuthenticationException(
                     "the path to authenticate is missing from the context");
+
+        }
+
+        Session session = null;
+        try {
+            session = authenticable.loginService(serviceName, null);
+            if (!session.nodeExists(path)) {
+                session.logout();
+                throw new TransportAuthenticationException("failed to read path " + path);
+            }
+
+            log.info("authenticated path {} ", path);
+            return session;
+        } catch (RepositoryException re) {
+            if (session != null) {
+                session.logout();
+            }
+            throw new TransportAuthenticationException(re);
         }
     }
 

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/authentication/impl/UserCredentialsTransportAuthenticationProvider.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/authentication/impl/UserCredentialsTransportAuthenticationProvider.java?rev=1627255&r1=1627254&r2=1627255&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/authentication/impl/UserCredentialsTransportAuthenticationProvider.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/authentication/impl/UserCredentialsTransportAuthenticationProvider.java Wed Sep 24 08:43:25 2014
@@ -20,6 +20,7 @@ package org.apache.sling.replication.tra
 
 import org.apache.http.HttpHost;
 import org.apache.http.client.fluent.Executor;
+import org.apache.sling.commons.osgi.PropertiesUtil;
 import org.apache.sling.replication.communication.ReplicationEndpoint;
 import org.apache.sling.replication.transport.authentication.TransportAuthenticationContext;
 import org.apache.sling.replication.transport.authentication.TransportAuthenticationException;
@@ -27,15 +28,30 @@ import org.apache.sling.replication.tran
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.Map;
+
 public class UserCredentialsTransportAuthenticationProvider implements
         TransportAuthenticationProvider<Executor, Executor> {
 
+    public final static String USERNAME = "username";
+    public final static String PASSWORD = "password";
+
     private final Logger log = LoggerFactory.getLogger(getClass());
 
     private final String username;
 
     private final String password;
 
+
+    public UserCredentialsTransportAuthenticationProvider(Map<String, Object> config) {
+        username = PropertiesUtil.toString(config.get(USERNAME), "").trim();
+        password = PropertiesUtil.toString(config.get(PASSWORD), "").trim();
+
+        if (username.length() == 0 || password.length() == 0) {
+            throw new IllegalArgumentException("Username and password are required");
+        }
+    }
+
     public UserCredentialsTransportAuthenticationProvider(String username, String password) {
         this.username = username;
         this.password = password;

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/authentication/impl/UserCredentialsTransportAuthenticationProviderFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/authentication/impl/UserCredentialsTransportAuthenticationProviderFactory.java?rev=1627255&r1=1627254&r2=1627255&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/authentication/impl/UserCredentialsTransportAuthenticationProviderFactory.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/authentication/impl/UserCredentialsTransportAuthenticationProviderFactory.java Wed Sep 24 08:43:25 2014
@@ -18,39 +18,58 @@
  */
 package org.apache.sling.replication.transport.authentication.impl;
 
-import java.util.Map;
-
 import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.ConfigurationPolicy;
 import org.apache.felix.scr.annotations.Property;
 import org.apache.felix.scr.annotations.Service;
+import org.apache.http.HttpHost;
 import org.apache.http.client.fluent.Executor;
+import org.apache.sling.commons.osgi.PropertiesUtil;
+import org.apache.sling.replication.communication.ReplicationEndpoint;
+import org.apache.sling.replication.packaging.ReplicationPackageExporter;
+import org.apache.sling.replication.transport.authentication.TransportAuthenticationContext;
+import org.apache.sling.replication.transport.authentication.TransportAuthenticationException;
 import org.apache.sling.replication.transport.authentication.TransportAuthenticationProvider;
-import org.apache.sling.replication.transport.authentication.TransportAuthenticationProviderFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.Map;
+
+@Component(label = "User Credentials based Transport Authentication Provider Factory",
+        configurationFactory = true,
+        specVersion = "1.1",
+        policy = ConfigurationPolicy.REQUIRE)
+@Service(value = TransportAuthenticationProvider.class)
+public class UserCredentialsTransportAuthenticationProviderFactory implements
+        TransportAuthenticationProvider<Executor, Executor> {
+
+    @Property
+    public final static String USERNAME = UserCredentialsTransportAuthenticationProvider.USERNAME;
+
+    @Property
+    public final static String PASSWORD = UserCredentialsTransportAuthenticationProvider.PASSWORD;
+
+    private final Logger log = LoggerFactory.getLogger(getClass());
+
+
+
+    private UserCredentialsTransportAuthenticationProvider transportAuthenticationProvider;
+
+
+    public void activate(Map<String, Object> config) {
+        transportAuthenticationProvider = new UserCredentialsTransportAuthenticationProvider(config);
+
+    }
+
+
 
-@Component(immediate = true, label = "Factory for User based Transport Authentication Providers")
-@Service(value = TransportAuthenticationProviderFactory.class)
-@Property(name = "name", value = UserCredentialsTransportAuthenticationProviderFactory.TYPE)
-public class UserCredentialsTransportAuthenticationProviderFactory implements TransportAuthenticationProviderFactory {
-
-    public static final String TYPE = "user";
-
-    public TransportAuthenticationProvider<Executor, Executor> createAuthenticationProvider(
-            Map<String, String> properties) {
-        String user = null;
-        Object userProp = properties.get("user");
-        if (userProp != null) {
-            user = String.valueOf(userProp);
-        }
-        String password = null;
-        Object passwordProp = properties.get("password");
-        if (passwordProp != null) {
-            password = String.valueOf(passwordProp);
-        }
-        return new UserCredentialsTransportAuthenticationProvider(user, password);
+    public Executor authenticate(Executor authenticable, TransportAuthenticationContext context)
+            throws TransportAuthenticationException {
+        return transportAuthenticationProvider.authenticate(authenticable, context);
     }
 
-    public String getType() {
-        return TYPE;
+    public boolean canAuthenticate(Class<?> authenticable) {
+        return transportAuthenticationProvider.canAuthenticate(authenticable);
     }
 
 }

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/impl/ReplicationTransportConstants.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/impl/ReplicationTransportConstants.java?rev=1627255&r1=1627254&r2=1627255&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/impl/ReplicationTransportConstants.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/impl/ReplicationTransportConstants.java Wed Sep 24 08:43:25 2014
@@ -23,11 +23,9 @@ package org.apache.sling.replication.tra
  */
 public class ReplicationTransportConstants {
 
-    public static final String TRANSPORT_AUTHENTICATION_FACTORY = "TransportAuthenticationProviderFactory.target";
+    public static final String TRANSPORT_AUTHENTICATION_PROVIDER_TARGET = "TransportAuthenticationProvider.target";
 
     public static final String ENDPOINTS = "endpoints";
 
     public static final String ENDPOINT_STRATEGY = "endpoints.strategy";
-
-    public static final String AUTHENTICATION_PROPERTIES = "authentication.properties";
 }

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/impl/SimpleHttpReplicationTransportHandler.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/impl/SimpleHttpReplicationTransportHandler.java?rev=1627255&r1=1627254&r2=1627255&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/impl/SimpleHttpReplicationTransportHandler.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/impl/SimpleHttpReplicationTransportHandler.java Wed Sep 24 08:43:25 2014
@@ -58,6 +58,11 @@ public class SimpleHttpReplicationTransp
                                                  ReplicationEndpoint replicationEndpoint,
                                                  ReplicationPackageBuilder packageBuilder,
                                                  int maxNumberOfPackages) {
+
+        if (transportAuthenticationProvider == null) {
+            throw new IllegalArgumentException("The authentication provider is required");
+        }
+
         this.transportAuthenticationProvider = transportAuthenticationProvider;
         this.replicationEndpoint = replicationEndpoint;
         this.packageBuilder = packageBuilder;
@@ -66,12 +71,15 @@ public class SimpleHttpReplicationTransp
 
     public void deliverPackage(ReplicationPackage replicationPackage) throws ReplicationTransportException {
         log.info("delivering package {} to {} using auth {}",
-                new Object[]{replicationPackage.getId(),
+                new Object[]{
+                        replicationPackage.getId(),
                         replicationEndpoint.getUri(),
-                        transportAuthenticationProvider});
+                        transportAuthenticationProvider
+                });
 
         try {
             Executor executor = Executor.newInstance();
+
             TransportAuthenticationContext context = new TransportAuthenticationContext();
             context.addAttribute("endpoint", replicationEndpoint);
             executor =  transportAuthenticationProvider.authenticate(executor, context);
@@ -96,7 +104,10 @@ public class SimpleHttpReplicationTransp
             if (response != null) {
                 Content content = response.returnContent();
                 log.info("Replication content of type {} for {} delivered: {}", new Object[]{
-                        replicationPackage.getType(), Arrays.toString(replicationPackage.getPaths()), content});
+                        replicationPackage.getType(),
+                        Arrays.toString(replicationPackage.getPaths()),
+                        content
+                });
             }
             else {
                 throw new IOException("response is empty");
@@ -129,7 +140,8 @@ public class SimpleHttpReplicationTransp
             try {
 
                 int polls = 0;
-                while ((httpResponse = executor.execute(req).returnResponse()).getStatusLine().getStatusCode() == 200
+                while ((httpResponse = executor.execute(req).returnResponse())
+                        .getStatusLine().getStatusCode() == 200
                         && polls < maxNumberOfPackages) {
                     ReplicationPackage responsePackage = packageBuilder.readPackage(httpResponse.getEntity().getContent());
 
@@ -153,7 +165,6 @@ public class SimpleHttpReplicationTransp
         }
         catch (Exception ex) {
             throw new ReplicationTransportException(ex);
-
         }
 
     }

Modified: sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.agent.impl.CompactSimpleReplicationAgentFactory-publish-reverse.json
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.agent.impl.CompactSimpleReplicationAgentFactory-publish-reverse.json?rev=1627255&r1=1627254&r2=1627255&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.agent.impl.CompactSimpleReplicationAgentFactory-publish-reverse.json (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.agent.impl.CompactSimpleReplicationAgentFactory-publish-reverse.json Wed Sep 24 08:43:25 2014
@@ -5,12 +5,10 @@
 
     "packageExporter" : [
         "type=remote",
-        "authentication.properties[user]=admin",
-        "authentication.properties[password]=admin",
         "endpoints[0]=http://localhost:4503/libs/sling/replication/services/exporters/reverse",
 
-        "authenticationFactory/type=service",
-        "authenticationFactory/name=user",
+        "authenticationProvider/type=service",
+        "authenticationProvider/name=publishAdmin",
 
         "packageBuilder/type=vlt",
         "packageBuilder/servicename=replicationService"

Modified: sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.agent.impl.CompactSimpleReplicationAgentFactory-publish.json
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.agent.impl.CompactSimpleReplicationAgentFactory-publish.json?rev=1627255&r1=1627254&r2=1627255&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.agent.impl.CompactSimpleReplicationAgentFactory-publish.json (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.agent.impl.CompactSimpleReplicationAgentFactory-publish.json Wed Sep 24 08:43:25 2014
@@ -11,11 +11,11 @@
 
     "packageImporter": [
         "type=remote",
-        "authentication.properties[user]=admin",
-        "authentication.properties[password]=admin",
         "endpoints[0]=http://localhost:4503/libs/sling/replication/services/importers/default",
-        "authenticationFactory/type=service",
-        "authenticationFactory/name=user",
+
+        "authenticationProvider/type=service",
+        "authenticationProvider/name=publishAdmin",
+
         "packageBuilder/type=vlt",
         "packageBuilder/servicename=replicationService"
     ],

Added: sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.transport.authentication.impl.UserCredentialsTransportAuthenticationProviderFactory-publishAdmin.json
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.transport.authentication.impl.UserCredentialsTransportAuthenticationProviderFactory-publishAdmin.json?rev=1627255&view=auto
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.transport.authentication.impl.UserCredentialsTransportAuthenticationProviderFactory-publishAdmin.json (added)
+++ sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.transport.authentication.impl.UserCredentialsTransportAuthenticationProviderFactory-publishAdmin.json Wed Sep 24 08:43:25 2014
@@ -0,0 +1,6 @@
+{
+    "jcr:primaryType" : "sling:OsgiConfig",
+    "name": "publishAdmin",
+    "username" : "admin",
+    "password" : "admin"
+}
\ No newline at end of file

Added: sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-replication.json
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-replication.json?rev=1627255&view=auto
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-replication.json (added)
+++ sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-replication.json Wed Sep 24 08:43:25 2014
@@ -0,0 +1,5 @@
+{
+    "jcr:primaryType" : "sling:OsgiConfig",
+    "user.default": "",
+    "user.mapping": "org.apache.sling.replication:replicationService=admin"
+}

Modified: sling/trunk/contrib/extensions/replication/it/src/test/java/org/apache/sling/replication/it/ReplicationIntegrationTestBase.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/it/src/test/java/org/apache/sling/replication/it/ReplicationIntegrationTestBase.java?rev=1627255&r1=1627254&r2=1627255&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/it/src/test/java/org/apache/sling/replication/it/ReplicationIntegrationTestBase.java (original)
+++ sling/trunk/contrib/extensions/replication/it/src/test/java/org/apache/sling/replication/it/ReplicationIntegrationTestBase.java Wed Sep 24 08:43:25 2014
@@ -59,11 +59,9 @@ public abstract class ReplicationIntegra
 
             setAgentProperties(author, "publish",
                     "packageImporter", "type=remote",
-                    "packageImporter", "authentication.properties[user]=admin",
-                    "packageImporter", "authentication.properties[password]=admin",
                     "packageImporter", "endpoints[0]=" + remoteImporterUrl,
-                    "packageImporter", "authenticationFactory/type=service",
-                    "packageImporter", "authenticationFactory/name=user",
+                    "packageImporter", "authenticationProvider/type=service",
+                    "packageImporter", "authenticationProvider/name=publishAdmin",
                     "packageImporter", "packageBuilder/type=vlt",
                     "packageImporter", "packageBuilder/servicename=replicationService");
 
@@ -76,11 +74,9 @@ public abstract class ReplicationIntegra
             String remoteExporterUrl = publish.getServerBaseUrl() + exporterUrl("reverse");
             setAgentProperties(author, "publish-reverse",
                     "packageExporter", "type=remote",
-                    "packageExporter", "authentication.properties[user]=admin",
-                    "packageExporter", "authentication.properties[password]=admin",
                     "packageExporter", "endpoints[0]=" + remoteExporterUrl,
-                    "packageExporter", "authenticationFactory/type=service",
-                    "packageExporter", "authenticationFactory/name=user",
+                    "packageExporter", "authenticationProvider/type=service",
+                    "packageExporter", "authenticationProvider/name=publishAdmin",
                     "packageExporter", "packageBuilder/type=vlt",
                     "packageExporter", "packageBuilder/servicename=replicationService");