shiro AuthorizingRealm doGetAuthorizationInfo权限验证,doGetAuthenticationInfo登录验证

    也可以参考: http://www.51gjie.com/javaweb/1141.html


    今天在敲代码的过程中,突然发现之前整合的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

出处:https://my.oschina.net/alexgaoyh/blog/330230
posted @ 2021-03-07 12:31  十点书屋  阅读(902)  评论(0)    收藏  举报