先放代码: 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
时间: 2024-11-08 12:58:36