Spring MVC + Shiro 中 BaseController 方法的權(quán)限問題

shiro 是比較好用的權(quán)限認(rèn)證框架,Controller 中一般會(huì)可以使用

@RequiresPermissions("article:module")

來做權(quán)限判斷芥永。

但是現(xiàn)在一般的增刪改查都會(huì)抽取到一個(gè)公共的BaseController里面,每個(gè)子類的權(quán)限又不同赎败,由于BaseController是公用的角钩,所以沒辦法寫死權(quán)限,只能在子類里面通過重寫方法來實(shí)現(xiàn)權(quán)限認(rèn)證爬坑。

問題: 子類重寫方法后纠屋,發(fā)現(xiàn)權(quán)限不生效了。

分析: 由于采用的是動(dòng)態(tài)代理的方式創(chuàng)建的Controller實(shí)現(xiàn)權(quán)限盾计,通過Debug會(huì)發(fā)現(xiàn)售担,子類的Request和父類的Request不是同一個(gè)東西了

解決: 在java中使用 final 關(guān)鍵字,使得子類和父類拿到的請(qǐng)求一致

比如父類的新增

 /**
     * 新增
     * @param request HttpServletRequest
     * @return  ResponseResult
     */
    @RequestMapping(value = "/add",method = RequestMethod.POST)
    @ResponseBody
    public final ResponseResult<T> add(HttpServletRequest request, HttpSession session, @Valid T entity) {
        try{
            beforeAdd(request, entity);
        }catch (AuthorizationException e) {
            return getPermissionsErrorResult();
        }
        return doAdd(request, session, entity);
    }

    /**
     * 子類可重寫此方法
     * @param request HttpServletRequest
     * @param session HttpSession
     * @param entity T
     * @return ResponseResult
     */
    protected ResponseResult<T> doAdd(HttpServletRequest request, HttpSession session, T entity) {
        ResponseResult<T> result = new ResponseResult<T>();
        try {
            baseService.doAdd(entity);
            result.setObj(entity);
        } catch (Exception e) {
            result.setFlag(false);
            result.setMessage(e.getMessage());
            result.setCode(ERROR_CODE);
            e.printStackTrace();
        }
        return result;
    }

子類重寫 beforeAdd 方法署辉,并且在 beforeAdd 上加入權(quán)限

@RequiresPermissions("XXX.add")
    @Override
    protected void beforeAdd(HttpServletRequest request, ActivityEnum entity) {
    }

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末族铆,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子哭尝,更是在濱河造成了極大的恐慌哥攘,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,525評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異献丑,居然都是意外死亡末捣,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門创橄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來箩做,“玉大人,你說我怎么就攤上這事妥畏“畎睿” “怎么了?”我有些...
    開封第一講書人閱讀 164,862評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵醉蚁,是天一觀的道長燃辖。 經(jīng)常有香客問我,道長网棍,這世上最難降的妖魔是什么黔龟? 我笑而不...
    開封第一講書人閱讀 58,728評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮滥玷,結(jié)果婚禮上氏身,老公的妹妹穿的比我還像新娘。我一直安慰自己惑畴,他們只是感情好蛋欣,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著如贷,像睡著了一般陷虎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上杠袱,一...
    開封第一講書人閱讀 51,590評(píng)論 1 305
  • 那天尚猿,我揣著相機(jī)與錄音,去河邊找鬼楣富。 笑死凿掂,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的菩彬。 我是一名探鬼主播,決...
    沈念sama閱讀 40,330評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼潮梯,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼骗灶!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起秉馏,我...
    開封第一講書人閱讀 39,244評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤耙旦,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后萝究,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體免都,經(jīng)...
    沈念sama閱讀 45,693評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡锉罐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了绕娘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片脓规。...
    茶點(diǎn)故事閱讀 40,001評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖险领,靈堂內(nèi)的尸體忽然破棺而出侨舆,到底是詐尸還是另有隱情,我是刑警寧澤绢陌,帶...
    沈念sama閱讀 35,723評(píng)論 5 346
  • 正文 年R本政府宣布挨下,位于F島的核電站,受9級(jí)特大地震影響脐湾,放射性物質(zhì)發(fā)生泄漏臭笆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評(píng)論 3 330
  • 文/蒙蒙 一秤掌、第九天 我趴在偏房一處隱蔽的房頂上張望愁铺。 院中可真熱鬧,春花似錦机杜、人聲如沸帜讲。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽似将。三九已至,卻和暖如春蚀苛,著一層夾襖步出監(jiān)牢的瞬間在验,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評(píng)論 1 270
  • 我被黑心中介騙來泰國打工堵未, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留腋舌,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,191評(píng)論 3 370
  • 正文 我出身青樓渗蟹,卻偏偏與公主長得像块饺,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子雌芽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • title: Shiro整合Web項(xiàng)目及整合后的開發(fā)tags: shirocategories: shiro 將S...
    codingXiaxw閱讀 3,531評(píng)論 3 24
  • 說明:本文很多觀點(diǎn)和內(nèi)容來自互聯(lián)網(wǎng)以及各種資料授艰,如果侵犯了您的權(quán)益,請(qǐng)及時(shí)聯(lián)系我世落,我會(huì)刪除相關(guān)內(nèi)容淮腾。 權(quán)限管理 基...
    寇寇寇先森閱讀 7,593評(píng)論 8 76
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,144評(píng)論 25 707
  • 奢悅裸妝濕粉 防曬 隔離 遮瑕為一體 不脫妝 不卡粉 不假臉 超級(jí)水潤 保濕 有光澤 一款可以爆出精華的水光底妝 ...
    Syue秀麗閱讀 254評(píng)論 0 0
  • 2016年2月27日 聯(lián)想 大學(xué)時(shí)期研究了那么多次聯(lián)想的案例,做過那么多次聯(lián)想的ppt,直到不久前在一家二手書店偶...
    千年蕭蕭閱讀 219評(píng)論 0 0