文档章节

shiro 权限验证 AuthorizingRealm doGetAuthorizationInfo

alexgaoyh
 alexgaoyh
发布于 2014/10/13 17:22
字数 244
阅读 30186
收藏 12

    先放代码: https://git.oschina.net/alexgaoyh/alexgaoyh.git


    今天在敲代码的过程中,突然发现之前整合的shiro权限框架有问题,doGetAuthorizationInfo() 方法一直没有被调用,后来发现,

    1:  doGetAuthorizationInfo()方法可以理解为是权限验证,

    2: doGetAuthenticationInfo(  AuthenticationToken token)  理解为登陆验证。


    两者是不一样的:

    登陆验证:

Subject subject = SecurityUtils.getSubject();
subject.login(token);
token.clear();
SysmanUser user = (SysmanUser) subject.getPrincipal();

    权限验证:

    

//权限校验。判断是否包含权限。
Subject subject = SecurityUtils.getSubject();
//具体响应ShiroDbRealm。doGetAuthorizationInfo,判断是否包含此url的响应权限
boolean isPermitted = subject.isPermitted(url);
if(isPermitted == true) {
    result = new Result(true, "包含权限");
}else{
    result = new Result(false, "不包含权限");
}

    这样的话,可以针对不同的请求进行权限验证,代码链接如上,具体页面效果如下。


    无权限效果图:

    有权限效果图:


代码已发布至 : https://git.oschina.net/alexgaoyh/alexgaoyh.git

© 著作权归作者所有

alexgaoyh

alexgaoyh

粉丝 80
博文 83
码字总数 66319
作品 2
郑州
后端工程师
私信 提问
加载中

评论(1)

辉_仔
辉_仔
我也遇到doGetAuthorizationInfo()方法不调用,请问楼主是什么原因
shiro是用来干什么的?

要搭建一个项目,项目要求使用shiro,搜了一些比较基本的就是用户身份验证,用户身份验证是要干什么? 用户权限判断?权限不是已经在数据库设计好了吗?shiro用来干什么? 还有就是shiro来w...

HaleyZhang
2018/08/30
3.4K
2
SpringMVC+Apache Shiro+JPA(hibernate)案例教学(二)

一、Shiro配置的简要说明。 <!-- 項目自定义的Realm --> <bean id="shiroDbRealm" class="org.shiro.demo.service.realm.ShiroDbRealm" ></bean> <!-- Shiro Filter --> <bean id="shiroFil......

heroShane
2014/02/10
271
0
Spring Boot [集成-Shiro]

导读: 在阅读这篇文章之前假设你已经对Apache Shiro(后面统一用Shiro作为代指)有了一定的了解,如果你还对Shiro不熟悉的话在这篇文章的结尾附有相关的学习资料,关于Shiro是用来做什么的这里...

yangrd
2018/08/27
0
0
shiro与spring整合

shiro与spring整合 Apache shiro 是一个强大并且灵活的java安全框架,他的几个核心功能包括:身份认证、权限管理、加密、session管理。 下面总结一下shiro和spring的整合。 相关jar包 我一般...

似水流年0_0
2016/07/12
444
1
SpringBoot2.0集成Shiro

项目版本: springboot2.x shiro:1.3.2 Maven配置: 写在前面的话: springboot中集成shiro相对简单,只需要两个类:一个是shiroConfig类,一个是CustonRealm类。 ShiroConfig类: 顾名思义...

MonroeCode
07/25
165
0

没有更多内容

加载失败,请刷新页面

加载更多

一个activity中多个handler和消息的处理过程

Ø 能否有多个handler handler的构造方法 public Handler() { …. mLooper = Looper.myLooper(); mQueue = mLooper.mQueue; mCallback = null; … } 因为几乎主要的成员变量都是从Looper中拿......

shzwork
36分钟前
3
0
一起来学Java8(一)——函数式编程

在这篇文章中,我们将了解到在Java8下如何进行函数式编程。 函数式编程 所谓的函数式编程就是把函数名字当做值进行传递,然后接收方拿到这个函数名进行调用。 首先来看下JavaScript如何进行函...

猿敲月下码
56分钟前
4
0
vue 源码 断点调试

本文转载于:专业的前端网站➥vue 源码 断点调试 1、添加sourceMap sourceMap: true 2、npm run dev 会生成vue.js.map 3、断点调试 <!DOCTYPE html><html> <head> <meta cha......

前端老手
今天
4
0
流量运营系统demo1

TopkURLMapper public class TopkURLMapper extends Mapper<LongWritable, Text, Text, FlowBean> {private FlowBean bean = new FlowBean();private Text k = new Text();@Ove......

Garphy
今天
4
0
OSChina 周六乱弹 —— 如果是个帅小伙你愿意和他出去吗

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 小小编辑推荐:《Ghost 》游戏《死亡搁浅》原声 《Ghost 》游戏(《死亡搁浅》原声) - Au/Ra / Alan Walker 手机党少年们想听歌,请使劲儿戳...

小小编辑
今天
441
15

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部