/** * Returns a jndi connection factory using the properties found in the supplied connection config. If the supplied env * is null, the environment is retrieved from {@link #getDefaultEnvironment(ConnectionConfig, String)}. * * @param cc connection config * @param env context environment or null to use the default * * @return jndi connection factory */ protected JndiConnectionFactory getJndiConnectionFactory(final ConnectionConfig cc, final Map<String, Object> env) { SSLSocketFactory factory = config.getSslSocketFactory(); if (factory == null && (cc.getUseSSL() || cc.getLdapUrl().toLowerCase().contains("ldaps://"))) { // LDAPS hostname verification does not occur by default // set a default hostname verifier final LdapURL ldapUrl = new LdapURL(cc.getLdapUrl()); factory = ThreadLocalTLSSocketFactory.getHostnameVerifierFactory(cc.getSslConfig(), ldapUrl.getHostnames()); } return new JndiConnectionFactory( cc.getLdapUrl(), config, env != null ? env : getDefaultEnvironment(cc, factory != null ? factory.getClass().getName() : null)); }
throws Exception final Iterator<LdapURL.Entry> iter = url.getEntries().iterator(); Assert.assertEquals(entries.length, url.size()); for (LdapURL.Entry entry : entries) { final LdapURL.Entry e = iter.next(); compareEntries(entries[0], url.getEntry()); compareEntries(entries[entries.length - 1], url.getLastEntry()); hostnames[i] = entries[i].getHostname(); Assert.assertEquals(hostnames, url.getHostnames()); hostnamesWithSchemeAndPort[i] = entries[i].getHostnameWithSchemeAndPort(); Assert.assertEquals(hostnamesWithSchemeAndPort, url.getHostnamesWithSchemeAndPort()); urls[i] = entries[i].getUrl(); Assert.assertEquals(urls, url.getUrls());
/** * Creates a new ldap url. * * @param url space delimited list of ldap urls * @param delimiter to split url with */ public LdapURL(final String url, final String delimiter) { final String[] urls; if (NO_DELIMITER.equals(delimiter)) { urls = new String[] {url}; } else { urls = url.split(delimiter); } for (String s : urls) { ldapEntries.add(parseEntry(s)); } }
logger.debug("Following referral with URLs: {}", urls); for (String url : urls) { final LdapURL ldapUrl = new LdapURL(url); if (ldapUrl.getEntry().getHostname() == null) { continue; ldapUrl.getEntry().getHostnameWithSchemeAndPort()); try (Connection referralConn = cf.getConnection()) { referralConn.open();
@Override protected DeleteRequest createReferralRequest(final DeleteRequest request, final LdapURL url) { final DeleteRequest referralRequest = new DeleteRequest(); referralRequest.setControls(request.getControls()); referralRequest.setIntermediateResponseHandlers(request.getIntermediateResponseHandlers()); referralRequest.setReferralHandler( new DeleteReferralHandler(getReferralLimit(), getReferralDepth() + 1, getReferralConnectionFactory())); if (!url.getEntry().isDefaultBaseDn()) { referralRequest.setDn(url.getEntry().getBaseDn()); } else { referralRequest.setDn(request.getDn()); } return referralRequest; }
throws LdapException final LdapURL ldapUrl = new LdapURL(url); ldapConnectionConfig.setLdapHost(ldapUrl.getLastEntry().getHostname()); ldapConnectionConfig.setLdapPort(ldapUrl.getLastEntry().getPort());
new Object[][] { new Object[] { new LdapURL("ldap://"), new LdapURL.Entry[] { new LdapURL.Entry( }, new Object[] { new LdapURL("ldaps://"), new LdapURL.Entry[] { new LdapURL.Entry( }, new Object[] { new LdapURL("ldap:///o=University%20of%20Michigan,c=US"), new LdapURL.Entry[] { new LdapURL.Entry( }, new Object[] { new LdapURL("ldap://ldap1.example.net/o=University%20of%20Michigan,c=US"), new LdapURL.Entry[] { new LdapURL.Entry( }, new Object[] { new LdapURL("ldap://ldap1.example.net/o=University%20of%20Michigan,c=US" + "?postalAddress"), new LdapURL.Entry[] {
@Override protected DeleteRequest createReferralRequest(final DeleteRequest request, final LdapURL url) { final DeleteRequest referralRequest = new DeleteRequest(); referralRequest.setControls(request.getControls()); referralRequest.setIntermediateResponseHandlers(request.getIntermediateResponseHandlers()); referralRequest.setReferralHandler( new DeleteReferralHandler(getReferralLimit(), getReferralDepth() + 1, getReferralConnectionFactory())); if (!url.getEntry().isDefaultBaseDn()) { referralRequest.setDn(url.getEntry().getBaseDn()); } else { referralRequest.setDn(request.getDn()); } return referralRequest; }
logger.debug("Following referral with URLs: {}", urls); for (String url : urls) { final LdapURL ldapUrl = new LdapURL(url); if (ldapUrl.getEntry().getHostname() == null) { continue; ldapUrl.getEntry().getHostnameWithSchemeAndPort()); try (Connection referralConn = cf.getConnection()) { referralConn.open();
final LdapURL ldapUrl = new LdapURL(cc.getLdapUrl()); factory = ThreadLocalTLSSocketFactory.getHostnameVerifierFactory(cc.getSslConfig(), ldapUrl.getHostnames()); threadLocal = true;
@Override protected DeleteRequest createReferralRequest(final DeleteRequest request, final LdapURL url) { final DeleteRequest referralRequest = new DeleteRequest(); referralRequest.setControls(request.getControls()); referralRequest.setIntermediateResponseHandlers(request.getIntermediateResponseHandlers()); referralRequest.setReferralHandler( new DeleteReferralHandler(getReferralLimit(), getReferralDepth() + 1, getReferralConnectionFactory())); if (!url.getEntry().isDefaultBaseDn()) { referralRequest.setDn(url.getEntry().getBaseDn()); } else { referralRequest.setDn(request.getDn()); } return referralRequest; }
logger.debug("Following referral with URLs: {}", urls); for (String url : urls) { final LdapURL ldapUrl = new LdapURL(url); if (ldapUrl.getEntry().getHostname() == null) { continue; ldapUrl.getEntry().getHostnameWithSchemeAndPort()); try (Connection referralConn = cf.getConnection()) { referralConn.open();
/** * Creates a new ldap url. * * @param url space delimited list of ldap urls * @param delimiter to split url with */ public LdapURL(final String url, final String delimiter) { final String[] urls; if (NO_DELIMITER.equals(delimiter)) { urls = new String[] {url}; } else { urls = url.split(delimiter); } for (String s : urls) { ldapEntries.add(parseEntry(s)); } }
final LdapURL ldapUrl = new LdapURL(cc.getLdapUrl()); factory = ThreadLocalTLSSocketFactory.getHostnameVerifierFactory(cc.getSslConfig(), ldapUrl.getHostnames()); threadLocal = true;
@Override protected AddRequest createReferralRequest(final AddRequest request, final LdapURL url) { final AddRequest referralRequest = new AddRequest(); referralRequest.setControls(request.getControls()); referralRequest.setIntermediateResponseHandlers(request.getIntermediateResponseHandlers()); referralRequest.setReferralHandler( new AddReferralHandler(getReferralLimit(), getReferralDepth() + 1, getReferralConnectionFactory())); if (!url.getEntry().isDefaultBaseDn()) { referralRequest.setDn(url.getEntry().getBaseDn()); } else { referralRequest.setDn(request.getDn()); } referralRequest.setLdapAttributes(request.getLdapAttributes()); return referralRequest; }
/** * Creates a new ldap url. * * @param url space delimited list of ldap urls * @param delimiter to split url with */ public LdapURL(final String url, final String delimiter) { final String[] urls; if (NO_DELIMITER.equals(delimiter)) { urls = new String[] {url}; } else { urls = url.split(delimiter); } for (String s : urls) { ldapEntries.add(parseEntry(s)); } }
final LdapURL ldapUrl = new LdapURL(cc.getLdapUrl()); final SSLContextInitializer contextInit; if (cc.getSslConfig() != null && !cc.getSslConfig().isEmpty()) { contextInit.setHostnameVerifierConfig(new HostnameVerifierConfig(verifier, ldapUrl.getHostnames())); } else { contextInit.setHostnameVerifierConfig( new HostnameVerifierConfig(new DefaultHostnameVerifier(), ldapUrl.getHostnames())); new HostnameVerifyingTrustManager(new DefaultHostnameVerifier(), ldapUrl.getHostnames()));
@Override protected CompareRequest createReferralRequest(final CompareRequest request, final LdapURL url) { final CompareRequest referralRequest = new CompareRequest(); referralRequest.setControls(request.getControls()); referralRequest.setIntermediateResponseHandlers(request.getIntermediateResponseHandlers()); referralRequest.setReferralHandler( new CompareReferralHandler(getReferralLimit(), getReferralDepth() + 1, getReferralConnectionFactory())); if (!url.getEntry().isDefaultBaseDn()) { referralRequest.setDn(url.getEntry().getBaseDn()); } else { referralRequest.setDn(request.getDn()); } referralRequest.setAttribute(request.getAttribute()); return referralRequest; }
@Override protected AddRequest createReferralRequest(final AddRequest request, final LdapURL url) { final AddRequest referralRequest = new AddRequest(); referralRequest.setControls(request.getControls()); referralRequest.setIntermediateResponseHandlers(request.getIntermediateResponseHandlers()); referralRequest.setReferralHandler( new AddReferralHandler(getReferralLimit(), getReferralDepth() + 1, getReferralConnectionFactory())); if (!url.getEntry().isDefaultBaseDn()) { referralRequest.setDn(url.getEntry().getBaseDn()); } else { referralRequest.setDn(request.getDn()); } referralRequest.setLdapAttributes(request.getLdapAttributes()); return referralRequest; }
@Override protected ModifyRequest createReferralRequest(final ModifyRequest request, final LdapURL url) { final ModifyRequest referralRequest = new ModifyRequest(); referralRequest.setControls(request.getControls()); referralRequest.setIntermediateResponseHandlers(request.getIntermediateResponseHandlers()); referralRequest.setReferralHandler( new ModifyReferralHandler(getReferralLimit(), getReferralDepth() + 1, getReferralConnectionFactory())); if (!url.getEntry().isDefaultBaseDn()) { referralRequest.setDn(url.getEntry().getBaseDn()); } else { referralRequest.setDn(request.getDn()); } referralRequest.setAttributeModifications(request.getAttributeModifications()); return referralRequest; }