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;
}
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,
* "red.iplanet.com");
*
* User user = dctree.getUser("cn", "Hin Man",
* "red.iplanet.com");
* </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();
}
Aggregations