美文网首页.Net CoreSpringBoot
Shiro 中的 AuthenticationToken

Shiro 中的 AuthenticationToken

作者: JSON_NULL | 来源:发表于2019-01-28 11:28 被阅读53次

    AuthenticationToken 用于收集用户提交的身份(如用户名)及凭据(如密码)。Shiro会调用CredentialsMatcher对象的doCredentialsMatch方法对AuthenticationInfo对象和AuthenticationToken进行匹配。匹配成功则表示主体(Subject)认证成功,否则表示认证失败。

    AuthenticationToken的继承关系——摘自《跟我学Shiro》
    public interface AuthenticationToken extends Serializable {
        Object getPrincipal(); //身份
        Object getCredentials(); //凭据
    }
    
    public interface HostAuthenticationToken extends AuthenticationToken {
        String getHost();// 获取用户“主机”
    }
    
    public interface RememberMeAuthenticationToken extends AuthenticationToken {
        boolean isRememberMe();// 记住我
    }
    

    Shiro 仅提供了一个可以直接使用的 UsernamePasswordToken,用于实现基于用户名/密码主体(Subject)身份认证。UsernamePasswordToken实现了 RememberMeAuthenticationTokenHostAuthenticationToken,可以实现“记住我”及“主机验证”的支持。

    总结

    一般情况下UsernamePasswordToken已经可以满足我们的大我数需求。当我们遇到需要声明自己的Token类时,可以根据需求来实现AuthenticationTokenHostAuthenticationTokenRememberMeAuthenticationToken

    1. 如果不需要“记住我”,也不需要“主机验证”,则可以实现AuthenticationToken
    2. 如果需要“记住我”,则可以实现RememberMeAuthenticationToken
    3. 如果需要“主机验证”功能,则可以实现HostAuthenticationToken
    4. 如果需要“记住我”,且需要“主机验证”,则可以像UsernamePasswordToken一样,同时实现RememberMeAuthenticationTokenHostAuthenticationToken
    5. 如果需要其他自定义功能,则需要自己实现。

    相关文章

      网友评论

        本文标题:Shiro 中的 AuthenticationToken

        本文链接:https://www.haomeiwen.com/subject/duxajqtx.html