Search in sources :

Example 31 with PersistentObject

use of com.iplanet.ums.PersistentObject in project OpenAM by OpenRock.

the class DomainComponentTree method addDomain.

/**
     * Add a virtual domain into the domain component
     * tree.
     * 
     * @param domain
     *            Fully qualified domain name
     * @return Domain Componet entry just added to the dctree
     * @throws InvalidDCRootException
     *             if dcroot is not defined
     * @throws UMSException
     *             for write problem in adding domain to dctree
     * @supported.api
     */
public DomainComponent addDomain(String domain) throws UMSException {
    if (domain == null || domain.length() == 0) {
        throw new IllegalArgumentException();
    }
    if (m_dcRoot == null) {
        throw new InvalidDCRootException();
    }
    StringTokenizer st = new StringTokenizer(domain, ".");
    int nDoms = st.countTokens();
    String[] doms = new String[nDoms];
    int i = 0;
    while (st.hasMoreElements()) {
        doms[i++] = st.nextToken();
    }
    PersistentObject parent = UMSObject.getObject(getSSOToken(), m_dcRoot.getGuid());
    // Going from right to left on the virtual domain name
    // to go through all the domain components (dc). Make sure that
    // all dc entries are created in the dctree
    // e.g. adding a domain for eng.sun.com with dcRoot being o=internet
    // will yield
    // <pre>
    // o=internet (assmumed to exist)
    // dc=com,o=internet (created)
    // dc=sun,dc=com,o=ineternet (created)
    // dc=eng,dc=sun,dc=com,o=internet (created)
    // </pre>
    // in the domain component tree
    //
    DomainComponent dc = null;
    for (i = 0; i < nDoms; i++) {
        SearchResults results = parent.getChildren("dc=" + doms[nDoms - i - 1], null);
        try {
            dc = (DomainComponent) results.assertOneEntry();
        } catch (EntryNotFoundException e) {
            dc = new DomainComponent(getSSOToken(), doms[nDoms - i - 1]);
            parent.addChild(dc);
        }
        parent = UMSObject.getObject(getSSOToken(), dc.getGuid());
    }
    return dc;
}
Also used : StringTokenizer(java.util.StringTokenizer) EntryNotFoundException(com.iplanet.ums.EntryNotFoundException) PersistentObject(com.iplanet.ums.PersistentObject) SearchResults(com.iplanet.ums.SearchResults)

Example 32 with PersistentObject

use of com.iplanet.ums.PersistentObject in project OpenAM by OpenRock.

the class DomainComponentTree method getUser.

/**
     * Given identification of a user with a naming
     * attribute and value, lookup the user under a virtual domain specified.
     * For example,
     * 
     * <pre>
     * DomainComponentTree dctree = new DomainComponentTree(ctx,
     *                                           &quot;red.iplanet.com&quot;);
     * 
     * User user = dctree.getUser(&quot;cn&quot;, &quot;Hin Man&quot;, 
     *                                             &quot;red.iplanet.com&quot;);
     * </pre>
     * 
     * @param namingAttribute
     *            Naming attribute for the user object such as "uid" or "mail".
     *            The naming attribute has to provide a unique identifier for
     *            the user.
     * @param value
     *            attribute value for the naming attribute
     * @param domain
     *            Fully qualified domain name such as "red.iplanet.com"
     * @return User object if found
     * @throws DomainNotFoundException
     *             if domain is not found
     * @throws UMSException
     *             upon failure in instantiating the user object
     * @supported.api
     */
public User getUser(String namingAttribute, String value, String domain) throws DomainNotFoundException, UMSException {
    PersistentObject orgEntry = getOrganization(domain);
    SearchResults result = orgEntry.search(namingAttribute + "=" + value, null);
    return (User) result.assertOneEntry();
}
Also used : User(com.iplanet.ums.User) PersistentObject(com.iplanet.ums.PersistentObject) SearchResults(com.iplanet.ums.SearchResults)

Aggregations

PersistentObject (com.iplanet.ums.PersistentObject)32 Guid (com.iplanet.ums.Guid)26 UMSException (com.iplanet.ums.UMSException)24 AMException (com.iplanet.am.sdk.AMException)16 Attr (com.iplanet.services.ldap.Attr)12 AttrSet (com.iplanet.services.ldap.AttrSet)10 AccessRightsException (com.iplanet.ums.AccessRightsException)8 SearchResults (com.iplanet.ums.SearchResults)7 AMEntryExistsException (com.iplanet.am.sdk.AMEntryExistsException)5 AMSearchResults (com.iplanet.am.sdk.AMSearchResults)5 EntryAlreadyExistsException (com.iplanet.ums.EntryAlreadyExistsException)5 OrderedSet (com.sun.identity.shared.datastruct.OrderedSet)5 HashSet (java.util.HashSet)5 Set (java.util.Set)5 TreeSet (java.util.TreeSet)5 AMHashMap (com.iplanet.am.sdk.AMHashMap)4 EntryNotFoundException (com.iplanet.ums.EntryNotFoundException)4 SearchControl (com.iplanet.ums.SearchControl)4 HashMap (java.util.HashMap)4 Map (java.util.Map)4