這個錯誤我看百度一大堆真正說的有頭有尾的沒幾個
我先說明一下我的項目:SpringBoot+shiro+mybatis
來說說錯誤的由來吧!
org.apache.shiro.authz.AuthorizationException: Not authorized to invoke method: public java.lang.String
這個錯誤真正原因是@Controller這個注解引起的。
我遇到問題:
我現(xiàn)在在Controller一個方法返回的是一個頁面,但是我這個用戶沒這個權(quán)限,shiro在登錄成功之后知道我沒有權(quán)限訪問這個頁面,
shiro根據(jù)沒有權(quán)限本應(yīng)該拋出Subject does not have permission [userInfo:del]錯誤,做為返回的內(nèi)容,但是@Controller代表返回的是頁面,
所以應(yīng)該是Subject does not have permission [userInfo:del]被誤以為是頁面,拋出這個異常(public java.lang.String),
如果換成@RestController 就不會拋出異常,你要知道shiro不是不處理是他處理了,但是問題是返回的內(nèi)容被我們定義死了,
所以拋出來異常。
這個錯誤原因很簡單:至于處理方式做統(tǒng)一異常處理,在做一個錯誤頁面進行處理
在攔截那里加一個錯誤處理方式:? ? ?shiroFilterFactoryBean.setUnauthorizedUrl("url");
到這里就ok啦
如果有什么問題可以qq交流:
179061434