shiro注解@RequiresPermissions验证失败,后台抛出异常,什么好办法能让后台不出异常

blueshy 发布于 2015/06/04 14:16
阅读 17K+
收藏 0

验证失败能转到相应的异常页面,在配置文件,配好了,

我要是后台也不报错的,controller里用是注解,

加载中
0
vvtf
vvtf

org.springframework.web.servlet.handler.SimpleMappingExceptionResolver

拦截异常。org.apache.shiro.authz.UnauthorizedException

b
blueshy
spring-mvc配置文件配置了,转到401页面,但是后台还是会报错,subject没有权限,虽然不影响程序执行,但我想要是后台不出现这类错误,该怎么实现呢
0
vvtf
vvtf

如果权限验证不通过。

出现这个org.apache.shiro.authz.UnauthorizedException异常,

也只有在springmvc配置SimpleMappingExceptionResolver

<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<props>
<prop key="org.apache.shiro.authz.UnauthorizedException">/403</prop>
</props>
</property>
</bean> 

0
vvtf
vvtf

反正springmvc和shiro集成,权限验证不通过是不会调到指定的/403,而是出现异常。

<prop key="org.apache.shiro.authz.UnauthorizedException">/403</prop>
</props>

这个/403是view-name也就是你的jsp视图路径,不是path。

b
blueshy
这面这段配置,我配置了,<prop key="org.apache.shiro.authz.UnauthorizedException">error/401</prop> 然后后台会报错subject没有相应的权限,照理说我上面这段配置了,后台不该在出现这类异常错误了啊!
0
vvtf
vvtf

1:首先要确定是不是后台出错了。请求看看到底是什么异常?

2:异常是不是这个UnauthorizedException?

3:自己写个类实现它org.springframework.web.servlet.handler.SimpleMappingExceptionResolver

在resolveException打印异常或者debug调式看看。

b
blueshy
是UnauthorizedException异常,虽然不影响程序执行,但想搞清楚怎么回事
0
戴的天
戴的天
filterchain里将/401配置为anon
b
blueshy
回复 @戴的天 : <property name="unauthorizedUrl" value="/error/401"/>这个配置,我也配置了,还是一样,望大侠解惑
戴的天
戴的天
回复 @blueshy : 报错信息来看,是你配置了plat_manage_add权限,当没权限时,应该有个没权限的时候的跳转路径<property name="unauthorizedUrl" value="/error/401"/>
b
blueshy
<entry key="/error/401" value="anon" /> 配置了,还是org.apache.shiro.authz.UnauthorizedException: Subject does not have permission [plat_manage_add]
返回顶部
顶部