org.apache.shiro.authz.Authoriza

2017-11-16  本文已影响1608人  螃蟹和骆驼先生Yvan

这个错误我看百度一大堆真正说的有头有尾的没几个

我先说明一下我的项目:SpringBoot+shiro+mybatis

来说说错误的由来吧!

org.apache.shiro.authz.AuthorizationException: Not authorized to invoke method: public java.lang.String

这个错误真正原因是@Controller这个注解引起的。

我遇到问题:

我现在在Controller一个方法返回的是一个页面,但是我这个用户没这个权限,shiro在登录成功之后知道我没有权限访问这个页面,

shiro根据没有权限本应该抛出Subject does not have permission [userInfo:del]错误,做为返回的内容,但是@Controller代表返回的是页面,

所以应该是Subject does not have permission [userInfo:del]被误以为是页面,抛出这个异常(public java.lang.String),

如果换成@RestController 就不会抛出异常,你要知道shiro不是不处理是他处理了,但是问题是返回的内容被我们定义死了,

所以抛出来异常。

这个错误原因很简单:至于处理方式做统一异常处理,在做一个错误页面进行处理

在拦截那里加一个错误处理方式:     shiroFilterFactoryBean.setUnauthorizedUrl("url");

到这里就ok啦

如果有什么问题可以qq交流:

179061434

上一篇 下一篇

猜你喜欢

热点阅读