org.apache.shiro.authc.pam
Class AtLeastOneSuccessfulStrategy

java.lang.Object
  extended by org.apache.shiro.authc.pam.AbstractAuthenticationStrategy
      extended by org.apache.shiro.authc.pam.AtLeastOneSuccessfulStrategy
All Implemented Interfaces:
AuthenticationStrategy

public class AtLeastOneSuccessfulStrategy
extends AbstractAuthenticationStrategy

AuthenticationStrategy implementation that requires at least one configured realm to successfully process the submitted AuthenticationToken during the log-in attempt.

This means any number of configured realms do not have to support the submitted log-in token, or they may be unable to acquire AuthenticationInfo for the token, but as long as at least one can do both, this Strategy implementation will allow the log-in process to be successful.

Note that this implementation will aggregate the account data from all successfully consulted realms during the authentication attempt. If you want only the account data from the first successfully consulted realm and want to ignore all subsequent realms, use the FirstSuccessfulAuthenticationStrategy instead.

Since:
0.2
See Also:
FirstSuccessfulAuthenticationStrategy

Constructor Summary
AtLeastOneSuccessfulStrategy()
           
 
Method Summary
 AuthenticationInfo afterAllAttempts(AuthenticationToken token, AuthenticationInfo aggregate)
          Ensures that the aggregate method argument is not null and aggregate.getPrincipals() is not null, and if either is null, throws an AuthenticationException to indicate that none of the realms authenticated successfully.
 
Methods inherited from class org.apache.shiro.authc.pam.AbstractAuthenticationStrategy
afterAttempt, beforeAllAttempts, beforeAttempt, merge
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AtLeastOneSuccessfulStrategy

public AtLeastOneSuccessfulStrategy()
Method Detail

afterAllAttempts

public AuthenticationInfo afterAllAttempts(AuthenticationToken token,
                                           AuthenticationInfo aggregate)
                                    throws AuthenticationException
Ensures that the aggregate method argument is not null and aggregate.getPrincipals() is not null, and if either is null, throws an AuthenticationException to indicate that none of the realms authenticated successfully.

Specified by:
afterAllAttempts in interface AuthenticationStrategy
Overrides:
afterAllAttempts in class AbstractAuthenticationStrategy
Parameters:
token - the AuthenticationToken submitted for the subject attempting system log-in.
aggregate - the aggregate AuthenticationInfo instance populated by all realms during the log-in attempt.
Returns:
the final AuthenticationInfo object to return to the Authenticator.authenticate() caller.
Throws:
AuthenticationException - if the Strategy implementation wishes to fail the authentication attempt.


Copyright © 2004-2012 The Apache Software Foundation. All Rights Reserved.