Apache Shiro 使用手册(四)Realm 实现
一、认证实现
正如前文所提到的,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()方法,重写获取用户权限的方法即可。
- protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
- String userName = (String) principals.fromRealm(getName()).iterator().next();
- User user = accountManager.findUserByUserName(userName);
- if (user != null) {
- SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
- for (Group group : user.getGroupList()) {
- info.addStringPermissions(group.getPermissionList());
- }
- return info;
- } else {
- return null;
- }
- }
来源: http://kdboy.iteye.com/blog/1169631
转载于:https://www.cnblogs.com/jeffen/p/6185604.html
Apache Shiro 使用手册(四)Realm 实现相关推荐
- Apache Shiro 使用手册
2019独角兽企业重金招聘Python工程师标准>>> 很好的学习资源,谢谢kdboy博主! Apache Shiro 使用手册(一)Shiro架构介绍 http://kdboy ...
- Apache Shiro 使用手册---转载
原文地址:http://www.360doc.com/content/12/0104/13/834950_177177202.shtml (一)Shiro架构介绍 一.什么是Shiro Apache ...
- Apache Shiro 使用手册(五)Shiro 配置说明
Apache Shiro的配置主要分为四部分: 对象和属性的定义与配置 URL的过滤器配置 静态用户配置 静态角色配置 其中,由于用户.角色一般由后台进行操作的动态数据,因此Shiro配置一般仅包含前 ...
- Apache Shiro 使用手册(三)Shiro 授权
2019独角兽企业重金招聘Python工程师标准>>> 一.授权的三要素 授权有着三个核心元素:权限.角色和用户. 权限 权限是Apache Shiro安全机制最核心的元素.它在应用 ...
- 10分钟教会你Apache Shiro
前言 欢迎来到Apache Shiro 10分钟之旅! 希望通过这个简单.快速的示例,可以让你对应用程序中使用Shiro有个深入的了解.嗯,10分钟你应该可以搞定它. 概述 Apache Shiro是 ...
- 在 Web 项目中应用 Apache Shiro
Apache Shiro 是功能强大并且容易集成的开源权限框架,它能够完成认证.授权.加密.会话管理等功能.认证和授权为权限控制的核心,简单来说,"认证"就是证明你是谁? Web ...
- apache shiro版本查看_深入学习SpringBoot(四):springboot整合shiro
shiro是一个权限框架,具体的使用可以查看其官网 http://shiro.apache.org/ 它提供了很方便的权限认证和登录的功能. 而springboot作为一个开源框架,必然提供了和shi ...
- Apache shiro介绍
原文链接Application Security With Apache Shiro(翻译) 前面自己自己配合谷歌翻译,后面大部分谷歌翻译. 当你尝试保护你的程序时候你会被困扰吗?你会觉得现有的jav ...
- 让 Apache Shiro 保护你的应用
让 Apache Shiro 保护你的应用 作者:Les Hazlewood 译者:胡伟红 查看英文原文: Application Security With Apache Shiro 在尝试保护你的 ...
最新文章
- 如何处理网络丢包故障?—Vecloud微云
- OpenGL开发学习指南一(freeglut+glew)
- python中面向对象的缺点_最简单的方法搞懂Python面向对象
- java 线程停止在那个为止_java停止线程
- 使用PING判断TCP/IP故障
- Java后台生成小程序二维码
- 从html源码中获取图片链接地址和视频链接地址
- android平台数字看板,数据看板
- 将apk和所需库文件编译打包到system/priv-app路径下
- MMDet——基于Chamfer Distance评估点集
- 服务式办公室,价格影响选择
- python可以自动运行m文件吗_如何运行m文件而不启动matlab
- Python中记录程序运行时间
- kubernetes v1.20项目之二进制扩容多Master
- 计算机DNS怎么配置,电脑dns地址设置为多少
- docker实践-oxidized网络设备自动备份部署
- sphinx(斯芬克斯)mysql全文搜索引擎
- Python/Numpy 合并复数的实部和虚部
- 为何热爱机器人工程专业的朋友如此少
- 2、igraph的简单实战
热门文章
- HDU 1026 Ignatius and the Princess I 迷宫范围内的搜索剪枝问题
- Python全栈工程师(Python3 所有基础内容 0-0)
- 08-cmake语法-set()
- 每天一个Linux命令 7
- Entity Framework 实体框架的形成之旅--实体数据模型 (EDM)的处理(4)
- SecureCRT 7 序列号
- C#全局键盘监听(Hook)
- php 多只能上传20个文件解决办法,修改php.ini 的max_file_uploads
- Select的OnChange()事件
- Linux 文本界面转到图形界面