From 39168ffccb02a765de9f989b4960c15649c7773c Mon Sep 17 00:00:00 2001 From: Henrik Nyman Date: Fri, 17 Jun 2016 02:06:14 +0200 Subject: [PATCH] Rename FileUserRealm to InternalFlatFileRealm --- .../auth/EnterpriseAuthManagerFactory.java | 6 ++-- ...rRealm.java => InternalFlatFileRealm.java} | 11 +++--- .../enterprise/auth/ShiroAuthManager.java | 4 +-- .../enterprise/auth/AuthProceduresTest.java | 8 ++--- ...st.java => InternalFlatFileRealmTest.java} | 36 +++++++++---------- 5 files changed, 33 insertions(+), 32 deletions(-) rename enterprise/security/src/main/java/org/neo4j/server/security/enterprise/auth/{FileUserRealm.java => InternalFlatFileRealm.java} (97%) rename enterprise/security/src/test/java/org/neo4j/server/security/enterprise/auth/{FileUserRealmTest.java => InternalFlatFileRealmTest.java} (86%) diff --git a/enterprise/security/src/main/java/org/neo4j/server/security/enterprise/auth/EnterpriseAuthManagerFactory.java b/enterprise/security/src/main/java/org/neo4j/server/security/enterprise/auth/EnterpriseAuthManagerFactory.java index 369bf461925e6..b822d51df8fd6 100644 --- a/enterprise/security/src/main/java/org/neo4j/server/security/enterprise/auth/EnterpriseAuthManagerFactory.java +++ b/enterprise/security/src/main/java/org/neo4j/server/security/enterprise/auth/EnterpriseAuthManagerFactory.java @@ -57,7 +57,7 @@ public EnterpriseAuthManagerFactory() @Override public AuthManager newInstance( Config config, LogProvider logProvider ) { - FileUserRealm internalRealm = createInternalRealm( config, logProvider ); + InternalFlatFileRealm internalRealm = createInternalRealm( config, logProvider ); List realms = new ArrayList<>( 2 ); @@ -76,7 +76,7 @@ public AuthManager newInstance( Config config, LogProvider logProvider ) return new MultiRealmAuthManager( internalRealm, realms ); } - private FileUserRealm createInternalRealm( Config config, LogProvider logProvider ) + private InternalFlatFileRealm createInternalRealm( Config config, LogProvider logProvider ) { // Resolve auth store file names File authStoreDir = config.get( DatabaseManagementSystemSettings.auth_store_directory ); @@ -100,7 +100,7 @@ private FileUserRealm createInternalRealm( Config config, LogProvider logProvide AuthenticationStrategy authenticationStrategy = new RateLimitedAuthenticationStrategy( systemUTC(), 3 ); - return new FileUserRealm( userRepository, roleRepository, passwordPolicy, authenticationStrategy, + return new InternalFlatFileRealm( userRepository, roleRepository, passwordPolicy, authenticationStrategy, true ); } } diff --git a/enterprise/security/src/main/java/org/neo4j/server/security/enterprise/auth/FileUserRealm.java b/enterprise/security/src/main/java/org/neo4j/server/security/enterprise/auth/InternalFlatFileRealm.java similarity index 97% rename from enterprise/security/src/main/java/org/neo4j/server/security/enterprise/auth/FileUserRealm.java rename to enterprise/security/src/main/java/org/neo4j/server/security/enterprise/auth/InternalFlatFileRealm.java index f729f548fd2c3..517e6b5373288 100644 --- a/enterprise/security/src/main/java/org/neo4j/server/security/enterprise/auth/FileUserRealm.java +++ b/enterprise/security/src/main/java/org/neo4j/server/security/enterprise/auth/InternalFlatFileRealm.java @@ -60,9 +60,9 @@ import org.neo4j.server.security.auth.exception.ConcurrentModificationException; /** - * Shiro realm wrapping FileUserRepository + * Shiro realm wrapping FileUserRepository and FileRoleRepository */ -public class FileUserRealm extends AuthorizingRealm implements ShiroRealmLifecycle, EnterpriseUserManager +public class InternalFlatFileRealm extends AuthorizingRealm implements ShiroRealmLifecycle, EnterpriseUserManager { /** * This flag is used in the same way as User.PASSWORD_CHANGE_REQUIRED, but it's @@ -94,8 +94,9 @@ public Collection resolvePermissionsInRole( String roleString ) private final boolean authenticationEnabled; private final Map roles; - public FileUserRealm( UserRepository userRepository, RoleRepository roleRepository, PasswordPolicy passwordPolicy, - AuthenticationStrategy authenticationStrategy, boolean authenticationEnabled ) + public InternalFlatFileRealm( UserRepository userRepository, RoleRepository roleRepository, + PasswordPolicy passwordPolicy, AuthenticationStrategy authenticationStrategy, + boolean authenticationEnabled ) { super(); @@ -229,7 +230,7 @@ protected AuthenticationInfo doGetAuthenticationInfo( AuthenticationToken token // TODO: This will not work if AuthenticationInfo is cached, // unless you always do SecurityManager.logout properly (which will invalidate the cache) // For REST we may need to connect HttpSessionListener.sessionDestroyed with logout - if ( user.hasFlag( FileUserRealm.IS_SUSPENDED ) ) + if ( user.hasFlag( InternalFlatFileRealm.IS_SUSPENDED ) ) { throw new DisabledAccountException( "User " + user.name() + " is suspended" ); } diff --git a/enterprise/security/src/main/java/org/neo4j/server/security/enterprise/auth/ShiroAuthManager.java b/enterprise/security/src/main/java/org/neo4j/server/security/enterprise/auth/ShiroAuthManager.java index ef42ded69d658..d06720edee2e2 100644 --- a/enterprise/security/src/main/java/org/neo4j/server/security/enterprise/auth/ShiroAuthManager.java +++ b/enterprise/security/src/main/java/org/neo4j/server/security/enterprise/auth/ShiroAuthManager.java @@ -45,7 +45,7 @@ public class ShiroAuthManager extends BasicAuthManager implements EnterpriseAuth { protected DefaultSecurityManager securityManager; private final EhCacheManager cacheManager; - private final FileUserRealm realm; + private final InternalFlatFileRealm realm; private final RoleRepository roleRepository; public ShiroAuthManager( UserRepository userRepository, RoleRepository roleRepository, @@ -53,7 +53,7 @@ public ShiroAuthManager( UserRepository userRepository, RoleRepository roleRepos { super( userRepository, passwordPolicy, authStrategy, true /* auth always enabled */ ); - realm = new FileUserRealm( userRepository, roleRepository, passwordPolicy, authStrategy, true ); + realm = new InternalFlatFileRealm( userRepository, roleRepository, passwordPolicy, authStrategy, true ); // TODO: Maybe MemoryConstrainedCacheManager is good enough if we do not need timeToLiveSeconds? // It would be one less dependency. // Or we could try to reuse Hazelcast which is already a dependency, but we would need to write some diff --git a/enterprise/security/src/test/java/org/neo4j/server/security/enterprise/auth/AuthProceduresTest.java b/enterprise/security/src/test/java/org/neo4j/server/security/enterprise/auth/AuthProceduresTest.java index 08c24739a9f21..5471950053aec 100644 --- a/enterprise/security/src/test/java/org/neo4j/server/security/enterprise/auth/AuthProceduresTest.java +++ b/enterprise/security/src/test/java/org/neo4j/server/security/enterprise/auth/AuthProceduresTest.java @@ -241,7 +241,7 @@ public void shouldNotAllowDeletingYourself() throws Exception public void shouldSuspendUser() throws Exception { testCallEmpty( adminSubject, "CALL dbms.suspendUser('readSubject')" ); - assertTrue( manager.getUser( "readSubject" ).hasFlag( FileUserRealm.IS_SUSPENDED ) ); + assertTrue( manager.getUser( "readSubject" ).hasFlag( InternalFlatFileRealm.IS_SUSPENDED ) ); } @Test @@ -249,7 +249,7 @@ public void shouldSuspendSuspendedUser() throws Exception { testCallEmpty( adminSubject, "CALL dbms.suspendUser('readSubject')" ); testCallEmpty( adminSubject, "CALL dbms.suspendUser('readSubject')" ); - assertTrue( manager.getUser( "readSubject" ).hasFlag( FileUserRealm.IS_SUSPENDED ) ); + assertTrue( manager.getUser( "readSubject" ).hasFlag( InternalFlatFileRealm.IS_SUSPENDED ) ); } @Test @@ -287,7 +287,7 @@ public void shouldActivateUser() throws Exception { manager.suspendUser( "readSubject" ); testCallEmpty( adminSubject, "CALL dbms.activateUser('readSubject')" ); - assertFalse( manager.getUser( "readSubject" ).hasFlag( FileUserRealm.IS_SUSPENDED ) ); + assertFalse( manager.getUser( "readSubject" ).hasFlag( InternalFlatFileRealm.IS_SUSPENDED ) ); } @Test @@ -296,7 +296,7 @@ public void shouldActivateActiveUser() throws Exception manager.suspendUser( "readSubject" ); testCallEmpty( adminSubject, "CALL dbms.activateUser('readSubject')" ); testCallEmpty( adminSubject, "CALL dbms.activateUser('readSubject')" ); - assertFalse( manager.getUser( "readSubject" ).hasFlag( FileUserRealm.IS_SUSPENDED ) ); + assertFalse( manager.getUser( "readSubject" ).hasFlag( InternalFlatFileRealm.IS_SUSPENDED ) ); } /* diff --git a/enterprise/security/src/test/java/org/neo4j/server/security/enterprise/auth/FileUserRealmTest.java b/enterprise/security/src/test/java/org/neo4j/server/security/enterprise/auth/InternalFlatFileRealmTest.java similarity index 86% rename from enterprise/security/src/test/java/org/neo4j/server/security/enterprise/auth/FileUserRealmTest.java rename to enterprise/security/src/test/java/org/neo4j/server/security/enterprise/auth/InternalFlatFileRealmTest.java index 323029380abbc..383f78ca7e181 100644 --- a/enterprise/security/src/test/java/org/neo4j/server/security/enterprise/auth/FileUserRealmTest.java +++ b/enterprise/security/src/test/java/org/neo4j/server/security/enterprise/auth/InternalFlatFileRealmTest.java @@ -44,7 +44,7 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; -public class FileUserRealmTest +public class InternalFlatFileRealmTest { RoleRepository roleRepository; UserRepository userRepository; @@ -54,7 +54,7 @@ public class FileUserRealmTest private static final String USERNAME = "neo4j"; private static final String ROLE = "admin"; - public FileUserRealmTest() throws Exception + public InternalFlatFileRealmTest() throws Exception { super(); setup(); @@ -96,7 +96,7 @@ public void testThreadedTests() throws Exception try { - runner.runTests( getClass(), FileUserRealm.class ); + runner.runTests( getClass(), InternalFlatFileRealm.class ); } // We need to work around an issue that we do not get failures from the test framework catch ( final RuntimeException e ) @@ -119,8 +119,8 @@ public void addUserToRoleShouldBeAtomic() throws Exception // Create a code position for where we want to break in the main thread CodePosition codePosition = getCodePositionAfterCall( "addUserToRole", "getUserByName" ); - FileUserRealm realm = new FileUserRealm( userRepository, roleRepository, passwordPolicy, authenticationStrategy, - true ); + InternalFlatFileRealm realm = new InternalFlatFileRealm( userRepository, roleRepository, passwordPolicy, + authenticationStrategy, true ); // When RunResult result = InterleavedRunner.interleave( @@ -142,8 +142,8 @@ public void deleteUserShouldBeAtomic() throws Exception // Create a code position for where we want to break in the main thread CodePosition codePosition = getCodePositionAfterCall( "deleteUser", "getUserByName" ); - FileUserRealm realm = new FileUserRealm( userRepository, roleRepository, passwordPolicy, authenticationStrategy, - true ); + InternalFlatFileRealm realm = new InternalFlatFileRealm( userRepository, roleRepository, passwordPolicy, + authenticationStrategy, true ); // When RunResult result = InterleavedRunner.interleave( @@ -159,29 +159,29 @@ public void deleteUserShouldBeAtomic() throws Exception private CodePosition getCodePositionAfterCall( String caller, String called ) { - ClassInstrumentation instrumentation = Instrumentation.getClassInstrumentation( FileUserRealm.class ); + ClassInstrumentation instrumentation = Instrumentation.getClassInstrumentation( InternalFlatFileRealm.class ); CodePosition codePosition = instrumentation.afterCall( caller, called ); return codePosition; } // Base class for the main thread - private class AdminMain extends MainRunnableImpl + private class AdminMain extends MainRunnableImpl { - protected FileUserRealm realm; + protected InternalFlatFileRealm realm; - public AdminMain( FileUserRealm realm ) + public AdminMain( InternalFlatFileRealm realm ) { this.realm = realm; } @Override - public Class getClassUnderTest() + public Class getClassUnderTest() { - return FileUserRealm.class; + return InternalFlatFileRealm.class; } @Override - public FileUserRealm getMainObject() + public InternalFlatFileRealm getMainObject() { return realm; } @@ -193,9 +193,9 @@ public void run() throws Exception } // Base class for the secondary thread - private class AdminSecondary extends SecondaryRunnableImpl + private class AdminSecondary extends SecondaryRunnableImpl { - protected FileUserRealm realm; + protected InternalFlatFileRealm realm; @Override public void initialize( AdminMain main ) throws Exception @@ -216,7 +216,7 @@ public void run() throws Exception // Add user to role private class AddUserToRoleInMain extends AdminMain { - public AddUserToRoleInMain( FileUserRealm realm ) + public AddUserToRoleInMain( InternalFlatFileRealm realm ) { super( realm ); } @@ -241,7 +241,7 @@ public void run() throws Exception // Delete user private class DeleteUserInMain extends AdminMain { - public DeleteUserInMain( FileUserRealm realm ) + public DeleteUserInMain( InternalFlatFileRealm realm ) { super( realm ); }