Class SimpleCredentialsMatcher
- java.lang.Object
-
- org.apache.shiro.codec.CodecSupport
-
- org.apache.shiro.authc.credential.SimpleCredentialsMatcher
-
- All Implemented Interfaces:
CredentialsMatcher
- Direct Known Subclasses:
HashedCredentialsMatcher
public class SimpleCredentialsMatcher extends org.apache.shiro.codec.CodecSupport implements CredentialsMatcher
Simple CredentialsMatcher implementation. Supports direct (plain) comparison for credentials of type byte[], char[], and Strings, and if the arguments do not match these types, then reverts back to simpleObject.equalscomparison.Hashing comparisons (the most common technique used in secure applications) are not supported by this class, but instead by the
HashedCredentialsMatcher.- Since:
- 0.9
- See Also:
HashedCredentialsMatcher
-
-
Constructor Summary
Constructors Constructor Description SimpleCredentialsMatcher()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleandoCredentialsMatch(AuthenticationToken token, AuthenticationInfo info)This implementation acquires thetoken's credentials (viagetCredentials(token)) and then theaccount's credentials (viagetCredentials(account)) and then passes both of them to theequals(tokenCredentials, accountCredentials)method for equality comparison.protected booleanequals(Object tokenCredentials, Object accountCredentials)Returnstrueif thetokenCredentialsargument is logically equal to theaccountCredentialsargument.protected ObjectgetCredentials(AuthenticationInfo info)Returns theaccount's credentials.protected ObjectgetCredentials(AuthenticationToken token)Returns thetoken's credentials.
-
-
-
Method Detail
-
getCredentials
protected Object getCredentials(AuthenticationToken token)
Returns thetoken's credentials.This default implementation merely returns
authenticationToken.getCredentials()and exists as a template hook if subclasses wish to obtain the credentials in a different way or convert them to a different format before returning.- Parameters:
token- theAuthenticationTokensubmitted during the authentication attempt.- Returns:
- the
token's associated credentials.
-
getCredentials
protected Object getCredentials(AuthenticationInfo info)
Returns theaccount's credentials.This default implementation merely returns
account.getCredentials()and exists as a template hook if subclasses wish to obtain the credentials in a different way or convert them to a different format before returning.- Parameters:
info- theAuthenticationInfostored in the data store to be compared against the submitted authentication token's credentials.- Returns:
- the
account's associated credentials.
-
equals
protected boolean equals(Object tokenCredentials, Object accountCredentials)
Returnstrueif thetokenCredentialsargument is logically equal to theaccountCredentialsargument.If both arguments are either a byte array (byte[]), char array (char[]) or String, they will be both be converted to raw byte arrays via the
toBytesmethod first, and then resulting byte arrays are compared viaArrays.equals(byte[],byte[]).If either argument cannot be converted to a byte array as described, a simple Object
equalscomparison is made.Subclasses should override this method for more explicit equality checks.
- Parameters:
tokenCredentials- theAuthenticationToken's associated credentials.accountCredentials- theAuthenticationInfo's stored credentials.- Returns:
trueif thetokenCredentialsare equal to theaccountCredentials.
-
doCredentialsMatch
public boolean doCredentialsMatch(AuthenticationToken token, AuthenticationInfo info)
This implementation acquires thetoken's credentials (viagetCredentials(token)) and then theaccount's credentials (viagetCredentials(account)) and then passes both of them to theequals(tokenCredentials, accountCredentials)method for equality comparison.- Specified by:
doCredentialsMatchin interfaceCredentialsMatcher- Parameters:
token- theAuthenticationTokensubmitted during the authentication attempt.info- theAuthenticationInfostored in the system matching the token principal.- Returns:
trueif the provided token credentials are equal to the stored account credentials,falseotherwise
-
-