@Bean @ConditionalOnMissingBean public ContextSource ldapContextSource() { LdapContextSource source = new LdapContextSource(); source.setUserDn(this.properties.getUsername()); source.setPassword(this.properties.getPassword()); source.setAnonymousReadOnly(this.properties.getAnonymousReadOnly()); source.setBase(this.properties.getBase()); source.setUrls(this.properties.determineUrls(this.environment)); source.setBaseEnvironmentProperties( Collections.unmodifiableMap(this.properties.getBaseEnvironment())); return source; }
context.setBaseEnvironmentProperties(baseEnvironment);
context.setBaseEnvironmentProperties(baseEnvironment);
LdapContextSource buildLdapContextSource(LdapServerInventory inv, Map<String, Object> baseEnvironmentProperties) { LdapContextSource ldapContextSource; ldapContextSource = new LdapContextSource(); ldapContextSource.setUrl(inv.getUrl()); ldapContextSource.setBase(inv.getBase()); ldapContextSource.setUserDn(inv.getUsername()); ldapContextSource.setPassword(inv.getPassword()); ldapContextSource.setDirObjectFactory(DefaultDirObjectFactory.class); if (inv.getEncryption().equals(LdapEncryptionType.TLS.toString())) { setTls(ldapContextSource); } ldapContextSource.setCacheEnvironmentProperties(false); ldapContextSource.setPooled(false); ldapContextSource.setReferral("follow"); if (baseEnvironmentProperties != null && !baseEnvironmentProperties.isEmpty()) { ldapContextSource.setBaseEnvironmentProperties(baseEnvironmentProperties); } try { ldapContextSource.afterPropertiesSet(); logger.info("Test LDAP Context Source loaded "); } catch (Exception e) { logger.error("Test LDAP Context Source not loaded ", e); throw new CloudRuntimeException("Test LDAP Context Source not loaded", e); } return ldapContextSource; }
/** * Get authenticate LDAP template. * * @return LDAP template */ @Bean(name="authenticateLdapTemplate") public LdapTemplate getAuthenticateLdapTemplate() { LdapContextSource source = new LdapContextSource(); source.setUrl(System.getProperty("ldap.url")); source.setPooled(false); Map<String, Object> baseEnvironmentProperties = new HashMap<String, Object>(); baseEnvironmentProperties.put("com.sun.jndi.ldap.connect.timeout", System.getProperty("ldap.timeout")); source.setBaseEnvironmentProperties(baseEnvironmentProperties); source.afterPropertiesSet(); return new LdapTemplate(source); }
/** * Get transaction proxy. * * @return transaction proxy */ @Bean(name="contextSourceTransactionAwareProxy") public TransactionAwareContextSourceProxy getTransactionProxy() { LdapContextSource source = new LdapContextSource(); source.setUrl(System.getProperty("ldap.url")); // Do not set ldap.base, spring-ldap won't generate full DN in the object-to-directory mapping //source.setBase(System.getProperty("ldap.base")); source.setUserDn(System.getProperty("ldap.manager.dn")); source.setPassword(System.getProperty("ldap.manager.pswd")); source.setPooled(false); Map<String, Object> baseEnvironmentProperties = new HashMap<String, Object>(); baseEnvironmentProperties.put("com.sun.jndi.ldap.connect.timeout", System.getProperty("ldap.timeout")); source.setBaseEnvironmentProperties(baseEnvironmentProperties); source.afterPropertiesSet(); PoolingContextSource configurePooling = configurePooling(source); return new TransactionAwareContextSourceProxy(configurePooling); }
@Bean @ConditionalOnMissingBean public ContextSource contextSource() { LdapContextSource contextSource = new LdapContextSource(); contextSource.setUserDn(this.properties.getUsername()); contextSource.setPassword(this.properties.getPassword()); contextSource.setBase(this.properties.getBase()); contextSource.setUrls(this.properties.determineUrls(this.environment)); contextSource.setBaseEnvironmentProperties(Collections .<String, Object>unmodifiableMap(this.properties.getBaseEnvironment())); return contextSource; }
@Test public void testGetAnonymousEnvWithBaseEnvironment() throws Exception { tested.setUrl("ldap://ldap.example.com:389"); HashMap map = new HashMap(); map.put(LdapContextSource.SUN_LDAP_POOLING_FLAG, "true"); tested.setBaseEnvironmentProperties(map); tested.afterPropertiesSet(); Hashtable env = tested.getAnonymousEnv(); assertThat(env.get(Context.PROVIDER_URL)).isEqualTo("ldap://ldap.example.com:389"); assertThat(env.get(LdapContextSource.SUN_LDAP_POOLING_FLAG)).isNull(); }
@Test public void testGetAnonymousEnvWithPoolingInBaseEnvironmentAndPoolingOff() throws Exception { tested.setUrl("ldap://ldap.example.com:389"); HashMap map = new HashMap(); map.put(LdapContextSource.SUN_LDAP_POOLING_FLAG, "true"); tested.setBaseEnvironmentProperties(map); tested.setPooled(false); tested.afterPropertiesSet(); Hashtable env = tested.getAnonymousEnv(); assertThat(env.get(Context.PROVIDER_URL)).isEqualTo("ldap://ldap.example.com:389"); assertThat(env.get(LdapContextSource.SUN_LDAP_POOLING_FLAG)).isNull(); }
context.setBaseEnvironmentProperties(baseEnvironment);
context.setBaseEnvironmentProperties(baseEnvironment);
ctxSource.setBaseEnvironmentProperties(config.getBaseEnvironmentSettings());
ctxSource.setBaseEnvironmentProperties(config.getBaseEnvironmentSettings());
put("java.naming.ldap.attributes.binary", "thumbnailLogo replPropertyMetaData partialAttributeSet registeredAddress userPassword telexNumber partialAttributeDeletionList mS-DS-ConsistencyGuid attributeCertificateAttribute thumbnailPhoto teletexTerminalIdentifier replUpToDateVector dSASignature objectGUID"); }}; contextSource.setBaseEnvironmentProperties(baseEnvironment); contextSource.afterPropertiesSet();