Shiro之UsernamePasswordToken&RememberMeAuthenticationToken&AuthenticationToken

简介: Shiro之UsernamePasswordToken&RememberMeAuthenticationToken&AuthenticationToken

继承关系

先看一下三者的继承关系,会有一个比较清楚的认识



AuthenticationToken

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


RememberMeAuthenticationToken

它继承自AuthenticationToken,可用在跨会话记住用户身份。注意,当为相应的用户创建新会话时,该用户的身份将被记住,但不会被视为已通过身份验证


UsernamePasswordToken

用于实现基于用户名/密码主体(Subject)身份认证。UsernamePasswordToken实现了 RememberMeAuthenticationToken 和 HostAuthenticationToken,可以实现“记住我”及“主机验证”的支持。


总结

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


如果不需要“记住我”,也不需要“主机验证”,则可以实现AuthenticationToken;


如果需要“记住我”,则可以实现RememberMeAuthenticationToken;

如果需要“主机验证”功能,则可以实现HostAuthenticationToken;

如果需要“记住我”,且需要“主机验证”,则可以像UsernamePasswordToken一样,同时实现RememberMeAuthenticationToken和HostAuthenticationToken。

如果需要其他自定义功能,则需要自己实现。


相关文章
|
安全 API 测试技术
shiro实战系列(十)之Subject
毫无疑问,在 Apache Shiro 中最重要的概念就是 Subject。'Subject'仅仅是一个安全术语,是指应用程序用户的特定 安全的“视图”。一个 Shiro Subject 实例代表了一个单一应用程序用户的安全状态和操作。
1750 0
|
4月前
|
安全 Java Spring
Spring Security 报:Encoded password does not look like BCrypt
Spring Security 报:Encoded password does not look like BCrypt
128 1
|
安全 Java 数据库连接
Shiro 中的 Realm
Shiro 中的 Realm
128 0
【Spring-data-jpa】根据userName模糊查询
【Spring-data-jpa】根据userName模糊查询
|
存储 安全 Java
Apache shiro介绍
当你尝试保护你的程序时候你会被困扰吗?你会觉得现有的java安全方案难以使用并且将来还会困惑你?这篇文章介绍Apach shiro,一个简单而又强大的保护程序安全的安全框架。它解释了Apache的项目目标。架构原理和如何使用shiro保护你的程序。
330 0
|
安全 Java 数据安全/隐私保护
浅谈Spring Security的BCryptPasswordEncoder
浅谈Spring Security的BCryptPasswordEncoder
257 0
浅谈Spring Security的BCryptPasswordEncoder
|
SQL 安全 关系型数据库
【Shiro】Shiro从小白到大神(二)-Subject认证结合MySQL
【Shiro】Shiro从小白到大神(二)-Subject认证结合MySQL
179 0
|
NoSQL Redis 数据安全/隐私保护
AUTH password
为redis服务请求设置一个密码。redis可以设置在客户端执行commands请求前需要通过密码验证。通过修改配置文件的requirepass就可以设置密码。 如果密码与配置文件里面设置的密码一致,服务端就会发会一个OK的状态码,接受客户端发送其他的请求命令,否则服务端会返回一个错误码,客户端需要尝试使用新的密码来进行连接。
1136 0
|
索引
1035. Password (20)
To prepare for PAT, the judge sometimes has to generate random passwords for the users.
979 0
|
数据安全/隐私保护 网络架构 网络安全