Skip to content

Commit

Permalink
Unconditionally set the auth store location in server
Browse files Browse the repository at this point in the history
This is an internal setting which should never be set externally. In
server it will always be at data/dbms/auth.
  • Loading branch information
benbc committed Apr 7, 2016
1 parent 10819e5 commit e282254
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 10 deletions.
Expand Up @@ -84,7 +84,7 @@ private Map<String, String> calculateSettings( Optional<File> config, Log log,
config.ifPresent( ( c ) -> settings.putAll( loadFromFile( log, c ) ) );
settings.putAll( toMap( configOverrides ) );
overrideEmbeddedDefaults( settings );
settings.put( GraphDatabaseSettings.neo4j_home.name(), System.getProperty( "user.dir" ) );
addInternalServerSpecificSettings( settings );
customizer.accept( settings );
return settings;
}
Expand All @@ -107,10 +107,13 @@ private static void overrideEmbeddedDefaults( Map<String, String> config )
{
config.putIfAbsent( ShellSettings.remote_shell_enabled.name(), TRUE );
config.putIfAbsent( GraphDatabaseSettings.auth_enabled.name(), "true" );
}

String dataDirectory = config.getOrDefault( data_directory.name(), data_directory.getDefaultValue() );
config.putIfAbsent( GraphDatabaseSettings.auth_store.name(),
new File( dataDirectory, "dbms/auth" ).toString() );
private static void addInternalServerSpecificSettings( Map<String, String> settings )
{
settings.put( GraphDatabaseSettings.neo4j_home.name(), System.getProperty( "user.dir" ) );
String dataDirectory = settings.getOrDefault( data_directory.name(), data_directory.getDefaultValue() );
settings.put( GraphDatabaseSettings.auth_store.name(), new File( dataDirectory, "dbms/auth" ).toString() );
}

private static Map<String, String> loadFromFile( Log log, File file )
Expand Down
Expand Up @@ -19,17 +19,17 @@
*/
package org.neo4j.server.configuration;

import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;
import java.util.Optional;

import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;

import org.neo4j.dbms.DatabaseManagementSystemSettings;
import org.neo4j.graphdb.factory.GraphDatabaseSettings;
import org.neo4j.kernel.configuration.Config;
Expand All @@ -43,6 +43,7 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertThat;

import static org.neo4j.kernel.configuration.Settings.NO_DEFAULT;
import static org.neo4j.kernel.configuration.Settings.STRING;
import static org.neo4j.kernel.configuration.Settings.setting;
Expand Down Expand Up @@ -193,7 +194,7 @@ public void shouldSetAValueForAuthStoreLocation() throws IOException
}

@Test
public void shouldNotOverwriteAuthStoreLocationIfProvided() throws IOException
public void shouldOverwriteAuthStoreLocationIfErroneouslyProvided() throws IOException
{
Optional<File> configFile = ConfigFileBuilder.builder( folder.getRoot() )
.withSetting( DatabaseManagementSystemSettings.data_directory, "the-data-dir" )
Expand All @@ -202,7 +203,7 @@ public void shouldNotOverwriteAuthStoreLocationIfProvided() throws IOException
Config config = configLoader.loadConfig( configFile, log );

assertThat( config.get( GraphDatabaseSettings.auth_store ),
is( new File( "foo/bar/auth" ).getAbsoluteFile() ) );
is( new File( "the-data-dir/dbms/auth" ).getAbsoluteFile() ) );
}


Expand Down

0 comments on commit e282254

Please sign in to comment.