spring整合了mybatis、shiro,寫的授權認證方法一直無法執行卻也不報錯的問題
阿新 • • 發佈:2018-12-15
今天發現一個奇怪的問題,就是在service實現類寫了這麼一個方法:
@RequiresPermissions(“sys:user:update”)
@Override
public int validById(Integer id, Integer valid, String modifiedUser) {
//1.引數合法性校驗
if(idnull||id<1)
throw new IllegalArgumentException(“id值無效”);
if(validnull||(valid!=0&&valid!=1))
throw new IllegalArgumentException(“使用者狀態值不合法”);
//2.執行狀態更新操作
int rows=sysUserDao.validById(id, valid, modifiedUser);
if(rows==0)throw new ServiceException(“記錄可能已經不存在”);
//3.驗證結果,並返回
return rows;
}
按理說,寫了@RequiresPermissions註釋,會在前端頁面通過按鈕註冊事件呼叫到此方法的時候,會進入realm的protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals){}方法裡進行獲取使用者的許可權資訊。但是我這個方法一直不執行。在裡面寫的System.out.println(permissions);語句也無法列印。
最後發現竟然是它造成的: