@BeforeClass public static void setupMultiDriverTestEnvironment() { if (baseConfiguration.build().getDriverClassName().equals(EmbeddedDriver.class.getCanonicalName())) { baseConfiguration.uri(graphStore.toURI().toString()).build(); } else { baseConfiguration.uri(testServer.getUri()).credentials(testServer.getUsername(), testServer.getPassword()); } if (driver == null) { Configuration configuration = getBaseConfiguration().build(); driver = newDriverInstance(configuration.getDriverClassName()); driver.configure(configuration); } }
@Test public void testUnauthorizedDriver() { session = new SessionFactory(getBaseConfiguration().credentials("", "").build(), "dummy").openSession(); try (Transaction tx = session.beginTransaction()) { tx.commit(); fail("Driver should not have authenticated"); } catch (Exception rpe) { Throwable cause = rpe.getCause(); while (!(cause instanceof HttpResponseException)) { cause = cause.getCause(); } assertThat(cause.getMessage().startsWith("Invalid username or password")).isTrue(); } }
@Test public void shouldConfigureProgrammatically() { Configuration.Builder builder = new Configuration.Builder(); builder.autoIndex("assert"); builder.generatedIndexesOutputDir("dir"); builder.generatedIndexesOutputFilename("filename"); builder.credentials("fred", "flintstone"); builder.uri("http://localhost:8080"); builder.connectionPoolSize(200); builder.encryptionLevel("REQUIRED"); builder.trustStrategy("TRUST_SIGNED_CERTIFICATES"); builder.trustCertFile("/tmp/cert"); builder.connectionLivenessCheckTimeout(1000); Configuration configuration = builder.build(); assertThat(configuration.getAutoIndex()).isEqualTo(AutoIndexMode.ASSERT); assertThat(configuration.getDumpDir()).isEqualTo("dir"); assertThat(configuration.getDumpFilename()).isEqualTo("filename"); assertThat(configuration.getDriverClassName()).isEqualTo("org.neo4j.ogm.drivers.http.driver.HttpDriver"); assertThat(configuration.getCredentials().credentials().toString()).isEqualTo("ZnJlZDpmbGludHN0b25l"); assertThat(configuration.getURI()).isEqualTo("http://localhost:8080"); assertThat(configuration.getConnectionPoolSize()).isEqualTo(200); assertThat(configuration.getEncryptionLevel()).isEqualTo("REQUIRED"); assertThat(configuration.getTrustStrategy()).isEqualTo("TRUST_SIGNED_CERTIFICATES"); assertThat(configuration.getTrustCertFile()).isEqualTo("/tmp/cert"); assertThat(configuration.getConnectionLivenessCheckTimeout().intValue()).isEqualTo(1000); }
private Neo4jTransactionManager getNeo4jTransactionManager() { if (neo4jTransactionManager == null) { synchronized (this) { if (neo4jTransactionManager == null) { Builder configBuilder = new Builder() .uri(config.getUri()) .credentials(config.getLogin(), config.getPassword()); if (config.getConnectionPoolSize() > 0) { configBuilder.connectionPoolSize(config.getConnectionPoolSize()); } SessionFactory sessionFactory = new SessionFactory(configBuilder.build(), "org.openkilda.model"); sessionFactory.metaData().registerConversionCallback( new SimpleConversionCallback("org.openkilda.persistence.converters")); neo4jTransactionManager = new Neo4jTransactionManager(sessionFactory); } } } return neo4jTransactionManager; } }
/** * @see issue #35 */ @Test public void testInvalidCredentials() { session = new SessionFactory(getBaseConfiguration().credentials("neo4j", "invalid_password").build(), "dummy") .openSession(); try (Transaction tx = session.beginTransaction()) { fail("Driver should not have authenticated"); } catch (Exception rpe) { Throwable cause = rpe.getCause(); while (!(cause instanceof HttpResponseException)) { cause = cause.getCause(); } assertThat(cause.getMessage()).isEqualTo("Invalid username or password."); } } }
public static Builder copy(Builder builder) { return new Builder() .uri(builder.uri) .connectionPoolSize(builder.connectionPoolSize) .encryptionLevel(builder.encryptionLevel) .trustStrategy(builder.trustStrategy) .trustCertFile(builder.trustCertFile) .connectionLivenessCheckTimeout(builder.connectionLivenessCheckTimeout) .verifyConnection(builder.verifyConnection) .autoIndex(builder.autoIndex) .generatedIndexesOutputDir(builder.generatedIndexesOutputDir) .generatedIndexesOutputFilename(builder.generatedIndexesOutputFilename) .neo4jConfLocation(builder.neo4jConfLocation) .credentials(builder.username, builder.password) .customProperties(new HashMap<>(builder.customProperties)); }
/** * Create the {@link Configuration}. * * Reads the values from environment variables. If they are not set, falls back to default values. * * @return the {@link Configuration} */ public static Configuration getConfiguration() { String uri = getEnvOrDefault(ENV_URI, "bolt://localhost"); String username = getEnvOrDefault(ENV_USERNAME, "neo4j"); String password = getEnvOrDefault(ENV_SECRET, "neo4j"); LOGGER.info("Creating configuration for: {} with username: {}", uri, username); return new Configuration.Builder() .uri(uri) .credentials(username, password) .build(); }