Template design pattern hook for subclasses to implement specific authentication behavior.
<p/>
Common behavior for most authentication attempts is encapsulated in the
{@link #authenticate} method and that method invokes this one for custom behavior.
<p/>
<b>N.B.</b> Subclasses <em>should</em> throw some kind of
{@code AuthenticationException} if there is a problem during
authentication instead of returning {@code null}. A {@code null} return value indicates
a configuration or programming error, since {@code AuthenticationException}s should
indicate any expected problem (such as an unknown account or username, or invalid password, etc).
@param token the authentication token encapsulating the user's login information.
@return an {@code AuthenticationInfo} object encapsulating the user's account information
important to Shiro.
@throws AuthenticationException if there is a problem logging in the user.
Template design pattern hook for subclasses to implement specific authentication behavior. <p/> Common behavior for most authentication attempts is encapsulated in the {@link #authenticate} method and that method invokes this one for custom behavior. <p/> <b>N.B.</b> Subclasses <em>should</em> throw some kind of {@code AuthenticationException} if there is a problem during authentication instead of returning {@code null}. A {@code null} return value indicates a configuration or programming error, since {@code AuthenticationException}s should indicate any expected problem (such as an unknown account or username, or invalid password, etc).
@param token the authentication token encapsulating the user's login information. @return an {@code AuthenticationInfo} object encapsulating the user's account information important to Shiro. @throws AuthenticationException if there is a problem logging in the user.