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

這個錯誤我看百度一大堆真正說的有頭有尾的沒幾個

我先說明一下我的項目: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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容