Java Code Examples for javax.naming.ldap.LdapName#size()
The following examples show how to use
javax.naming.ldap.LdapName#size() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: LdapGroupSearcherFactory.java From wildfly-core with GNU Lesser General Public License v2.1 | 6 votes |
private LdapEntry parseRole(String dn, String groupNameAttribute, URI groupReferralAddress) { try { LdapName ldapName = new LdapName(Rdn.unescapeValue(dn).toString()); for (int i = ldapName.size() - 1; i >= 0; i--) { String rdnString = ldapName.get(i); Rdn rdn = new Rdn(rdnString); Attribute attr = rdn.toAttributes().get(groupNameAttribute); if (attr != null) { Object value = attr.get(); if (value != null) { return new LdapEntry( (value instanceof byte[]) ? new String((byte[]) value, StandardCharsets.UTF_8) : value.toString(), dn, groupReferralAddress); } } } } catch (NamingException e) { SECURITY_LOGGER.tracef("Unable to parse role from DN (%s): %s", dn, e.getMessage()); } return null; }
Example 2
Source File: LdapUtils.java From spring-ldap with Apache License 2.0 | 6 votes |
/** * Remove the supplied path from the beginning the specified * <code>Name</code> if the name instance starts with * <code>path</code>. Useful for stripping base path suffix from a * <code>Name</code>. The original Name will not be affected. * * @param dn the dn to strip from. * @param pathToRemove the path to remove from the beginning the dn instance. * @return an LdapName instance that is a copy of the original name with the * specified path stripped from its beginning. * @since 2.0 */ public static LdapName removeFirst(Name dn, Name pathToRemove) { Assert.notNull(dn, "dn must not be null"); Assert.notNull(pathToRemove, "pathToRemove must not be null"); LdapName result = newLdapName(dn); LdapName path = returnOrConstructLdapNameFromName(pathToRemove); if(path.size() == 0 || !dn.startsWith(path)) { return result; } for(int i = 0; i < path.size(); i++) { try { result.remove(0); } catch (InvalidNameException e) { throw convertLdapException(e); } } return result; }
Example 3
Source File: ReadOnlyLDAPUserStoreManager.java From micro-integrator with Apache License 2.0 | 5 votes |
/** * This method escapes the special characters in a LdapName * according to the ldap filter escaping standards * @param ldn * @return */ private String escapeLdapNameForFilter(LdapName ldn){ if (ldn == null) { if (log.isDebugEnabled()) { log.debug("Received null value to escape special characters. Returning null"); } return null; } boolean replaceEscapeCharacters = true; String replaceEscapeCharactersAtUserLoginString = realmConfig .getUserStoreProperty(UserCoreConstants.RealmConfig.PROPERTY_REPLACE_ESCAPE_CHARACTERS_AT_USER_LOGIN); if (replaceEscapeCharactersAtUserLoginString != null) { replaceEscapeCharacters = Boolean .parseBoolean(replaceEscapeCharactersAtUserLoginString); if (log.isDebugEnabled()) { log.debug("Replace escape characters configured to: " + replaceEscapeCharactersAtUserLoginString); } } if (replaceEscapeCharacters) { String escapedDN = ""; for (int i = ldn.size()-1; i > -1; i--) { //escaping the rdns separately and re-constructing the DN escapedDN = escapedDN + escapeSpecialCharactersForFilterWithStarAsRegex(ldn.get(i)); if (i != 0) { escapedDN += ","; } } if (log.isDebugEnabled()) { log.debug("Escaped DN value for filter : " + escapedDN); } return escapedDN; } else { return ldn.toString(); } }
Example 4
Source File: LdapHelper.java From deprecated-security-advanced-modules with Apache License 2.0 | 5 votes |
private static String escapeDn(String dn) throws InvalidNameException { final LdapName dnName = new LdapName(dn); final List<Rdn> escaped = new ArrayList<>(dnName.size()); for(Rdn rdn: dnName.getRdns()) { escaped.add(new Rdn(rdn.getType(), escapeForwardSlash(rdn.getValue()))); } return new LdapName(escaped).toString(); }
Example 5
Source File: LdapRealm.java From zeppelin with Apache License 2.0 | 4 votes |
boolean isUserMemberOfDynamicGroup(LdapName userLdapDn, String memberUrl, final LdapContextFactory ldapContextFactory) throws NamingException { // ldap://host:port/dn?attributes?scope?filter?extensions if (memberUrl == null) { return false; } String[] tokens = memberUrl.split("\\?"); if (tokens.length < 4) { return false; } String searchBaseString = tokens[0].substring(tokens[0].lastIndexOf("/") + 1); String searchScope = tokens[2]; String searchFilter = tokens[3]; LdapName searchBaseDn = new LdapName(searchBaseString); // do scope test if ("base".equalsIgnoreCase(searchScope)) { log.debug("DynamicGroup SearchScope base"); return false; } if (!userLdapDn.toString().endsWith(searchBaseDn.toString())) { return false; } if ("one".equalsIgnoreCase(searchScope) && (userLdapDn.size() != searchBaseDn.size() - 1)) { log.debug("DynamicGroup SearchScope one"); return false; } // search for the filter, substituting base with userDn // search for base_dn=userDn, scope=base, filter=filter LdapContext systemLdapCtx = null; systemLdapCtx = ldapContextFactory.getSystemLdapContext(); boolean member = false; NamingEnumeration<SearchResult> searchResultEnum = null; try { searchResultEnum = systemLdapCtx.search(userLdapDn, searchFilter, "sub".equalsIgnoreCase(searchScope) ? SUBTREE_SCOPE : ONELEVEL_SCOPE); if (searchResultEnum.hasMore()) { return true; } } finally { try { if (searchResultEnum != null) { searchResultEnum.close(); } } finally { LdapUtils.closeContext(systemLdapCtx); } } return member; }
Example 6
Source File: KnoxLdapRealm.java From knox with Apache License 2.0 | 4 votes |
boolean isUserMemberOfDynamicGroup(LdapName userLdapDn, String memberUrl, final LdapContextFactory ldapContextFactory) throws NamingException { // ldap://host:port/dn?attributes?scope?filter?extensions boolean member = false; if (memberUrl == null) { return false; } String[] tokens = memberUrl.split("\\?"); if (tokens.length < 4) { return false; } String searchBaseString = tokens[0] .substring(tokens[0].lastIndexOf('/') + 1); String searchScope = tokens[2]; String searchFilter = tokens[3]; LdapName searchBaseDn = new LdapName(searchBaseString); // do scope test if ("base".equalsIgnoreCase(searchScope)) { return false; } if (!userLdapDn.toString().endsWith(searchBaseDn.toString())) { return false; } if ("one".equalsIgnoreCase(searchScope) && (userLdapDn.size() != searchBaseDn.size() - 1)) { return false; } // search for the filter, substituting base with userDn // search for base_dn=userDn, scope=base, filter=filter LdapContext systemLdapCtx; systemLdapCtx = ldapContextFactory.getSystemLdapContext(); NamingEnumeration<SearchResult> searchResultEnum = null; try { searchResultEnum = systemLdapCtx .search(userLdapDn, searchFilter, "sub".equalsIgnoreCase(searchScope) ? SUBTREE_SCOPE : ONELEVEL_SCOPE); if (searchResultEnum.hasMore()) { return true; } } finally { try { if (searchResultEnum != null) { searchResultEnum.close(); } } finally { LdapUtils.closeContext(systemLdapCtx); } } return member; }