Apache Shiro 使用手册(四)Realm 实现
Apache 实现 shiro 使用手册 realm
2023-09-14 08:59:55 时间
在认证、授权内部实现机制中都有提到,最终处理都将交给Real进行处理。因为在Shiro中,最终是通过Realm来获取应用程序中的用户、角色及权限信息的。通常情况下,在Realm中会直接从我们的数据源中获取Shiro需要的验证信息。可以说,Realm是专用于安全框架的DAO.
一、认证实现
正如前文所提到的,Shiro的认证过程最终会交由Realm执行,这时会调用Realm的getAuthenticationInfo(token)方法。
该方法主要执行以下操作:
1、检查提交的进行认证的令牌信息
2、根据令牌信息从数据源(通常为数据库)中获取用户信息
3、对用户信息进行匹配验证。
4、验证通过将返回一个封装了用户信息的AuthenticationInfo实例。
5、验证失败则抛出AuthenticationException异常信息。
而在我们的应用程序中要做的就是自定义一个Realm类,继承AuthorizingRealm抽象类,重载doGetAuthenticationInfo (),重写获取用户信息的方法。
- protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authcToken) throws AuthenticationException {
- UsernamePasswordToken token = (UsernamePasswordToken) authcToken;
- User user = accountManager.findUserByUserName(token.getUsername());
- if (user != null) {
- return new SimpleAuthenticationInfo(user.getUserName(), user.getPassword(), getName());
- } else {
- return null;
- }
- }
二、授权实现
而授权实现则与认证实现非常相似,在我们自定义的Realm中,重载doGetAuthorizationInfo()方法,重写获取用户权限的方法即可。
相关文章
- Apache Shiro In Easy Steps With Spring Boot(一)
- 大数据Apache Druid(四):使用Imply进行Druid集群搭建
- linux apache安装与配置_Apache配置
- apache 负载均衡_windows apache 实现负载均衡
- PHP之旅---出发(php+apache+MySQL)
- 使用 Apache Hudi 实现 SCD-2(渐变维度)
- 2022 IoTDB Summit:IoTDB PMC 曹高飞《Apache IoTDB 秒级扩容能力与存算分离实践》
- Apache ab并发负载压力测试实现方法
- Tomcat无法启动:org.apache.catalina.LifecycleException: Failed to start component 问题解决详解程序员
- 利用Apache commons exec 实现指定应用打开对应文件详解编程语言
- apache用Linux服务器架设QQ五笔输入法服务:基于Apache技术(qq五笔linux)
- 搭配Apache MySQL:超强联手服务器助力(apache和mysql)
- IBM 将区块链引入红帽 OpenShift;为混合云客户添加了Apache CouchDB
- 何时 NGINX 将取代 Apache?
- 使用Apache和MSSQL构建强大的数据库系统(apache mssql)
- Linux下重启Apache简易指令.(linux重启apache命令)
- Apache与MySQL的完美融合开启精彩程序之旅(apache加mysql)
- 如何在Apache中配置MySQL数据库连接(mysql、apache)
- PHP+APACHE实现用户论证的方法
- apache二级域名解析实现方法
- windows下实现定时重启Apache与MySQL方法
- apache启用gzip压缩的实现方法
- 使用脚本实现故障时自动重启Apache