private Map<String,String> configure( Consumer<Map<String,String>> overrideSettingsFunction ) { Map<String,String> settings = new HashMap<>(); settings.put( new BoltConnector( DEFAULT_CONNECTOR_KEY ).type.name(), "BOLT" ); settings.put( new BoltConnector( DEFAULT_CONNECTOR_KEY ).enabled.name(), "true" ); settings.put( new BoltConnector( DEFAULT_CONNECTOR_KEY ).listen_address.name(), "localhost:0" ); settings.put( new BoltConnector( DEFAULT_CONNECTOR_KEY ).encryption_level.name(), OPTIONAL.name() ); configure.accept( settings ); overrideSettingsFunction.accept( settings ); return settings; }
public BoltConnector( String key ) { super( key ); encryption_level = group.scope( Settings.setting( "tls_level", optionsObeyCase( EncryptionLevel.class ), OPTIONAL.name() ) ); Setting<ListenSocketAddress> legacyAddressSetting = listenAddress( "address", 7687 ); Setting<ListenSocketAddress> listenAddressSetting = legacyFallback( legacyAddressSetting, listenAddress( "listen_address", 7687 ) ); this.address = group.scope( legacyAddressSetting ); this.listen_address = group.scope( listenAddressSetting ); this.advertised_address = group.scope( advertisedAddress( "advertised_address", listenAddressSetting ) ); this.thread_pool_min_size = group.scope( setting( "thread_pool_min_size", INTEGER, String.valueOf( 5 ) ) ); this.thread_pool_max_size = group.scope( setting( "thread_pool_max_size", INTEGER, String.valueOf( 400 ) ) ); this.thread_pool_keep_alive = group.scope( setting( "thread_pool_keep_alive", DURATION, "5m" ) ); this.unsupported_thread_pool_queue_size = group.scope( setting( "unsupported_thread_pool_queue_size", INTEGER, String.valueOf( 0 ) ) ); }
case "tls_level": setting = (BaseSetting) setting( settingName, optionsObeyCase( BoltConnector.EncryptionLevel.class ), OPTIONAL.name() ); setting.setDescription( "Encryption level to require this connector to use." ); break;
case "tls_level": setting = (BaseSetting) setting( settingName, optionsObeyCase( BoltConnector.EncryptionLevel.class ), OPTIONAL.name() ); setting.setDescription( "Encryption level to require this connector to use." ); break;
log.warn( "Unhandled encryption level %s - assuming DISABLED.", encryptionLevel.name() ); requireEncryption = false; sslCtx = null;
public BoltConnector( String key ) { super( key ); encryption_level = group.scope( Settings.setting( "tls_level", optionsObeyCase( EncryptionLevel.class ), OPTIONAL.name() ) ); Setting<ListenSocketAddress> legacyAddressSetting = listenAddress( "address", 7687 ); Setting<ListenSocketAddress> listenAddressSetting = legacyFallback( legacyAddressSetting, listenAddress( "listen_address", 7687 ) ); this.address = group.scope( legacyAddressSetting ); this.listen_address = group.scope( listenAddressSetting ); this.advertised_address = group.scope( advertisedAddress( "advertised_address", listenAddressSetting ) ); this.thread_pool_min_size = group.scope( setting( "thread_pool_min_size", INTEGER, String.valueOf( 5 ) ) ); this.thread_pool_max_size = group.scope( setting( "thread_pool_max_size", INTEGER, String.valueOf( 400 ) ) ); this.thread_pool_keep_alive = group.scope( setting( "thread_pool_keep_alive", DURATION, "5m" ) ); this.unsupported_thread_pool_queue_size = group.scope( setting( "unsupported_thread_pool_queue_size", INTEGER, String.valueOf( 0 ) ) ); }
private Map<String,String> configure( Consumer<Map<String,String>> overrideSettingsFunction ) { Map<String,String> settings = new HashMap<>(); settings.put( new BoltConnector( DEFAULT_CONNECTOR_KEY ).type.name(), "BOLT" ); settings.put( new BoltConnector( DEFAULT_CONNECTOR_KEY ).enabled.name(), "true" ); settings.put( new BoltConnector( DEFAULT_CONNECTOR_KEY ).listen_address.name(), "localhost:0" ); settings.put( new BoltConnector( DEFAULT_CONNECTOR_KEY ).encryption_level.name(), OPTIONAL.name() ); configure.accept( settings ); overrideSettingsFunction.accept( settings ); return settings; }
log.warn( "Unhandled encryption level %s - assuming DISABLED.", encryptionLevel.name() ); requireEncryption = false; sslCtx = null;
@Test public void validatesTlsLevel() { String key = "dbms.connector.bolt.tls_level"; assertEquals( stringMap( key, EncryptionLevel.DISABLED.name() ), cv.validate( stringMap( key, EncryptionLevel.DISABLED.name() ), warningConsumer ) ); assertEquals( stringMap( key, EncryptionLevel.OPTIONAL.name() ), cv.validate( stringMap( key, EncryptionLevel.OPTIONAL.name() ), warningConsumer ) ); assertEquals( stringMap( key, EncryptionLevel.REQUIRED.name() ), cv.validate( stringMap( key, EncryptionLevel.REQUIRED.name() ), warningConsumer ) ); key = "dbms.connector.bla.tls_level"; String type = "dbms.connector.bla.type"; assertEquals( stringMap( key, EncryptionLevel.DISABLED.name(), type, BOLT.name() ), cv.validate( stringMap( key, EncryptionLevel.DISABLED.name(), type, BOLT.name() ), warningConsumer ) ); assertEquals( stringMap( key, EncryptionLevel.OPTIONAL.name(), type, BOLT.name() ), cv.validate( stringMap( key, EncryptionLevel.OPTIONAL.name(), type, BOLT.name() ), warningConsumer ) ); assertEquals( stringMap( key, EncryptionLevel.REQUIRED.name(), type, BOLT.name() ), cv.validate( stringMap( key, EncryptionLevel.REQUIRED.name(), type, BOLT.name() ), warningConsumer ) ); expected.expect( InvalidSettingException.class ); expected.expectMessage( "Bad value 'BOBO' for setting 'dbms.connector.bla.tls_level': must be one of [REQUIRED, OPTIONAL, " + "DISABLED] case sensitive" ); cv.validate( stringMap( key, "BOBO", type, BOLT.name() ), warningConsumer ); }