① shiro怎么进行URL授权
此处说的不很准确 是默认没有 目前大多在方法上加验证注解实现 这个功能(因为shiro比spring security更细粒度化)
它虽然有基于url的验证
http://shiro.apache.org/web.html#Web-webini
/index.html = anon
/user/create = anon
/user/** = authc
/admin/** = authc, roles[administrator]
/rest/** = authc, rest
/remoting/rpc/** = authc, perms["remote:invoke"]
但是如果不改正 如默认如果指定多个角色 是且的关系
/role1ORrole2/** = authc, roles[role1,role2] 且
你可以实现 FilterChainManager 去自定义
https://github.com/exitsoft/exit-web-framework/wiki/apache-shiro%E4%B8%8Espring%E6%95%B4%E5%90%88%E3%80%81%E5%8A%A8%E6%80%81filterChainDefinitions%E3%80%81%E4%BB%A5%E5%8F%8A%E8%AE%A4%E8%AF%81%E3%80%81%E6%8E%88%E6%9D%83
http://rayoo.iteye.com/blog/1838224
② shiro unauthorizerl 怎么不是当前页面而是父页面的
解决方法:
1、mvc
<!-- 定义需要特殊处理的异常,用类名或完全路径名作为key,异常页名作为值 -->
<property name="exceptionMappings">
<props>
<prop key="org.apache.shiro.authz.UnauthorizedException">none_authority</prop>
</props>
</property>
2、web.xml
<error-page>
<error-code>500</error-code>
<location>/error.jsp</location>
</error-page>
原因:
shiro的源代码ShiroFilterFactoryBean.java
[java] view
plain
private void (Filter filter) {
String unauthorizedUrl = getUnauthorizedUrl();
if (StringUtils.hasText(unauthorizedUrl) && (filter instanceof AuthorizationFilter)) {
AuthorizationFilter authzFilter = (AuthorizationFilter) filter;
//only apply the unauthorizedUrl if they haven't explicitly configured one already:
String existingUnauthorizedUrl = authzFilter.getUnauthorizedUrl();
if (existingUnauthorizedUrl == null) {
authzFilter.setUnauthorizedUrl(unauthorizedUrl);
}
}
}
定义的filter必须满足filter
instanceof
AuthorizationFilter,只有perms,roles,ssl,rest,port才是属于AuthorizationFilter,而anon,authcBasic,auchc,user是AuthenticationFilter,所以unauthorizedUrl设置后页面不跳转
③ 基于url的权限控制和使用shiro有什么不同
没有URL过滤功能,就是写死在xml配置文件里,还有好多不能使。
④ shirofilter loginurl可以配置angularjs的路由吗
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("PreRevDate0", typeof(decimal)));
DataColumn col = new DataColumn();
col.ColumnName = "PreRevDate1";
col.Expression = "ABS(Convert.ToInt32(PreRevDate0))";
col.DataType = typeof(decimal);
dt.Columns.Add(col);
DataRow dr = dt.NewRow();
dr["PreRevDate0"] = -1;
dt.Rows.Add(dr);
⑤ 为什么jfinal+shiro控制权限时URL 末尾加/无法拦截
配置的时候,需抄要配置对,或者采用 /**的方式
推荐一套完整的Shiro Demo,免费的。
Shiro介绍文档:http://www.sojson.com/shiro
Demo已经部署到线上,ShiroDemo:http://shiro.itboy.net
管理员帐号:admin,密码:sojson.com 如果密码错误,请用sojson。PS:你可以注册自己的帐号,然后用管理员赋权限给你自己的帐号,但是,每20分钟会把数据初始化一次。建议自己下载源码,让Demo跑起来,然后跑的更快。
⑥ shiro 权限控制的url怎么显示实际的参数
shiro当然可以根据权限控制页面按钮选择是否显示的,有tag可以控制页面。
⑦ shiro+springmvc集成时,配置loginUrl='login.jsp',但是login.jsp页面在WEB-INF 目录下,导致无法显示
WEB-INF下的文件是无法直接访问的,我建议你可以把login.jsp放到webapp根目录下,或者控制器跳转。
⑧ shiro怎么进行URL授权
这个具体不知道来怎么和你描述,你看自看下面的推荐的项目吧。
推荐一套完整的Shiro Demo,免费的。
Shiro介绍文档:http://www.sojson.com/shiro
Demo已经部署到线上,ShiroDemo:http://shiro.itboy.net
管理员帐号:admin,密码:sojson.com 如果密码错误,请用sojson。PS:你可以注册自己的帐号,然后用管理员赋权限给你自己的帐号,但是,每20分钟会把数据初始化一次。建议自己下载源码,让Demo跑起来,然后跑的更快。
⑨ shiro如何去掉url中的jsessionid
这是因为如果浏览器不支持cookie,JSP容器通过在URL中包含jsessionid来达到session的效果。