Example usage for org.apache.shiro.subject SimplePrincipalCollection isEmpty

List of usage examples for org.apache.shiro.subject SimplePrincipalCollection isEmpty

Introduction

In this page you can find the example usage for org.apache.shiro.subject SimplePrincipalCollection isEmpty.

Prototype

public boolean isEmpty() 

Source Link

Usage

From source file:org.sonatype.nexus.rutauth.internal.RutAuthRealm.java

License:Open Source License

@Override
protected AuthenticationInfo doGetAuthenticationInfo(final AuthenticationToken token)
        throws AuthenticationException {
    final String rutUserId = token.getPrincipal().toString();
    final SimplePrincipalCollection principals = new SimplePrincipalCollection();
    final List<String> configuredRealms = realmManager.getConfiguration().getRealmNames();
    for (UserManager userManager : userManagers) {
        if (configuredRealms.contains(userManager.getAuthenticationRealmName())) {
            try {
                final User user = userManager.getUser(rutUserId);
                principals.add(user.getUserId(), userManager.getAuthenticationRealmName());
            } catch (UserNotFoundException e) {
                // ignore and continue searching
            }//from  w w w. j  a v  a 2 s . c  o  m
        }
    }
    if (!principals.isEmpty()) {
        log.debug("Found principals for RUT user '{}': '{}' from realms '{}'", rutUserId, principals,
                principals.getRealmNames());
        // make RUT the primary one, but keep all the found ones too
        final SimplePrincipalCollection principalCollection = new SimplePrincipalCollection(
                token.getPrincipal(), getName());
        principalCollection.addAll(principals);
        return new SimpleAuthenticationInfo(principalCollection, null);
    }
    log.debug("No found principals for RUT user '{}'", rutUserId);
    return null;
}