case "tls_level": setting = (BaseSetting) setting( settingName, optionsObeyCase( BoltConnector.EncryptionLevel.class ), OPTIONAL.name() ); setting.setDescription( "Encryption level to require this connector to use." ); break;
@Test public void setsDeprecationFlagOnCustomNamedBoltConnectors() { List<Setting<Object>> settings = cv.settings( stringMap( "dbms.connector.0.type", "BOLT", "dbms.connector.0.enabled", "false", "dbms.connector.0.listen_address", "1.2.3.4:123", "dbms.connector.0.advertised_address", "localhost:123", "dbms.connector.0.tls_level", EncryptionLevel.OPTIONAL.toString() ) ); assertEquals( 5, settings.size() ); for ( Setting s : settings ) { assertTrue( "every setting should be deprecated: " + s.name(), s.deprecated() ); String[] parts = s.name().split( "\\." ); if ( !"type".equals( parts[3] ) ) { assertEquals( Optional.of( format( "%s.%s.%s.%s", parts[0], parts[1], "bolt", parts[3] ) ), s.replacement() ); } } } }
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 ); }
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; }