- 55
- 0
/**
* DESC:
* 权限校验过滤器
*/
public class PermissionFilter extends AccessControlFilter {
@Override
protected boolean isAccessAllowed(ServletRequest request,
ServletResponse response, Object mappedValue) throws Exception {
HttpServletRequest httpRequest = ((HttpServletRequest)request);
/**
* 这里需要处理一下请求的URL路径,把它转成shiro addStringPermission 存储的URL格式,如:/user/email
* 所以这里替换了一下,使用根目录开始的URI
*/
String uri = httpRequest.getRequestURI();//获取URI
System.out.println("当前请求的URL:"+uri);
String basePath = httpRequest.getContextPath();//获取basePath
if(null != uri && uri.startsWith(basePath)){
uri = uri.replaceFirst(basePath, "");
}
if(subject.isPermitted(uri)){
System.out.println("有权限");
return Boolean.TRUE;
}
上面的URL拦截并判断权限,如果是传统的URL的话可以很容易的判断是否有权限。但是如果时restful 风格的url的话怎么拦截判断是否有权限呢?因为数据库权限表保存的URL是没有带参数的比如:/user 但是restful风格API请求时会携带参数 : /user/1
所以使用:
if(subject.isPermitted(uri)){
System.out.println("有权限");
return Boolean.TRUE;
}
根本不能判断,
0
打赏
收藏
点击回答
您的回答被采纳后将获得:提问者悬赏的 11 元积分
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

