diff --git a/community/security/src/main/java/org/neo4j/commandline/admin/security/SetInitialPasswordCommand.java b/community/security/src/main/java/org/neo4j/commandline/admin/security/SetInitialPasswordCommand.java index 68bd8ec085796..74194ae435c0a 100644 --- a/community/security/src/main/java/org/neo4j/commandline/admin/security/SetInitialPasswordCommand.java +++ b/community/security/src/main/java/org/neo4j/commandline/admin/security/SetInitialPasswordCommand.java @@ -81,9 +81,13 @@ public void execute( String[] args ) throws IncorrectUsage, CommandFailed private void setPassword( String password ) throws Throwable { Config config = loadNeo4jConfig(); - if ( realUsersExist( config ) ) + File authFile = CommunitySecurityModule.getUserRepositoryFile( config ); + + if ( realUsersExist( authFile ) ) { - throw new CommandFailed( "initial password was not set because live Neo4j-users were detected." ); + throw new CommandFailed( "the provided initial password was not set because existing Neo4j users were detected at `" + + authFile.getAbsolutePath() + "`. Please remove the existing `auth` and `roles` files if you want to reset your database " + + "to only have a default user with the provided password." ); } else { @@ -107,9 +111,8 @@ private void setPassword( String password ) throws Throwable } } - private boolean realUsersExist( Config config ) + private boolean realUsersExist( File authFile ) { - File authFile = CommunitySecurityModule.getUserRepositoryFile( config ); return outsideWorld.fileSystem().fileExists( authFile ); } diff --git a/community/security/src/test/java/org/neo4j/commandline/admin/security/SetInitialPasswordCommandIT.java b/community/security/src/test/java/org/neo4j/commandline/admin/security/SetInitialPasswordCommandIT.java index f87a5150b1408..3b1057d8cf47f 100644 --- a/community/security/src/test/java/org/neo4j/commandline/admin/security/SetInitialPasswordCommandIT.java +++ b/community/security/src/test/java/org/neo4j/commandline/admin/security/SetInitialPasswordCommandIT.java @@ -151,7 +151,9 @@ public void shouldErrorIfRealUsersAlreadyExist() throws Throwable // Then assertNoAuthIniFile(); verify( out, times( 1 ) ) - .stdErrLine( "command failed: initial password was not set because live Neo4j-users were detected." ); + .stdErrLine( "command failed: the provided initial password was not set because existing Neo4j users were " + + "detected at `" + authFile.getAbsolutePath() + "`. Please remove the existing `auth` and `roles` files if you " + + "want to reset your database to only have a default user with the provided password." ); verify( out ).exit( 1 ); verify( out, times( 0 ) ).stdOutLine( anyString() ); }