Skip to content

Commit

Permalink
Do not create new users from auth.ini file
Browse files Browse the repository at this point in the history
The `auth.ini` file may only be used if there are no other users in the system.
It is only usable for the default initial user, called 'neo4j'.
  • Loading branch information
Mats-SX committed Oct 5, 2016
1 parent 918eeca commit 8dea75c
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 50 deletions.
Expand Up @@ -79,22 +79,14 @@ public void start() throws Throwable


if ( userRepository.numberOfUsers() == 0 ) if ( userRepository.numberOfUsers() == 0 )
{ {
if ( initialUserRepository.numberOfUsers() == 0 ) User neo4j = newUser( "neo4j", "neo4j", true );
if ( initialUserRepository.numberOfUsers() > 0 )
{ {
newUser( "neo4j", "neo4j", true ); User user = initialUserRepository.getUserByName( "neo4j" );
} if ( user != null )
} {
for ( String username : initialUserRepository.getAllUsernames() ) userRepository.update( neo4j, user );
{ }
User oldUser = userRepository.getUserByName( username );
User newUser = initialUserRepository.getUserByName( username );
if ( oldUser == null )
{
userRepository.create( newUser );
}
else
{
userRepository.update( oldUser, newUser );
} }
} }
} }
Expand Down
Expand Up @@ -97,7 +97,7 @@ public void shouldLoadInitialUserIfNoneExist() throws Throwable
CommunitySecurityModule.getInitialUserRepository( config, NullLogProvider.getInstance(), fsRule.get() ); CommunitySecurityModule.getInitialUserRepository( config, NullLogProvider.getInstance(), fsRule.get() );
initialUserRepository.start(); initialUserRepository.start();
initialUserRepository.create( initialUserRepository.create(
new User.Builder( "initUser", Credential.forPassword( "123" )) new User.Builder( "neo4j", Credential.forPassword( "123" ))
.withRequiredPasswordChange( false ) .withRequiredPasswordChange( false )
.build() .build()
); );
Expand All @@ -107,14 +107,14 @@ public void shouldLoadInitialUserIfNoneExist() throws Throwable
manager.start(); manager.start();


// Then // Then
final User user = users.getUserByName( "initUser" ); final User user = users.getUserByName( "neo4j" );
assertNotNull( user ); assertNotNull( user );
assertTrue( user.credentials().matchesPassword( "123" ) ); assertTrue( user.credentials().matchesPassword( "123" ) );
assertFalse( user.passwordChangeRequired() ); assertFalse( user.passwordChangeRequired() );
} }


@Test @Test
public void shouldAddInitialUserIfUsersExist() throws Throwable public void shouldNotAddInitialUserIfUsersExist() throws Throwable
{ {
// Given // Given
FileUserRepository initialUserRepository = FileUserRepository initialUserRepository =
Expand All @@ -135,9 +135,7 @@ public void shouldAddInitialUserIfUsersExist() throws Throwable


// Then // Then
final User initUser = users.getUserByName( "initUser" ); final User initUser = users.getUserByName( "initUser" );
assertNotNull( initUser ); assertNull( initUser );
assertTrue( initUser.credentials().matchesPassword( "123" ) );
assertFalse( initUser.passwordChangeRequired() );


final User oldUser = users.getUserByName( "oldUser" ); final User oldUser = users.getUserByName( "oldUser" );
assertNotNull( oldUser ); assertNotNull( oldUser );
Expand All @@ -146,7 +144,7 @@ public void shouldAddInitialUserIfUsersExist() throws Throwable
} }


@Test @Test
public void shouldUpdateUserIfInitialUserExist() throws Throwable public void shouldNotUpdateUserIfInitialUserExist() throws Throwable
{ {
// Given // Given
FileUserRepository initialUserRepository = FileUserRepository initialUserRepository =
Expand All @@ -168,8 +166,8 @@ public void shouldUpdateUserIfInitialUserExist() throws Throwable
// Then // Then
final User oldUser = users.getUserByName( "oldUser" ); final User oldUser = users.getUserByName( "oldUser" );
assertNotNull( oldUser ); assertNotNull( oldUser );
assertTrue( oldUser.credentials().matchesPassword( "newPassword" ) ); assertFalse( oldUser.credentials().matchesPassword( "newPassword" ) );
assertFalse( oldUser.passwordChangeRequired() ); assertTrue( oldUser.passwordChangeRequired() );
} }


@Test @Test
Expand Down
Expand Up @@ -212,26 +212,17 @@ private Set<String> ensureDefaultUsers() throws Throwable
{ {
if ( userRepository.numberOfUsers() == 0 ) if ( userRepository.numberOfUsers() == 0 )
{ {
if ( initialUserRepository.numberOfUsers() == 0 ) User neo4j = newUser( "neo4j", "neo4j", true );
if ( initialUserRepository.numberOfUsers() > 0 )
{ {
newUser( "neo4j", "neo4j", true ); User initUser = initialUserRepository.getUserByName( "neo4j" );
return Collections.singleton( "neo4j" ); if (initUser != null)
} {
} userRepository.update( neo4j, initUser );
for ( String username : initialUserRepository.getAllUsernames() ) }
{
User oldUser = userRepository.getUserByName( username );
User newUser = initialUserRepository.getUserByName( username );
if ( oldUser == null )
{
userRepository.create( newUser );
}
else
{
userRepository.update( oldUser, newUser );
} }
return Collections.singleton( "neo4j" );
} }
return initialUserRepository.getAllUsernames();
} }
return Collections.emptySet(); return Collections.emptySet();
} }
Expand Down
Expand Up @@ -137,7 +137,7 @@ public void shouldLoadInitialUserIfNoneExist() throws Throwable
CommunitySecurityModule.getInitialUserRepository( config, NullLogProvider.getInstance(), fsRule.get() ); CommunitySecurityModule.getInitialUserRepository( config, NullLogProvider.getInstance(), fsRule.get() );
initialUserRepository.start(); initialUserRepository.start();
initialUserRepository.create( initialUserRepository.create(
new User.Builder( "initUser", Credential.forPassword( "123" )) new User.Builder( "neo4j", Credential.forPassword( "123" ))
.withRequiredPasswordChange( false ) .withRequiredPasswordChange( false )
.build() .build()
); );
Expand All @@ -147,14 +147,14 @@ public void shouldLoadInitialUserIfNoneExist() throws Throwable
manager.start(); manager.start();


// Then // Then
final User user = users.getUserByName( "initUser" ); final User user = users.getUserByName( "neo4j" );
assertNotNull( user ); assertNotNull( user );
assertTrue( user.credentials().matchesPassword( "123" ) ); assertTrue( user.credentials().matchesPassword( "123" ) );
assertFalse( user.passwordChangeRequired() ); assertFalse( user.passwordChangeRequired() );
} }


@Test @Test
public void shouldAddInitialUserIfUsersExist() throws Throwable public void shouldNotAddInitialUserIfUsersExist() throws Throwable
{ {
// Given // Given
FileUserRepository initialUserRepository = FileUserRepository initialUserRepository =
Expand All @@ -171,9 +171,7 @@ public void shouldAddInitialUserIfUsersExist() throws Throwable


// Then // Then
final User initUser = users.getUserByName( "initUser" ); final User initUser = users.getUserByName( "initUser" );
assertNotNull( initUser ); assertNull( initUser );
assertTrue( initUser.credentials().matchesPassword( "123" ) );
assertFalse( initUser.passwordChangeRequired() );


final User oldUser = users.getUserByName( "oldUser" ); final User oldUser = users.getUserByName( "oldUser" );
assertNotNull( oldUser ); assertNotNull( oldUser );
Expand All @@ -182,7 +180,7 @@ public void shouldAddInitialUserIfUsersExist() throws Throwable
} }


@Test @Test
public void shouldUpdateUserIfInitialUserExist() throws Throwable public void shouldNotUpdateUserIfInitialUserExist() throws Throwable
{ {
// Given // Given
FileUserRepository initialUserRepository = FileUserRepository initialUserRepository =
Expand All @@ -200,8 +198,8 @@ public void shouldUpdateUserIfInitialUserExist() throws Throwable
// Then // Then
final User oldUser = users.getUserByName( "oldUser" ); final User oldUser = users.getUserByName( "oldUser" );
assertNotNull( oldUser ); assertNotNull( oldUser );
assertTrue( oldUser.credentials().matchesPassword( "newPassword" ) ); assertTrue( oldUser.credentials().matchesPassword( "oldPassword" ) );
assertFalse( oldUser.passwordChangeRequired() ); assertTrue( oldUser.passwordChangeRequired() );
} }


@Test @Test
Expand Down

0 comments on commit 8dea75c

Please sign in to comment.