Example usage for javax.naming.directory DirContext getAttributes

List of usage examples for javax.naming.directory DirContext getAttributes

Introduction

In this page you can find the example usage for javax.naming.directory DirContext getAttributes.

Prototype

public Attributes getAttributes(String name) throws NamingException;

Source Link

Document

Retrieves all of the attributes associated with a named object.

Usage

From source file:ru.runa.wfe.security.logic.LdapLogic.java

private void fillTargetActorsRecursively(DirContext dirContext, Set<Actor> recursiveActors,
        SearchResult searchResult, Map<String, SearchResult> groupResultsByDistinguishedName,
        Map<String, Actor> actorsByDistinguishedName) throws NamingException {
    NamingEnumeration<String> namingEnum = (NamingEnumeration<String>) searchResult.getAttributes()
            .get(ATTR_GROUP_MEMBER).getAll();
    while (namingEnum.hasMore()) {
        String executorDistinguishedName = namingEnum.next();
        SearchResult groupSearchResult = groupResultsByDistinguishedName.get(executorDistinguishedName);
        if (groupSearchResult != null) {
            fillTargetActorsRecursively(dirContext, recursiveActors, groupSearchResult,
                    groupResultsByDistinguishedName, actorsByDistinguishedName);
        } else {/*w  ww . j a  va  2 s  .  co  m*/
            Actor actor = actorsByDistinguishedName.get(executorDistinguishedName);
            if (actor != null) {
                recursiveActors.add(actor);
            } else {
                Matcher m = getPatternForMissedPeople().matcher(executorDistinguishedName);
                String executorPath = m.replaceAll("");
                Attribute samAttribute = dirContext.getAttributes(executorPath).get(ATTR_ACCOUNT_NAME);
                if (samAttribute != null) {
                    String executorName = samAttribute.get().toString();
                    log.debug("Executor name " + executorDistinguishedName + " fetched by invocation: "
                            + executorName);
                    try {
                        Executor executor = executorDao.getExecutor(executorName);
                        if (executor instanceof Actor) {
                            recursiveActors.add((Actor) executor);
                        }
                    } catch (ExecutorDoesNotExistException e) {
                        log.warn(e.getMessage() + " for '" + executorDistinguishedName + "'");
                    }
                } else {
                    log.warn("Not found '" + executorDistinguishedName
                            + "' neither in group or actor maps or by invocation");
                }
            }
        }
    }
}

From source file:tools.pki.gbay.crypto.keys.validation.CertificateRevocationList.java

/**
 * Downloads a CRL from given LDAP url, e.g.
 * ldap://ldap.infonotary.com/dc=identity-ca,dc=infonotary,dc=com
 * @throws IOException /*www .  j  a va 2 s.  c  o  m*/
 */
@SuppressWarnings("rawtypes")
private static X509CRL downloadCRLFromLDAP(String ldapURL)
        throws CertificateException, NamingException, CRLException, CryptoException, IOException {
    Map<String, String> env = new Hashtable<String, String>();
    env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
    env.put(Context.PROVIDER_URL, ldapURL);

    DirContext ctx = new InitialDirContext((Hashtable) env);
    Attributes avals = ctx.getAttributes("");
    Attribute aval = avals.get("certificateRevocationList;binary");
    byte[] val = (byte[]) aval.get();
    if ((val == null) || (val.length == 0)) {
        throw new CryptoException("Can not download CRL from: " + ldapURL);
    } else {

        return fromByteArray(val);

    }
}