diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/factory/CommunityEditionModule.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/factory/CommunityEditionModule.java
index 288eadccf002..3309acdd1dec 100644
--- a/community/kernel/src/main/java/org/neo4j/kernel/impl/factory/CommunityEditionModule.java
+++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/factory/CommunityEditionModule.java
@@ -29,7 +29,6 @@
import org.neo4j.io.pagecache.PageCache;
import org.neo4j.kernel.DatabaseAvailability;
import org.neo4j.kernel.NeoStoreDataSource;
-import org.neo4j.kernel.api.security.AuthManager;
import org.neo4j.kernel.configuration.Config;
import org.neo4j.kernel.impl.api.SchemaWriteGuard;
import org.neo4j.kernel.impl.api.index.RemoveOrphanConstraintIndexesOnStartup;
@@ -210,40 +209,6 @@ else if ( key.equals( "" ) )
throw new IllegalArgumentException( "No lock manager found with the name '" + key + "'." );
}
- public static AuthManager createAuthManager( Config config, LogService logging )
- {
- boolean authEnabled = config.get( GraphDatabaseSettings.auth_enabled );
- if ( !authEnabled )
- {
- return AuthManager.NO_AUTH;
- }
-
- String key = config.get( GraphDatabaseSettings.auth_manager );
- for ( AuthManager.Factory candidate : Service.load( AuthManager.Factory.class ) )
- {
- String candidateId = candidate.getKeys().iterator().next();
- if ( candidateId.equals( key ) )
- {
- return candidate.newInstance( config, logging.getUserLogProvider() );
- }
- else if ( key.equals( "" ) )
- {
- logging.getInternalLog( CommunityFacadeFactory.class )
- .info( "No auth manager implementation specified, defaulting to '" + candidateId + "'" );
- return candidate.newInstance( config, logging.getUserLogProvider() );
- }
- }
-
- if ( key.equals( "" ) )
- {
- logging.getUserLog( CommunityFacadeFactory.class )
- .error( "No auth manager implementation specified and no default could be loaded." );
- throw new IllegalArgumentException( "No auth manager found." );
- }
-
- throw new IllegalArgumentException( "No auth manager found with the name '" + key + "'." );
- }
-
protected TransactionHeaderInformationFactory createHeaderInformationFactory()
{
return TransactionHeaderInformationFactory.DEFAULT;
diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/factory/EditionModule.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/factory/EditionModule.java
index d943ac2b14ac..d1cdbb0bbab4 100644
--- a/community/kernel/src/main/java/org/neo4j/kernel/impl/factory/EditionModule.java
+++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/factory/EditionModule.java
@@ -19,11 +19,12 @@
*/
package org.neo4j.kernel.impl.factory;
-import java.io.File;
-
import org.neo4j.graphdb.DependencyResolver;
+import org.neo4j.graphdb.factory.GraphDatabaseSettings;
+import org.neo4j.helpers.Service;
import org.neo4j.io.pagecache.IOLimiter;
import org.neo4j.kernel.NeoStoreDataSource;
+import org.neo4j.kernel.api.security.AuthManager;
import org.neo4j.kernel.configuration.Config;
import org.neo4j.kernel.impl.api.CommitProcessFactory;
import org.neo4j.kernel.impl.api.SchemaWriteGuard;
@@ -34,6 +35,7 @@
import org.neo4j.kernel.impl.coreapi.CoreAPIAvailabilityGuard;
import org.neo4j.kernel.impl.factory.GraphDatabaseFacadeFactory.Configuration;
import org.neo4j.kernel.impl.locking.Locks;
+import org.neo4j.kernel.impl.logging.LogService;
import org.neo4j.kernel.impl.store.format.RecordFormats;
import org.neo4j.kernel.impl.store.id.IdGeneratorFactory;
import org.neo4j.kernel.impl.transaction.TransactionHeaderInformationFactory;
@@ -102,4 +104,38 @@ protected EditionModule.SPI spi()
{
return null;
}
+
+ public static AuthManager createAuthManager( Config config, LogService logging )
+ {
+ boolean authEnabled = config.get( GraphDatabaseSettings.auth_enabled );
+ if ( !authEnabled )
+ {
+ return AuthManager.NO_AUTH;
+ }
+
+ String key = config.get( GraphDatabaseSettings.auth_manager );
+ for ( AuthManager.Factory candidate : Service.load( AuthManager.Factory.class ) )
+ {
+ String candidateId = candidate.getKeys().iterator().next();
+ if ( candidateId.equals( key ) )
+ {
+ return candidate.newInstance( config, logging.getUserLogProvider() );
+ }
+ else if ( key.equals( "" ) )
+ {
+ logging.getInternalLog( CommunityFacadeFactory.class )
+ .info( "No auth manager implementation specified, defaulting to '" + candidateId + "'" );
+ return candidate.newInstance( config, logging.getUserLogProvider() );
+ }
+ }
+
+ if ( key.equals( "" ) )
+ {
+ logging.getUserLog( CommunityFacadeFactory.class )
+ .error( "No auth manager implementation specified and no default could be loaded." );
+ throw new IllegalArgumentException( "No auth manager found." );
+ }
+
+ throw new IllegalArgumentException( "No auth manager found with the name '" + key + "'." );
+ }
}
diff --git a/enterprise/core-edge/pom.xml b/enterprise/core-edge/pom.xml
index 35764211e0d9..cf3abc83ab52 100644
--- a/enterprise/core-edge/pom.xml
+++ b/enterprise/core-edge/pom.xml
@@ -119,6 +119,12 @@
test
+
+ org.neo4j
+ neo4j-security-enterprise
+ ${project.version}
+
+
org.neo4j
neo4j-logging
diff --git a/enterprise/core-edge/src/main/java/org/neo4j/coreedge/server/core/EnterpriseCoreEditionModule.java b/enterprise/core-edge/src/main/java/org/neo4j/coreedge/server/core/EnterpriseCoreEditionModule.java
index e095fc86ab55..a93fc19cf1f9 100644
--- a/enterprise/core-edge/src/main/java/org/neo4j/coreedge/server/core/EnterpriseCoreEditionModule.java
+++ b/enterprise/core-edge/src/main/java/org/neo4j/coreedge/server/core/EnterpriseCoreEditionModule.java
@@ -450,6 +450,8 @@ fileSystem, new File( clusterStateDirectory, "id-allocation-state" ), "id-alloca
dependencies.satisfyDependency( createKernelData( fileSystem, platformModule.pageCache, storeDir,
config, graphDatabaseFacade, life ) );
+ life.add( dependencies.satisfyDependency( createAuthManager( config, logging ) ) );
+
headerInformationFactory = createHeaderInformationFactory();
schemaWriteGuard = createSchemaWriteGuard();
diff --git a/enterprise/core-edge/src/main/java/org/neo4j/coreedge/server/edge/EnterpriseEdgeEditionModule.java b/enterprise/core-edge/src/main/java/org/neo4j/coreedge/server/edge/EnterpriseEdgeEditionModule.java
index bf9dc609605c..25502ac36ff3 100644
--- a/enterprise/core-edge/src/main/java/org/neo4j/coreedge/server/edge/EnterpriseEdgeEditionModule.java
+++ b/enterprise/core-edge/src/main/java/org/neo4j/coreedge/server/edge/EnterpriseEdgeEditionModule.java
@@ -119,6 +119,9 @@ public EnterpriseEdgeEditionModule( final PlatformModule platformModule,
life.add( dependencies.satisfyDependency(
new DefaultKernelData( fileSystem, pageCache, storeDir, config, graphDatabaseFacade ) ) );
+
+ life.add( dependencies.satisfyDependency( createAuthManager( config, logging ) ) );
+
headerInformationFactory = TransactionHeaderInformationFactory.DEFAULT;
schemaWriteGuard = () -> {};
diff --git a/enterprise/ha/pom.xml b/enterprise/ha/pom.xml
index 1b28c6f99558..b9c65015ac0e 100644
--- a/enterprise/ha/pom.xml
+++ b/enterprise/ha/pom.xml
@@ -100,6 +100,11 @@
${project.version}
test
+
+ org.neo4j
+ neo4j-security-enterprise
+ ${project.version}
+
junit
diff --git a/enterprise/ha/src/main/java/org/neo4j/kernel/ha/factory/HighlyAvailableEditionModule.java b/enterprise/ha/src/main/java/org/neo4j/kernel/ha/factory/HighlyAvailableEditionModule.java
index cac354f05bb8..0dc3c88e0cde 100644
--- a/enterprise/ha/src/main/java/org/neo4j/kernel/ha/factory/HighlyAvailableEditionModule.java
+++ b/enterprise/ha/src/main/java/org/neo4j/kernel/ha/factory/HighlyAvailableEditionModule.java
@@ -478,6 +478,9 @@ public void elected( String role, InstanceId instanceId, URI electedMember )
dependencies.satisfyDependency(
createKernelData( config, platformModule.graphDatabaseFacade, members, fs, platformModule.pageCache,
storeDir, lastUpdateTime, lastTxIdGetter, life ) );
+
+ life.add( dependencies.satisfyDependency( createAuthManager( config, logging ) ) );
+
commitProcessFactory = createCommitProcessFactory( dependencies, logging, monitors, config, paxosLife,
clusterClient, members, platformModule.jobScheduler, master, requestContextFactory,
componentSwitcherContainer, logEntryReader );