shiro + jfinal权限验证问题

xiesisi3 发布于 2016/12/29 16:18
阅读 645
收藏 0

shiro.ini

[main]
#realm
shiroDbRealm = com.shengjie.shiro.realm.ShiroDbRealm
securityManager.realms = $shiroDbRealm
perms.unauthorizedUrl=/login.jsp
[urls]
/sys_user/*=authc,rest["sys_user"]
ShiroDbRealm的doGetAuthorizationInfo方法
....省略代码...
SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
List<String> permissions = new ArrayList<String>();
System.out.println("[INFO] -- permissions start......");
permissions.add("sys_user:list");//此处必须使用sys_user或sys_user:*才能正确授权
System.out.println("[INFO] -- permissions end......");
info.addStringPermissions(permissions);
....省略代码...
一共三个问题:


1、如上面代码中注释说的一样,当我配置了ini文件中的

/sys_user/*=authc,rest["sys_user"]

后,如果访问/sys_user/list必须使用sys_user:*或者sys_user才能正确赋予权限,否则会授权不成功(即我访问/sys_user/list的时候提示没有权限),我想问是必须这样授权么,我愿意是想达到这样的效果:

如果授权为sys_user:list那么访问sys_user/list的时候授权成功,访问sys_user/add或其它路径时授权失败,当然一行一行配置就可以,但是太麻烦,想问有没有使用通配符的方式可以达到我要的需求?


2、我的ini配置使用的是rest,应该怎么定义unauthorizedUrl才能使得鉴权失败的时候能够跳转到我指定的路径,我在ini配置的这一行代码无效

perms.unauthorizedUrl=/login.jsp

注意,我说的是鉴权失败,也就是用户已经登录成功后,访问没有权限的页面时跳转的401页面如何修改


shiroPlugin.setUnauthorizedUrl("/login.jsp");
我在JFinal Config中的shiroPlugin配置了上述代码,但是这行代码只是在未登录时起作用(也就是如果未登录直接访问后台页面则会按照上述代码中的路径跳转),登录成功后鉴权失败的跳转路径,这里并没有找到配置方法



3、如果我想自定义过滤器,来实现我问题1中的要求,应该如何定义?

http://www.oschina.net/question/919265_136640

我只找到这个简单的配置,但是没有找到稍微完整一点的定义方式,百度搜索基本都是spring配置下的定义方式。。。如果有的话给个链接就行,如果没有可否提供一下思路,谢谢。


加载中
0
xiesisi3
xiesisi3

@JFinal  @玛雅牛

有时间的话麻烦解答下, 非常感谢!

返回顶部
顶部