org.apache.shiro.authc.pam
Class FirstSuccessfulStrategy
java.lang.Object
org.apache.shiro.authc.pam.AbstractAuthenticationStrategy
org.apache.shiro.authc.pam.FirstSuccessfulStrategy
- All Implemented Interfaces:
- AuthenticationStrategy
public class FirstSuccessfulStrategy
- extends AbstractAuthenticationStrategy
AuthenticationStrategy
implementation that only accepts the account data from
the first successfully consulted Realm and ignores all subsequent realms. This is slightly
different behavior than AtLeastOneSuccessfulStrategy
, so please review both to see
which one meets your needs better.
- Since:
- 0.9
- See Also:
AtLeastOneSuccessfulAuthenticationStrategy
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
FirstSuccessfulStrategy
public FirstSuccessfulStrategy()
beforeAllAttempts
public AuthenticationInfo beforeAllAttempts(Collection<? extends Realm> realms,
AuthenticationToken token)
throws AuthenticationException
- Returns
null
immediately, relying on this class's merge
implementation to return
only the first info
object it encounters, ignoring all subsequent ones.
- Specified by:
beforeAllAttempts
in interface AuthenticationStrategy
- Overrides:
beforeAllAttempts
in class AbstractAuthenticationStrategy
- Parameters:
realms
- the Realms that will be consulted during the authentication process for the specified token.token
- the Principal/Credential representation to be used during authentication for a corresponding subject.
- Returns:
- an empty AuthenticationInfo object that will populated with data from multiple realms.
- Throws:
AuthenticationException
- if the strategy implementation does not wish the Authentication attempt to execute.
merge
protected AuthenticationInfo merge(AuthenticationInfo info,
AuthenticationInfo aggregate)
- Returns the specified
aggregate
instance if is non null and valid (that is, has principals and they are
not empty) immediately, or, if it is null or not valid, the info
argument is returned instead.
This logic ensures that the first valid info encountered is the one retained and all subsequent ones are ignored,
since this strategy mandates that only the info from the first successfully authenticated realm be used.
- Overrides:
merge
in class AbstractAuthenticationStrategy
Copyright © 2004-2012 The Apache Software Foundation. All Rights Reserved.