return getRedbackRuntimeConfiguration().getUserManagerImpls().get( 0 ); int index = redbackRuntimeConfiguration.getLdapGroupMappings().indexOf( new LdapGroupMapping( StringUtils.substringAfter( key, UserConfigurationKeys.LDAP_GROUPS_ROLE_START_KEY ) ) ); if ( index > -1 ) return StringUtils.join( redbackRuntimeConfiguration.getLdapGroupMappings().get( index ).getRoleNames(), ',' ); if ( conf.getConfigurationProperties().containsKey( key ) ) return conf.getConfigurationProperties().get( key ); conf.getConfigurationProperties().put( key, value );
@Override public void initialize() { try { List<String> rbacManagerIds = redbackRuntimeConfigurationAdmin.getRedbackRuntimeConfiguration().getRbacManagerImpls(); if ( rbacManagerIds.isEmpty() ) { rbacManagerIds.add( RedbackRuntimeConfigurationAdmin.DEFAULT_RBAC_MANAGER_IMPL ); } log.info( "use rbacManagerIds: '{}'", rbacManagerIds ); this.rbacManagersPerId = new LinkedHashMap<>( rbacManagerIds.size() ); for ( String id : rbacManagerIds ) { RBACManager rbacManager = applicationContext.getBean( "rbacManager#" + id, RBACManager.class ); rbacManagersPerId.put( id, rbacManager ); } } catch ( RepositoryAdminException e ) { log.error( e.getMessage(), e ); throw new RuntimeException( e.getMessage(), e ); } }
@Override public int getInt( String key, int defaultValue ) { if ( UserConfigurationKeys.LDAP_PORT.equals( key ) ) { return getRedbackRuntimeConfiguration().getLdapConfiguration().getPort(); } RedbackRuntimeConfiguration conf = getRedbackRuntimeConfiguration(); if ( conf.getConfigurationProperties().containsKey( key ) ) { return Integer.valueOf( conf.getConfigurationProperties().get( key ) ); } int value = userConfiguration.getInt( key, defaultValue ); conf.getConfigurationProperties().put( key, Integer.toString( value ) ); try { updateRedbackRuntimeConfiguration( conf ); } catch ( RepositoryAdminException e ) { log.error( "fail to save RedbackRuntimeConfiguration: {}", e.getMessage(), e ); throw new RuntimeException( e.getMessage(), e ); } return value; }
@PostConstruct protected void initialize() throws RepositoryAdminException { List<String> userManagerImpls = redbackRuntimeConfigurationAdmin.getRedbackRuntimeConfiguration().getUserManagerImpls(); List<String> updated = new ArrayList<>( ); userManagers = new ArrayList<>( userManagerImpls.size() ); for ( String beanId : userManagerImpls ) { // for migration purpose to help users if ( StringUtils.equalsIgnoreCase( beanId, "jdo" )) { log.info( "jdo is not anymore supported we auto update to jpa" ); beanId = "jpa"; } updated.add( beanId ); userManagers.add( applicationContext.getBean( "userManager#" + beanId, UserManager.class ) ); } redbackRuntimeConfigurationAdmin.getRedbackRuntimeConfiguration().setUserManagerImpls( updated ); }
@PostConstruct @Override public void initialize() { try { List<String> userManagerImpls = redbackRuntimeConfigurationAdmin.getRedbackRuntimeConfiguration().getUserManagerImpls(); log.info( "use userManagerImpls: '{}'", userManagerImpls ); userManagerPerId = new LinkedHashMap<>( userManagerImpls.size() ); for ( String id : userManagerImpls ) { UserManager userManagerImpl = applicationContext.getBean( "userManager#" + id, UserManager.class ); setUserManagerImpl( userManagerImpl ); userManagerPerId.put( id, userManagerImpl ); } this.useUsersCache = redbackRuntimeConfigurationAdmin.getRedbackRuntimeConfiguration().isUseUsersCache(); } catch ( RepositoryAdminException e ) { // revert to a default one ? log.error( e.getMessage(), e ); throw new RuntimeException( e.getMessage(), e ); } }
if ( !redbackRuntimeConfiguration.isMigratedFromRedbackConfiguration() ) redbackRuntimeConfiguration = new RedbackRuntimeConfiguration(); redbackRuntimeConfiguration.getUserManagerImpls().add( impl ); redbackRuntimeConfiguration.getUserManagerImpls().add( DEFAULT_USER_MANAGER_IMPL ); redbackRuntimeConfiguration.getRbacManagerImpls().add( impl ); redbackRuntimeConfiguration.getRbacManagerImpls().add( DEFAULT_RBAC_MANAGER_IMPL ); LdapConfiguration ldapConfiguration = redbackRuntimeConfiguration.getLdapConfiguration(); if ( ldapConfiguration == null ) redbackRuntimeConfiguration.setLdapConfiguration( ldapConfiguration ); redbackRuntimeConfiguration.setLdapGroupMappings( ldapGroupMappings ); redbackRuntimeConfiguration.setMigratedFromRedbackConfiguration( true ); if ( redbackRuntimeConfiguration.getUserManagerImpls().isEmpty() ) redbackRuntimeConfiguration.getUserManagerImpls().add( "jdo" ); updateRedbackRuntimeConfiguration( redbackRuntimeConfiguration ); log.info( "using userManagerImpls: {}", redbackRuntimeConfiguration.getUserManagerImpls() ); if ( redbackRuntimeConfiguration.getRbacManagerImpls().isEmpty() )
boolean userManagerChanged = redbackRuntimeConfiguration.getUserManagerImpls().size() != redbackRuntimeConfigurationAdmin.getRedbackRuntimeConfiguration().getUserManagerImpls().size(); userManagerChanged || ( redbackRuntimeConfiguration.getUserManagerImpls().toString().hashCode() != redbackRuntimeConfigurationAdmin.getRedbackRuntimeConfiguration().getUserManagerImpls().toString().hashCode() ); boolean rbacManagerChanged = redbackRuntimeConfiguration.getRbacManagerImpls().size() != redbackRuntimeConfigurationAdmin.getRedbackRuntimeConfiguration().getRbacManagerImpls().size(); rbacManagerChanged || ( redbackRuntimeConfiguration.getRbacManagerImpls().toString().hashCode() != redbackRuntimeConfigurationAdmin.getRedbackRuntimeConfiguration().getRbacManagerImpls().toString().hashCode() ); for (String um : redbackRuntimeConfiguration.getUserManagerImpls()) { if (um.contains("ldap")) { ldapConfigured=true; for (String rbm : redbackRuntimeConfiguration.getRbacManagerImpls()) { if (rbm.contains("ldap")) { ldapConfigured = true; redbackRuntimeConfiguration.getUserManagerImpls() ); userManager.initialize(); redbackRuntimeConfiguration.getRbacManagerImpls() ); rbacManager.initialize(); roleManager.initialize(); redbackRuntimeConfiguration.getUsersCacheConfiguration().getTimeToIdleSeconds() ); usersCache.setTimeToLiveSeconds(
org.apache.archiva.configuration.RedbackRuntimeConfiguration.class ); if ( redbackRuntimeConfiguration.getLdapConfiguration() == null ) redbackRuntimeConfiguration.setLdapConfiguration( new LdapConfiguration() ); res.setLdapConfiguration( getModelMapper().map( redbackRuntimeConfiguration.getLdapConfiguration(), org.apache.archiva.configuration.LdapConfiguration.class ) ); if ( redbackRuntimeConfiguration.getUsersCacheConfiguration() == null ) redbackRuntimeConfiguration.setUsersCacheConfiguration( new CacheConfiguration() ); res.setUsersCacheConfiguration( getModelMapper().map( redbackRuntimeConfiguration.getUsersCacheConfiguration(), org.apache.archiva.configuration.CacheConfiguration.class ) ); List<LdapGroupMapping> ldapGroupMappings = redbackRuntimeConfiguration.getLdapGroupMappings();
redbackRuntimeConfiguration.setLdapConfiguration( getModelMapper().map( runtimeConfiguration.getLdapConfiguration(), LdapConfiguration.class ) ); redbackRuntimeConfiguration.setUsersCacheConfiguration( getModelMapper().map( runtimeConfiguration.getUsersCacheConfiguration(), CacheConfiguration.class ) ); if ( redbackRuntimeConfiguration.getLdapConfiguration() == null ) redbackRuntimeConfiguration.setLdapConfiguration( new LdapConfiguration() ); if ( redbackRuntimeConfiguration.getUsersCacheConfiguration() == null ) redbackRuntimeConfiguration.setUsersCacheConfiguration( new CacheConfiguration() ); redbackRuntimeConfiguration.setLdapGroupMappings( ldapGroupMappings );
public List<PropertyEntry> getConfigurationPropertiesEntries() { configurationPropertiesEntries = new ArrayList<PropertyEntry>( getConfigurationProperties().size() ); for ( Map.Entry<String, String> entry : getConfigurationProperties().entrySet() ) { configurationPropertiesEntries.add( new PropertyEntry( entry.getKey(), entry.getValue() ) ); } Collections.sort( configurationPropertiesEntries ); return configurationPropertiesEntries; }
@Override public void updateLdapMapping( String ldapGroup, List<String> roles ) throws MappingException { try { RedbackRuntimeConfiguration redbackRuntimeConfiguration = redbackRuntimeConfigurationAdmin.getRedbackRuntimeConfiguration(); LdapGroupMapping ldapGroupMapping = new LdapGroupMapping( ldapGroup ); int idx = redbackRuntimeConfiguration.getLdapGroupMappings().indexOf( ldapGroupMapping ); if ( idx > -1 ) { logger.debug( "updateLdapMapping ldapGroup: {}, roles: {}", ldapGroup, roles ); ldapGroupMapping = redbackRuntimeConfiguration.getLdapGroupMappings().get( idx ); ldapGroupMapping.setRoleNames( roles ); } redbackRuntimeConfigurationAdmin.updateRedbackRuntimeConfiguration( redbackRuntimeConfiguration ); } catch ( RepositoryAdminException e ) { throw new MappingException( e.getMessage(), e ); } }
@PostConstruct protected void initialize() throws RepositoryAdminException { List<String> userManagerImpls = redbackRuntimeConfigurationAdmin.getRedbackRuntimeConfiguration().getUserManagerImpls(); userManagers = new ArrayList<>( userManagerImpls.size() ); for ( String beanId : userManagerImpls ) { userManagers.add( applicationContext.getBean( "userManager#" + beanId, UserManager.class ) ); } }
@Override public String getConcatenatedList( String key, String defaultValue ) { if ( UserConfigurationKeys.LDAP_BASEDN.equals( key ) ) { return getRedbackRuntimeConfiguration().getLdapConfiguration().getBaseDn(); } if ( UserConfigurationKeys.LDAP_BINDDN.equals( key ) ) { return getRedbackRuntimeConfiguration().getLdapConfiguration().getBindDn(); } if ( UserConfigurationKeys.LDAP_GROUPS_BASEDN.equals( key ) ) { return getRedbackRuntimeConfiguration().getLdapConfiguration().getBaseGroupsDn(); } return userConfiguration.getConcatenatedList( key, defaultValue ); }
@Override public void setLdapGroupMappings( Map<String, List<String>> mappings ) throws MappingException { try { RedbackRuntimeConfiguration redbackRuntimeConfiguration = redbackRuntimeConfigurationAdmin.getRedbackRuntimeConfiguration(); List<LdapGroupMapping> ldapGroupMappings = new ArrayList<>( mappings.size() ); for ( Map.Entry<String, List<String>> entry : mappings.entrySet() ) { ldapGroupMappings.add( new LdapGroupMapping( entry.getKey(), entry.getValue() ) ); } redbackRuntimeConfiguration.setLdapGroupMappings( ldapGroupMappings ); redbackRuntimeConfigurationAdmin.updateRedbackRuntimeConfiguration( redbackRuntimeConfiguration ); } catch ( RepositoryAdminException e ) { throw new MappingException( e.getMessage(), e ); } } }
boolean userManagerChanged = redbackRuntimeConfiguration.getUserManagerImpls().size() != redbackRuntimeConfigurationAdmin.getRedbackRuntimeConfiguration().getUserManagerImpls().size(); userManagerChanged || ( redbackRuntimeConfiguration.getUserManagerImpls().toString().hashCode() != redbackRuntimeConfigurationAdmin.getRedbackRuntimeConfiguration().getUserManagerImpls().toString().hashCode() ); boolean rbacManagerChanged = redbackRuntimeConfiguration.getRbacManagerImpls().size() != redbackRuntimeConfigurationAdmin.getRedbackRuntimeConfiguration().getRbacManagerImpls().size(); rbacManagerChanged || ( redbackRuntimeConfiguration.getRbacManagerImpls().toString().hashCode() != redbackRuntimeConfigurationAdmin.getRedbackRuntimeConfiguration().getRbacManagerImpls().toString().hashCode() ); for (String um : redbackRuntimeConfiguration.getUserManagerImpls()) { if (um.contains("ldap")) { ldapConfigured=true; for (String rbm : redbackRuntimeConfiguration.getRbacManagerImpls()) { if (rbm.contains("ldap")) { ldapConfigured = true; redbackRuntimeConfiguration.getUserManagerImpls() ); userManager.initialize(); redbackRuntimeConfiguration.getRbacManagerImpls() ); rbacManager.initialize(); roleManager.initialize(); redbackRuntimeConfiguration.getUsersCacheConfiguration().getTimeToIdleSeconds() ); usersCache.setTimeToLiveSeconds(
public List<PropertyEntry> getConfigurationPropertiesEntries() { configurationPropertiesEntries = new ArrayList<PropertyEntry>( getConfigurationProperties().size() ); for ( Map.Entry<String, String> entry : getConfigurationProperties().entrySet() ) { configurationPropertiesEntries.add( new PropertyEntry( entry.getKey(), entry.getValue() ) ); } Collections.sort( configurationPropertiesEntries ); return configurationPropertiesEntries; }
@Override public void updateLdapMapping( String ldapGroup, List<String> roles ) throws MappingException { try { RedbackRuntimeConfiguration redbackRuntimeConfiguration = redbackRuntimeConfigurationAdmin.getRedbackRuntimeConfiguration(); LdapGroupMapping ldapGroupMapping = new LdapGroupMapping( ldapGroup ); int idx = redbackRuntimeConfiguration.getLdapGroupMappings().indexOf( ldapGroupMapping ); if ( idx > -1 ) { logger.debug( "updateLdapMapping ldapGroup: {}, roles: {}", ldapGroup, roles ); ldapGroupMapping = redbackRuntimeConfiguration.getLdapGroupMappings().get( idx ); ldapGroupMapping.setRoleNames( roles ); } redbackRuntimeConfigurationAdmin.updateRedbackRuntimeConfiguration( redbackRuntimeConfiguration ); } catch ( RepositoryAdminException e ) { throw new MappingException( e.getMessage(), e ); } }
@PostConstruct @Override public void initialize() { try { List<String> userManagerImpls = redbackRuntimeConfigurationAdmin.getRedbackRuntimeConfiguration().getUserManagerImpls(); log.info( "use userManagerImpls: '{}'", userManagerImpls ); userManagerPerId = new LinkedHashMap<>( userManagerImpls.size() ); for ( String id : userManagerImpls ) { UserManager userManagerImpl = applicationContext.getBean( "userManager#" + id, UserManager.class ); setUserManagerImpl( userManagerImpl ); userManagerPerId.put( id, userManagerImpl ); } this.usersCache.clear(); this.useUsersCache = redbackRuntimeConfigurationAdmin.getRedbackRuntimeConfiguration().isUseUsersCache(); } catch ( RepositoryAdminException e ) { // revert to a default one ? log.error( e.getMessage(), e ); throw new RuntimeException( e.getMessage(), e ); } }
@PostConstruct @Override public void initialize() throws AuthenticationException { try { List<String> userManagerImpls = redbackRuntimeConfigurationAdmin.getRedbackRuntimeConfiguration().getUserManagerImpls(); userManagers = new ArrayList<>( userManagerImpls.size() ); for ( String beanId : userManagerImpls ) { userManagers.add( applicationContext.getBean( "userManager#" + beanId, UserManager.class ) ); } valid=true; } catch ( RepositoryAdminException e ) { log.error( "Error during repository initialization {}", e.getMessage(), e ); // throw new AuthenticationException( e.getMessage(), e ); } }
@PostConstruct @Override public void initialize() { try { LdapConfiguration ldapConfiguration = redbackRuntimeConfigurationAdmin.getRedbackRuntimeConfiguration().getLdapConfiguration(); ldapConnectionConfiguration = new LdapConnectionConfiguration(); ldapConnectionConfiguration.setHostname( ldapConfiguration.getHostName() ); ldapConnectionConfiguration.setPort( ldapConfiguration.getPort() ); ldapConnectionConfiguration.setSsl( ldapConfiguration.isSsl() ); ldapConnectionConfiguration.setBaseDn( ldapConfiguration.getBaseDn() ); ldapConnectionConfiguration.setContextFactory( ldapConfiguration.getContextFactory() ); ldapConnectionConfiguration.setBindDn( ldapConfiguration.getBindDn() ); ldapConnectionConfiguration.setPassword( ldapConfiguration.getPassword() ); ldapConnectionConfiguration.setAuthenticationMethod( ldapConfiguration.getAuthenticationMethod() ); ldapConnectionConfiguration.setExtraProperties( toProperties( ldapConfiguration.getExtraProperties() ) ); valid=true; } catch ( InvalidNameException e ) { log.error( "Error during initialization of LdapConnectionFactory {}", e.getMessage(), e ); // throw new RuntimeException( "Error while initializing connection factory.", e ); } catch ( RepositoryAdminException e ) { throw new RuntimeException( "Error while initializing ldapConnectionConfiguration: " + e.getMessage(), e ); } }