public Object mapFromAttributes(Attributes attributes) throws NamingException { Attribute roleAttr = attributes.get(groupRoleAttributeName); NamingEnumeration<?> ne = roleAttr.getAll(); // assert ne.hasMore(); Object group = ne.next(); String role = group.toString(); return new SimpleGrantedAuthority(rolePrefix + role.toUpperCase()); } };
private String extractString( Attribute attr ) throws Exception { StringBuilder attrStr = new StringBuilder(); for ( NamingEnumeration<?> eattr = attr.getAll(); eattr.hasMore(); ) { if ( attrStr.length() > 0 ) { attrStr.append( data.multi_valuedFieldSeparator ); } attrStr.append( eattr.next().toString() ); } return attrStr.toString(); }
roleNames = new LinkedHashSet<String>(); SearchControls searchCtls = new SearchControls(); searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE); SearchResult sr = (SearchResult) answer.next(); Attributes attrs = sr.getAttributes(); while (ae.hasMore()) { Attribute attr = (Attribute) ae.next();
protected Set<String> addAttributeValues(String attrId, Attributes attrs, Set<String> values) throws NamingException { if (attrId == null || attrs == null) { return values; } if (values == null) { values = new HashSet<String>(); } Attribute attr = attrs.get(attrId); if (attr == null) { return values; } NamingEnumeration<?> e = attr.getAll(); while (e.hasMore()) { String value = (String)e.next(); values.add(value); } return values; }
protected Set<GroupPrincipal> getACLs(String destinationBase, SearchControls constraints, String roleBase, String roleAttribute) { try { Set<GroupPrincipal> roles = new HashSet<GroupPrincipal>(); Set<String> acls = new HashSet<String>(); NamingEnumeration<?> results = context.search(destinationBase, roleBase, constraints); while (results.hasMore()) { SearchResult result = (SearchResult)results.next(); Attributes attrs = result.getAttributes(); if (attrs == null) { continue; } acls = addAttributeValues(roleAttribute, attrs, acls); } for (Iterator<String> iter = acls.iterator(); iter.hasNext();) { String roleName = iter.next(); LdapName ldapname = new LdapName(roleName); Rdn rdn = ldapname.getRdn(ldapname.size() - 1); LOG.debug("Found role: [" + rdn.getValue().toString() + "]"); roles.add(new GroupPrincipal(rdn.getValue().toString())); } return roles; } catch (NamingException e) { LOG.error(e.toString()); return new HashSet<GroupPrincipal>(); } }
@Override public boolean process(SearchResult record) throws NamingException { result.add(record.getNameInNamespace()); NamingEnumeration<? extends Attribute> allAttributes = record.getAttributes().getAll(); while(allAttributes.hasMore()) { Attribute attribute = allAttributes.next(); addAllAttributeValuesToResult(attribute.getAll()); } return true; }
Attribute groupDNAttr = result.getAttributes().get(memberOfAttr); if (groupDNAttr == null) { throw new NamingException("The user object does not have '" + NamingEnumeration groupEnumeration = groupDNAttr.getAll(); while (groupEnumeration.hasMore()) { String groupDN = groupEnumeration.next().toString(); groups.add(getRelativeDistinguishedName(groupDN));
while (pairEnum.hasMore()) { NameClassPair pair = (NameClassPair) pairEnum.next(); pairMap.put(pair.getName(), pair.getClassName()); NamingEnumeration<?> subPairEnum = subContext.list(""); while (subPairEnum.hasMoreElements()) { NameClassPair pair = (NameClassPair) subPairEnum.next(); subPairMap.put(pair.getName(), pair.getClassName()); while (pairEnum.hasMore()) { NameClassPair pair = (NameClassPair) pairEnum.next(); pairMap.put(pair.getName(), pair.getClassName());
public Object mapFromContext(Object ctx) { DirContextAdapter adapter = (DirContextAdapter) ctx; Map<String, List<String>> record = new HashMap<String, List<String>>(); if (attributeNames == null || attributeNames.length == 0) { try { for (NamingEnumeration ae = adapter.getAttributes().getAll(); ae .hasMore();) { Attribute attr = (Attribute) ae.next(); extractStringAttributeValues(adapter, record, attr.getID()); } } catch (NamingException x) { org.springframework.ldap.support.LdapUtils .convertLdapException(x); } } else { for (String attributeName : attributeNames) { extractStringAttributeValues(adapter, record, attributeName); } } record.put(DN_KEY, Arrays.asList(getAdapterDN(adapter))); set.add(record); return null; } };
SearchResult searchResult = getSearchResult().next(); Attributes results = searchResult.getAttributes(); results.put( "dn", searchResult.getNameInNamespace() ); return results;
SearchControls controls = new SearchControls(); controls.setSearchScope(SUBTREE_SCOPE); NamingEnumeration<SearchResult> renum = context.search(toDC(domainName), "(& (userPrincipalName=" + principalName + ")(objectClass=user))", controls); if (!renum.hasMore()) { System.out.println("Cannot locate user information for " + username); System.exit(1); SearchResult result = renum.next(); Attribute memberOf = result.getAttributes().get("memberOf"); if (memberOf != null) {// null if this user belongs to no group at all for (int i = 0; i < memberOf.size(); i++) { Attributes atts = context.getAttributes(memberOf.get(i).toString(), new String[] { "CN" }); Attribute att = atts.get("CN"); groups.add(new GrantedAuthorityImpl(att.get().toString()));
private List<String> addAttributeValues(String attrId, Attributes attrs, List<String> values) throws NamingException { if (attrId == null || attrs == null) { return values; } if (values == null) { values = new ArrayList<String>(); } Attribute attr = attrs.get(attrId); if (attr == null) { return values; } NamingEnumeration<?> e = attr.getAll(); while (e.hasMore()) { String value = (String)e.next(); values.add(value); } return values; }
private SearchResult searchAlias(DirContext dirContext, String alias, byte[] cert, String[] returningAttributes) throws NamingException { SearchControls ctls = createSearchControl(returningAttributes); NamingEnumeration<SearchResult> results = (cert == null) ? dirContext.search(searchPath, filterAlias, new String[]{alias}, ctls) : dirContext.search(searchPath, filterCertificate, new Object[]{cert}, ctls); if (!results.hasMore()) { log.debugf("Alias [%s] not found in LdapKeyStore", alias); return null; } return results.next(); }
public Attributes findAttributes(String rootDN, String filter) throws NamingException { NamingEnumeration<SearchResult> answer = searchSubTree(rootDN, filter); if (answer.hasMore()) { SearchResult sr = answer.next(); return sr.getAttributes(); } return null; }
NamingEnumeration<?> attributes = contextAttributes.getAll(); if (attributes != null) { while (attributes.hasMore()) { Attribute attr = (Attribute) attributes.next(); NamingEnumeration<?> srvValues = attr.getAll(); if (srvValues != null) { while (srvValues.hasMore()) { T dnsRecord = cls.newInstance(); dnsRecord.load((String) srvValues.next()); dnsRecordList.add(dnsRecord);
/** * Helper method used to retrieve all attribute values from a particular context attribute. * * @param attr the LDAP attribute. * @return the values of the attribute. * @throws javax.naming.NamingException if there is an LDAP error while reading the values. */ public static Collection<String> getAllAttributeValues(Attribute attr) throws NamingException { Set<String> values = new HashSet<String>(); NamingEnumeration ne = null; try { ne = attr.getAll(); while (ne.hasMore()) { String value = (String) ne.next(); values.add(value); } } finally { closeEnumeration(ne); } return values; }
SearchControls constraints = new SearchControls(); if (subTreeSearch) { constraints.setSearchScope (SearchControls.SUBTREE_SCOPE); constraints.setSearchScope(SearchControls.ONELEVEL_SCOPE); constraints.setReturningAttributes(new String[] { usernameField }); return principal; Attributes atrs = ((SearchResult)answer.next()).getAttributes(); Attribute usernameAttribute = atrs.get(usernameField); username = (String) usernameAttribute.get();
/** * Look into A-record at a specific DNS address. * * @return resolved IP addresses or null if no A-record was present */ @Nullable public static List<String> resolveARecord(String rootDomainName) { if (isLocalOrIp(rootDomainName)) { return null; } try { Attributes attrs = getDirContext().getAttributes(rootDomainName, new String[]{A_RECORD_TYPE, CNAME_RECORD_TYPE}); Attribute aRecord = attrs.get(A_RECORD_TYPE); Attribute cRecord = attrs.get(CNAME_RECORD_TYPE); if (aRecord != null && cRecord == null) { List<String> result = new ArrayList<>(); NamingEnumeration<String> entries = (NamingEnumeration<String>) aRecord.getAll(); while (entries.hasMore()) { result.add(entries.next()); } return result; } } catch (Exception e) { logger.warn("Cannot load A-record for eureka server address {}", rootDomainName, e); return null; } return null; }