List of usage examples for javax.naming Context PROVIDER_URL
String PROVIDER_URL
To view the source code for javax.naming Context PROVIDER_URL.
Click Source Link
From source file:org.gbif.portal.registration.LDAPUtils.java
/** * Get LDAP context./*from www.ja va 2 s . c o m*/ * @param url * @return * @throws NamingException */ public DirContext getContext(String url) throws NamingException { Hashtable env = new Hashtable(); env.put(Context.PROVIDER_URL, url); env.put(Context.INITIAL_CONTEXT_FACTORY, initialContextFactory); env.put(Context.SECURITY_AUTHENTICATION, authenticationType); env.put(Context.SECURITY_PRINCIPAL, securityPrincipal); env.put(Context.SECURITY_CREDENTIALS, securityCredentials); DirContext ctx = new InitialDirContext(env); return ctx; }
From source file:org.dcm4che3.tool.dcmldap.DcmLdap.java
private static Hashtable<?, ?> ldapEnv(CommandLine cl) { Hashtable<String, Object> env = new Hashtable<>(); env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); env.put("java.naming.ldap.attributes.binary", "dicomVendorData"); env.put(Context.PROVIDER_URL, cl.getOptionValue("H", DEFAULT_LDAP_URI)); env.put(Context.SECURITY_PRINCIPAL, cl.getOptionValue("D", DEFAULT_BIND_DN)); env.put(Context.SECURITY_CREDENTIALS, cl.getOptionValue("w", DEFAULT_PASSWORD)); return env;/* w w w. j ava 2s. c o m*/ }
From source file:org.wso2.carbon.bpel.b4p.coordination.db.DatabaseUtil.java
@SuppressWarnings("unchecked") private <T> T lookupInJndi(String objName) throws Exception { ClassLoader old = Thread.currentThread().getContextClassLoader(); Thread.currentThread().setContextClassLoader(getClass().getClassLoader()); try {//from ww w.jav a 2 s . co m InitialContext ctx = null; try { if (bpelServerConfiguration.getDataSourceJNDIRepoInitialContextFactory() != null && bpelServerConfiguration.getDataSourceJNDIRepoProviderURL() != null) { Properties jndiProps = new Properties(); jndiProps.setProperty(Context.INITIAL_CONTEXT_FACTORY, bpelServerConfiguration.getDataSourceJNDIRepoInitialContextFactory()); jndiProps.setProperty(Context.PROVIDER_URL, bpelServerConfiguration.getDataSourceJNDIRepoProviderURL()); ctx = new InitialContext(jndiProps); } else { ctx = new InitialContext(); } return (T) ctx.lookup(objName); } finally { if (ctx != null) { try { ctx.close(); } catch (Exception ex1) { log.error("Error closing JNDI connection.", ex1); } } } } finally { Thread.currentThread().setContextClassLoader(old); } }
From source file:org.wso2.carbon.user.core.ldap.LDAPConnectionContext.java
@SuppressWarnings({ "rawtypes", "unchecked" }) public LDAPConnectionContext(RealmConfiguration realmConfig) throws UserStoreException { //if DNS is enabled, populate DC Map String DNSUrl = realmConfig.getUserStoreProperty(LDAPConstants.DNS_URL); if (DNSUrl != null) { DNSDomainName = realmConfig.getUserStoreProperty(LDAPConstants.DNS_DOMAIN_NAME); if (DNSDomainName == null) { throw new UserStoreException("DNS is enabled, but DNS domain name not provided."); } else {/*from ww w. j a v a 2s . com*/ environmentForDNS = new Hashtable(); environmentForDNS.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.dns.DnsContextFactory"); environmentForDNS.put("java.naming.provider.url", DNSUrl); populateDCMap(); } //need to keep track of if the user store config is read only String readOnlyString = realmConfig .getUserStoreProperty(UserCoreConstants.RealmConfig.PROPERTY_READ_ONLY); if (readOnlyString != null) { readOnly = Boolean.parseBoolean(readOnlyString); } } String rawConnectionURL = realmConfig.getUserStoreProperty(LDAPConstants.CONNECTION_URL); String connectionURL = null; //if DNS enabled in AD case, this can be null if (rawConnectionURL != null) { String portInfo = rawConnectionURL.split(":")[2]; String port = null; // if the port contains a template string that refers to carbon.xml if ((portInfo.contains("${")) && (portInfo.contains("}"))) { port = Integer.toString(CarbonUtils.getPortFromServerConfig(portInfo)); } if (port != null) { connectionURL = rawConnectionURL.replace(portInfo, port); } else { // if embedded-ldap is not enabled, connectionURL = realmConfig.getUserStoreProperty(LDAPConstants.CONNECTION_URL); } } String connectionName = realmConfig.getUserStoreProperty(LDAPConstants.CONNECTION_NAME); String connectionPassword = realmConfig.getUserStoreProperty(LDAPConstants.CONNECTION_PASSWORD); if (log.isDebugEnabled()) { log.debug("Connection Name :: " + connectionName + ", Connection URL :: " + connectionURL); } environment = new Hashtable(); environment.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); environment.put(Context.SECURITY_AUTHENTICATION, "simple"); /** * In carbon JNDI context we need to by pass specific tenant context and we need the base * context for LDAP operations. */ environment.put(CarbonConstants.REQUEST_BASE_CONTEXT, "true"); if (connectionName != null) { environment.put(Context.SECURITY_PRINCIPAL, connectionName); } if (connectionPassword != null) { environment.put(Context.SECURITY_CREDENTIALS, connectionPassword); } if (connectionURL != null) { environment.put(Context.PROVIDER_URL, connectionURL); } // Enable connection pooling if property is set in user-mgt.xml boolean isLDAPConnectionPoolingEnabled = false; String value = realmConfig.getUserStoreProperty(LDAPConstants.CONNECTION_POOLING_ENABLED); if (value != null && !value.trim().isEmpty()) { isLDAPConnectionPoolingEnabled = Boolean.parseBoolean(value); } environment.put("com.sun.jndi.ldap.connect.pool", isLDAPConnectionPoolingEnabled ? "true" : "false"); // set referral status if provided in configuration. if (realmConfig.getUserStoreProperty(LDAPConstants.PROPERTY_REFERRAL) != null) { environment.put("java.naming.referral", realmConfig.getUserStoreProperty(LDAPConstants.PROPERTY_REFERRAL)); } String binaryAttribute = realmConfig.getUserStoreProperty(LDAPConstants.LDAP_ATTRIBUTES_BINARY); if (binaryAttribute != null) { environment.put(LDAPConstants.LDAP_ATTRIBUTES_BINARY, binaryAttribute); } //Set connect timeout if provided in configuration. Otherwise set default value String connectTimeout = realmConfig.getUserStoreProperty(CONNECTION_TIME_OUT); if (connectTimeout != null && !connectTimeout.trim().isEmpty()) { environment.put("com.sun.jndi.ldap.connect.timeout", connectTimeout); } else { environment.put("com.sun.jndi.ldap.connect.timeout", "5000"); } }
From source file:info.jtrac.acegi.JtracLdapAuthenticationProvider.java
/** * displayName and mail are returned always, the map allows us to support * getting arbitrary properties in the future, hopefully *//*from w w w. j a v a 2s. c om*/ public Map<String, String> bind(String loginName, String password) throws Exception { Hashtable env = new Hashtable(); env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); env.put(Context.PROVIDER_URL, ldapUrl); env.put(Context.SECURITY_AUTHENTICATION, "simple"); LdapContext ctx = null; if (activeDirectoryDomain != null) { // we are using Active Directory Control[] controls = new Control[] { control }; ctx = new InitialLdapContext(env, controls); logger.debug("Active Directory LDAP context initialized"); ctx.addToEnvironment(Context.SECURITY_PRINCIPAL, activeDirectoryDomain + "\\" + loginName); ctx.addToEnvironment(Context.SECURITY_CREDENTIALS, password); // javax.naming.AuthenticationException ctx.reconnect(controls); logger.debug("Active Directory LDAP bind successful"); } else { // standard LDAP env.put(Context.SECURITY_PRINCIPAL, searchKey + "=" + loginName + "," + searchBase); env.put(Context.SECURITY_CREDENTIALS, password); ctx = new InitialLdapContext(env, null); logger.debug("Standard LDAP bind successful"); } SearchControls sc = new SearchControls(); sc.setSearchScope(SearchControls.SUBTREE_SCOPE); sc.setReturningAttributes(returningAttributes); NamingEnumeration results = ctx.search(searchBase, searchKey + "=" + loginName, sc); while (results.hasMoreElements()) { SearchResult sr = (SearchResult) results.next(); Attributes attrs = sr.getAttributes(); logger.debug("attributes: " + attrs); Map<String, String> map = new HashMap<String, String>(returningAttributes.length); for (String key : returningAttributes) { Attribute attr = attrs.get(key); if (attr != null) { map.put(key, (String) attr.get()); } } return map; // there should be only one anyway } // if we reached here, there was no search result throw new Exception("no results returned from ldap"); }
From source file:de.sub.goobi.helper.ldap.Ldap.java
/** * Check if connection with login and password possible. * * @param inBenutzer//w ww . java2 s . c om * User object * @param inPasswort * String * @return Login correct or not */ public boolean isUserPasswordCorrect(User inBenutzer, String inPasswort) { logger.debug("start login session with ldap"); Hashtable<String, String> env = getLdapConnectionSettings(); // Start TLS if (ConfigCore.getBooleanParameter("ldap_useTLS", false)) { logger.debug("use TLS for auth"); env = new Hashtable<>(); env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); env.put(Context.PROVIDER_URL, ConfigCore.getParameter("ldap_url")); env.put("java.naming.ldap.version", "3"); LdapContext ctx = null; StartTlsResponse tls = null; try { ctx = new InitialLdapContext(env, null); // Authentication must be performed over a secure channel tls = (StartTlsResponse) ctx.extendedOperation(new StartTlsRequest()); tls.negotiate(); // Authenticate via SASL EXTERNAL mechanism using client X.509 // certificate contained in JVM keystore ctx.addToEnvironment(Context.SECURITY_AUTHENTICATION, "simple"); ctx.addToEnvironment(Context.SECURITY_PRINCIPAL, getUserDN(inBenutzer)); ctx.addToEnvironment(Context.SECURITY_CREDENTIALS, inPasswort); ctx.reconnect(null); return true; // Perform search for privileged attributes under authenticated // context } catch (IOException e) { logger.error("TLS negotiation error:", e); return false; } catch (NamingException e) { logger.error("JNDI error:", e); return false; } finally { if (tls != null) { try { // Tear down TLS connection tls.close(); } catch (IOException e) { logger.error(e); } } if (ctx != null) { try { // Close LDAP connection ctx.close(); } catch (NamingException e) { logger.error(e); } } } } else { logger.debug("don't use TLS for auth"); if (ConfigCore.getBooleanParameter("useSimpleAuthentification", false)) { env.put(Context.SECURITY_AUTHENTICATION, "none"); // TODO auf passwort testen } else { env.put(Context.SECURITY_PRINCIPAL, getUserDN(inBenutzer)); env.put(Context.SECURITY_CREDENTIALS, inPasswort); } logger.debug("ldap environment set"); try { if (logger.isDebugEnabled()) { logger.debug("start classic ldap authentification"); logger.debug("user DN is " + getUserDN(inBenutzer)); } if (ConfigCore.getParameter("ldap_AttributeToTest") == null) { logger.debug("ldap attribute to test is null"); DirContext ctx = new InitialDirContext(env); ctx.close(); return true; } else { logger.debug("ldap attribute to test is not null"); DirContext ctx = new InitialDirContext(env); Attributes attrs = ctx.getAttributes(getUserDN(inBenutzer)); Attribute la = attrs.get(ConfigCore.getParameter("ldap_AttributeToTest")); logger.debug("ldap attributes set"); String test = (String) la.get(0); if (test.equals(ConfigCore.getParameter("ldap_ValueOfAttribute"))) { logger.debug("ldap ok"); ctx.close(); return true; } else { logger.debug("ldap not ok"); ctx.close(); return false; } } } catch (NamingException e) { if (logger.isDebugEnabled()) { logger.debug("login not allowed for " + inBenutzer.getLogin(), e); } return false; } } }
From source file:org.exoplatform.services.organization.DummyLDAPServiceImpl.java
public DummyLDAPServiceImpl() throws Exception { File workingDirectory = new File("target/working-server"); workingDirectory.mkdirs();//from w w w . j a va2 s . com doDelete(workingDirectory); // Initialize the LDAP service service = new DefaultDirectoryService(); service.setWorkingDirectory(workingDirectory); // first load the schema initSchemaPartition(); // then the system partition // this is a MANDATORY partition Partition systemPartition = addPartition("system", ServerDNConstants.SYSTEM_DN); service.setSystemPartition(systemPartition); // Disable the ChangeLog system service.getChangeLog().setEnabled(false); // Create a new partition Partition partition = addPartition("eXoTestPartition", "dc=exoplatform,dc=org"); // Index some attributes on the partition addIndex(partition, "objectClass", "ou", "uid"); service.setShutdownHookEnabled(false); service.startup(); // Inject the eXo root entry if it does not already exist if (!service.getAdminSession().exists(partition.getSuffixDn())) { DN dnExo = new DN("dc=exoplatform,dc=org"); ServerEntry entryExo = service.newEntry(dnExo); entryExo.add("objectClass", "top", "domain", "extensibleObject"); entryExo.add("dc", "exoplatform"); service.getAdminSession().add(entryExo); } port = AvailablePortFinder.getNextAvailable(1024); server = new LdapServer(); server.setTransports(new TcpTransport(port)); server.setDirectoryService(service); server.start(); // server launched and configured // configuration of client side env.put(DirectoryService.JNDI_KEY, service); env.put(Context.PROVIDER_URL, ""); env.put(Context.SECURITY_PRINCIPAL, "uid=admin,ou=system"); env.put(Context.SECURITY_CREDENTIALS, "secret"); env.put(Context.SECURITY_AUTHENTICATION, "simple"); env.put(Context.INITIAL_CONTEXT_FACTORY, CoreContextFactory.class.getName()); // Add the new schema needed for COR-293 addNewSchema(); }
From source file:org.apache.servicemix.jms.JmsSpringJcaTest.java
protected AbstractXmlApplicationContext createBeanFactory() { System.setProperty(Context.INITIAL_CONTEXT_FACTORY, SpringInitialContextFactory.class.getName()); System.setProperty(Context.PROVIDER_URL, "org/apache/servicemix/jms/jndi.xml"); return new ClassPathXmlApplicationContext("org/apache/servicemix/jms/spring-jca.xml"); }
From source file:org.grouter.core.readers.JmsReaderJob.java
private static InitialContext getInitialContext(String providerUrl, String initialContextFactory, String urlPkgPrefixes) throws NamingException { Hashtable<String, String> hashtable = new Hashtable<String, String>(); hashtable.put(Context.INITIAL_CONTEXT_FACTORY, initialContextFactory); hashtable.put(Context.PROVIDER_URL, providerUrl); hashtable.put(Context.URL_PKG_PREFIXES, urlPkgPrefixes); return new InitialContext(hashtable); }
From source file:com.konakart.bl.LDAPMgrCore.java
/** * Called if the LDAP module is installed and active. This method should return: * <ul>//from w w w . j a v a 2 s . c om * <li>A negative number in order for the login attempt to fail. The KonaKart login() method * will return a null sessionId</li> * <li>Zero to signal that this method is not implemented. The KonaKart login() method will * perform the credential check.</li> * <li>A positive number for the login attempt to pass. The KonaKart login() will not check * credentials, and will log in the customer, returning a valid session id.</li> * </ul> * This method may need to be modified slightly depending on the structure of your LDAP. The * example works when importing the exampleData.ldif file in the LDAP module jar: * * dn: cn=Robert Smith,ou=people,dc=example,dc=com<br/> * objectclass: inetOrgPerson<br/> * cn: Robert Smith<br/> * cn: Robert J Smith<br/> * cn: bob smith<br/> * sn: smith<br/> * uid: rjsmith<br/> * userpassword: rJsmitH<br/> * carlicense: HISCAR 123<br/> * homephone: 555-111-2222<br/> * mail: r.smith@example.com<br/> * mail: rsmith@example.com<br/> * mail: bob.smith@example.com<br/> * description: swell guy<br/> * * The code attempts to connect to LDAP using the username, password and URL in the * configuration variables set when the module was installed through the admin app.<br/> * * After having connected, the person object is searched for using the email address of the * user. If found we use the "cn" attribute and the password of the user to attempt to bind to * LDAP. If the bind is successful, we return a positive number which means that authentication * was successful. * * @param emailAddr * The user name required to log in * @param password * The log in password * @return Returns an integer * @throws Exception */ public int checkCredentials(String emailAddr, String password) throws Exception { DirContext ctx = null; try { Hashtable<String, String> environment = new Hashtable<String, String>(); if (log.isDebugEnabled()) { log.debug("LDAP connection URL = " + url); log.debug("LDAP user name = " + ldapUserName); log.debug("LDAP person object distinguished name (DN) = " + personDN); } if (ldapUserName == null) { throw new KKException( "Cannot access LDAP because the MODULE_OTHER_LDAP_USER_NAME configuration variable hasn't been set."); } if (ldapPassword == null) { throw new KKException( "Cannot access LDAP because the MODULE_OTHER_LDAP_PASSWORD configuration variable hasn't been set."); } if (url == null) { throw new KKException( "Cannot access LDAP because the MODULE_OTHER_LDAP_URL configuration variable hasn't been set."); } if (personDN == null) { throw new KKException( "Cannot validate through LDAP because the MODULE_OTHER_LDAP_PERSON_DN (Distinguished Name of Person Object) configuration variable hasn't been set."); } environment.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); environment.put(Context.SECURITY_AUTHENTICATION, "simple"); environment.put(Context.PROVIDER_URL, url); environment.put(Context.SECURITY_PRINCIPAL, ldapUserName); environment.put(Context.SECURITY_CREDENTIALS, ldapPassword); /* * connect to LDAP using the credentials and connection string from the configuration * variables */ try { ctx = new InitialDirContext(environment); } catch (Exception e) { log.error("Cannot connect to LDAP", e); return -1; } /* Specify the search filter on the eMail address */ String filter = "(mail=" + emailAddr + ")"; /* * limit returned attributes to those we care about. In this case we only require the * "cn" attribute which we will use to attempt to bind the user in order to validate his * password */ String[] attrIDs = { "cn" }; SearchControls ctls = new SearchControls(); ctls.setReturningAttributes(attrIDs); ctls.setSearchScope(SearchControls.SUBTREE_SCOPE); /* Search for objects using filter and controls */ NamingEnumeration<SearchResult> answer = ctx.search(personDN, filter, ctls); /* close the connection */ ctx.close(); if (answer == null || !answer.hasMore()) { return -1; } SearchResult sr = answer.next(); Attributes attrs = sr.getAttributes(); String cn = attrs.get("cn").toString(); if (log.isDebugEnabled()) { log.debug("cn of user with eMail (" + emailAddr + ") is " + cn); } /* * cn could be in the format "cn: Peter Smith, Pete Smith, Smithy" so we need to capture * just the first entry */ if (cn != null) { if (cn.contains(",")) { cn = cn.split(",")[0]; if (cn.contains(":")) { cn = cn.split(":")[1]; } } else if (cn.contains(":")) { cn = cn.split(":")[1]; } } if (log.isDebugEnabled()) { log.debug("Cleaned cn of user with eMail (" + emailAddr + ") is " + cn); } /* Now we try to bind as the user */ String userName = "cn=" + cn + "," + personDN; if (log.isDebugEnabled()) { log.debug("LDAP user name of user with eMail (" + emailAddr + ") is " + userName); } /* Bind as the user */ environment.put(Context.SECURITY_PRINCIPAL, userName); environment.put(Context.SECURITY_CREDENTIALS, password); try { ctx = new InitialDirContext(environment); } catch (Exception e) { if (log.isDebugEnabled()) { log.debug("Could not bind user " + userName); } return -1; } ctx.close(); if (log.isDebugEnabled()) { log.debug("user with eMail (" + emailAddr + ") was successfully authenticated using LDAP"); } return 1; } finally { if (ctx != null) { try { ctx.close(); } catch (NamingException e) { log.error("Received an exception while closing the LDAP DirContext", e); } } } }