Search in sources :

Example 1 with NoSuchPrincipalException

use of org.dcache.gplazma.NoSuchPrincipalException in project dcache by dCache.

the class Nis method reverseMap.

@Override
public Set<Principal> reverseMap(Principal principal) throws NoSuchPrincipalException {
    String id = principal.getName();
    try {
        Set<Principal> principals = new HashSet<>();
        if (principal instanceof GidPrincipal) {
            NamingEnumeration<SearchResult> ne = _ctx.search(NISMAP_GROUP_BY_GID, new BasicAttributes(GID_NUMBER_ATTRIBUTE, id));
            while (ne.hasMore()) {
                SearchResult result = ne.next();
                String name = (String) result.getAttributes().get(COMMON_NAME_ATTRIBUTE).get();
                principals.add(new GroupNamePrincipal(name));
            }
        } else if (principal instanceof UidPrincipal) {
            NamingEnumeration<SearchResult> ne = _ctx.search(NISMAP_PASSWORD_BY_UID, new BasicAttributes(UID_NUMBER_ATTRIBUTE, id));
            while (ne.hasMore()) {
                SearchResult result = ne.next();
                String name = (String) result.getAttributes().get(USER_ID_ATTRIBUTE).get();
                principals.add(new UserNamePrincipal(name));
            }
        }
        return principals;
    } catch (NamingException e) {
        LOGGER.debug("Failed to get reverse mapping: {}", e.toString());
    }
    throw new NoSuchPrincipalException(principal);
}
Also used : BasicAttributes(javax.naming.directory.BasicAttributes) SearchResult(javax.naming.directory.SearchResult) NamingEnumeration(javax.naming.NamingEnumeration) NoSuchPrincipalException(org.dcache.gplazma.NoSuchPrincipalException) GroupNamePrincipal(org.dcache.auth.GroupNamePrincipal) UserNamePrincipal(org.dcache.auth.UserNamePrincipal) UidPrincipal(org.dcache.auth.UidPrincipal) NamingException(javax.naming.NamingException) GroupNamePrincipal(org.dcache.auth.GroupNamePrincipal) GidPrincipal(org.dcache.auth.GidPrincipal) UserNamePrincipal(org.dcache.auth.UserNamePrincipal) Principal(java.security.Principal) UidPrincipal(org.dcache.auth.UidPrincipal) GidPrincipal(org.dcache.auth.GidPrincipal) HashSet(java.util.HashSet)

Aggregations

Principal (java.security.Principal)1 HashSet (java.util.HashSet)1 NamingEnumeration (javax.naming.NamingEnumeration)1 NamingException (javax.naming.NamingException)1 BasicAttributes (javax.naming.directory.BasicAttributes)1 SearchResult (javax.naming.directory.SearchResult)1 GidPrincipal (org.dcache.auth.GidPrincipal)1 GroupNamePrincipal (org.dcache.auth.GroupNamePrincipal)1 UidPrincipal (org.dcache.auth.UidPrincipal)1 UserNamePrincipal (org.dcache.auth.UserNamePrincipal)1 NoSuchPrincipalException (org.dcache.gplazma.NoSuchPrincipalException)1