private void setupSecurity(Properties properties, Principal principal, Iterable<Object> credentials) { for ( AgroalSecurityProvider provider : load( AgroalSecurityProvider.class, AgroalSecurityProvider.class.getClassLoader() ) ) { properties.putAll( provider.getSecurityProperties( principal ) ); } for ( Object credential : credentials ) { for ( AgroalSecurityProvider provider : load( AgroalSecurityProvider.class, AgroalSecurityProvider.class.getClassLoader() ) ) { properties.putAll( provider.getSecurityProperties( credential ) ); } } }
private HikariConfig getHikariConfig(AgroalDataSourceConfiguration dataSourceConfiguration) { HikariConfig hikariConfig = new HikariConfig(); // hikariConfig.setDataSourceJNDI( dataSourceConfiguration.jndiName() ); hikariConfig.setLeakDetectionThreshold( poolConfiguration.leakTimeout().toMillis() ); hikariConfig.setIdleTimeout( poolConfiguration.reapTimeout().toMillis() ); hikariConfig.setValidationTimeout( poolConfiguration.validationTimeout().toMillis() ); if ( factoryConfiguration.jdbcTransactionIsolation().isDefined() ) { hikariConfig.setTransactionIsolation( "TRANSACTION_" + factoryConfiguration.jdbcTransactionIsolation().name() ); } hikariConfig.setJdbcUrl( factoryConfiguration.jdbcUrl() ); hikariConfig.setAutoCommit( factoryConfiguration.autoCommit() ); hikariConfig.setConnectionInitSql( factoryConfiguration.initialSql() ); for ( AgroalSecurityProvider provider : load( AgroalSecurityProvider.class, AgroalSecurityProvider.class.getClassLoader() ) ) { hikariConfig.setDataSourceProperties( provider.getSecurityProperties( factoryConfiguration.principal() ) ); } for ( Object credential : factoryConfiguration.credentials() ) { for ( AgroalSecurityProvider provider : load( AgroalSecurityProvider.class, AgroalSecurityProvider.class.getClassLoader() ) ) { hikariConfig.setDataSourceProperties( provider.getSecurityProperties( credential ) ); } } hikariConfig.setMaximumPoolSize( poolConfiguration.maxSize() ); hikariConfig.setConnectionTimeout( poolConfiguration.acquisitionTimeout().toMillis() ); if ( factoryConfiguration.connectionProviderClass() != null) { hikariConfig.setDriverClassName( factoryConfiguration.connectionProviderClass().getName() ); } return hikariConfig; }