NutzCN Logo
问答 请问Wendal老师,在web环境下 只有ServletRequest 的情况下如何得到module 方法对象?
发布于 2287天前 作者 qq_6f10b5ab 1526 次浏览 复制 上一个帖子 下一个帖子
标签:
 */
public class URLPermissionsFilter extends PermissionsAuthorizationFilter {
	/**
	 * @param mappedValue
	 *            指的是在声明url时指定的权限字符串,
	 *            我们要动态产生这个权限字符串,所以这个配置对我们没用
	 *            这里吧拦截的权限字符串交给realm 去验证。
	 */
	public boolean isAccessAllowed(ServletRequest request,
			ServletResponse response, Object mappedValue) throws IOException {
		return super.isAccessAllowed(request, response,
				buildPermissions(request));
	}

	/**
	 * 根据请求URL产生权限字符串,这里只产生,而比对的事交给Realm
	 * 
	 * @param request
	 * @return
	 */
	protected String[] buildPermissions(ServletRequest request) {
		String[] perms = new String[1];
		HttpServletRequest req = (HttpServletRequest) request;
		String path = req.getServletPath();
		System.out.println("req url="+path);
		//perms[0] =path;// path;// path直接作为权限字符串
		perms[0] ="role/list";// path;
		System.out.println("访问路径:"+path);
		
		return perms;
	}
}

使用shiro的时候 ,自定义了URLPermissionsFilter,想动态通过访问url来鉴权,当前登录人拥有的权限列表起根源是根据@At的值来生成的,这样权限字符串就可以有参数通配符,例如aaa/del/?,而用户请求的时候url已经变成具体的参数,匹配不成功,能否在URLPermissionsFilter 中通过renquest对象获取到当前处理module以及方法,从而解析出At设置 从而匹配?
请问Wendal老师,有办法不?

1 回复

看NutFilter根据url获取ActionInvoker的逻辑,ActionInvoker就对入门方法的封装

添加回复
请先登陆
回到顶部