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。

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


相关文章
|
机器学习/深度学习 数据采集 人工智能
机器学习实战 | SKLearn入门与简单应用案例
本篇内容介绍了SKLearn的核心板块,并通过SKLearn自带的数据集,讲解一个典型应用案例。
1416 0
机器学习实战 | SKLearn入门与简单应用案例
|
安全 JavaScript 前端开发
若依实现单点登录(解析请求链接中的参数做鉴权认证)
若依实现单点登录(解析请求链接中的参数做鉴权认证)
2833 0
|
5月前
|
传感器 数据安全/隐私保护 开发者
《解锁分布式软总线:跨设备业务开发全攻略》
在数字化时代,分布式软总线技术作为实现设备间高效互联的核心,为跨设备业务开发提供了新可能。它通过发现、连接、组网和传输接口,打破设备通信壁垒,支持异构设备协同工作。开发者可利用这些接口设计智能应用,如多设备协同办公,同时需关注网络适应性与兼容性测试,以确保用户体验的流畅性和一致性。掌握该技术不仅能紧跟科技潮流,还能为用户带来便捷高效的数字化生活体验。
152 8
|
小程序 JavaScript 前端开发
微信小程序开发时数据是否是双向数据绑定的
微信小程序开发时数据是否是双向数据绑定的
|
存储 负载均衡 安全
虚拟桌面和云桌面办公系统
虚拟桌面和云桌面办公系统
|
前端开发 Java 程序员
老程序员分享:Jeeplus框架工作流的使用实战(采购计划的制定流程)
老程序员分享:Jeeplus框架工作流的使用实战(采购计划的制定流程)
298 2
|
SQL Java 数据库连接
Hibernate 批量操作来袭!掌握最佳实践,轻松应对数据洪流,开启高效开发新时代
【9月更文挑战第3天】在软件开发中,高效数据操作至关重要。作为流行的Java持久化框架,Hibernate提供了强大的数据库操作功能。本文探讨了Hibernate批量操作,包括批量插入、更新和删除的最佳实践,通过使用原生SQL和`Session`的`createNativeQuery()`方法,结合`addBatch()`及`executeBatch()`方法实现高效批量操作。合理设置批量大小、事务管理和性能测试是优化的关键。在实际开发中,应根据业务需求和性能要求选择合适的方法,以提升程序性能和可维护性。
633 3
|
11月前
|
存储 安全 Java
shiro学习二:shiro的加密认证详解,加盐与不加盐两个版本。
这篇文章详细介绍了Apache Shiro安全框架中密码的加密认证机制,包括不加盐和加盐两种加密方式的实现和测试。
629 0
|
监控 安全 Java
老程序员分享:JeeSite快速开发平台、功能介绍、用户权限、数据权限、系统管理
老程序员分享:JeeSite快速开发平台、功能介绍、用户权限、数据权限、系统管理
458 0
|
XML 缓存 Java
Shiro - 会话管理与SessionDao持久化Session
Shiro提供了完整的企业级会话管理功能,不依赖于底层容器(如web容器tomcat),不管JavaSE还是JavaEE环境都可以使用,提供了会话管理、会话事件监听、会话存储/持久化、容器无关的集群、失效/过期支持、对Web 的透明支持、SSO 单点登录的支持等特性。
674 0