第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

SpringBoot中如何處理Controller之前的異常

SpringBoot中如何處理Controller之前的異常

繁星coding 2018-08-04 13:05:59
項(xiàng)目中使用了shiro做權(quán)限控制,在controller上注解了@RequiresPermissions,當(dāng)沒有權(quán)限時(shí),會(huì)拋出異常,但是這個(gè)異常是在攔截器中拋出的,spring boot的ControllerAdvisor無法捕捉到。請教下,如何進(jìn)行處理?
查看完整描述

2 回答

?
拉風(fēng)的咖菲貓

TA貢獻(xiàn)1995條經(jīng)驗(yàn) 獲得超2個(gè)贊

最后,是通過增加了一個(gè)HandlerInterceptor,這個(gè)方法可行,但是處理異常的地方就變成了兩處,另一個(gè)是controller層異常的統(tǒng)一處理,總覺得不是太好的方案。

@Component
public class PreControllerExceptionIntercep implements HandlerInterceptor {

private static final Logger log = LoggerFactory.getLogger(PreControllerExceptionIntercep.class);

@Override

public void afterCompletion(HttpServletRequest request , HttpServletResponse response,Object handler,Exception ex) throws Exception{

    if(ex instanceof UnauthenticatedException){

        log.info("the access isn't valid");

        PackVo packVo = new PackVo();

        packVo.setSuccess(false);

        packVo.addMsg(BizExceptionCode.NO_PERMISSION_EXCEPTION,"");

        String jsonPack = JSON.toJSONString(packVo);

        response.setContentType("application/json;charset=UTF-8");

        response.setHeader("Pragma","No-cache");

        response.setHeader("Cache-Control","no-cache");

        response.setDateHeader("Expires",0);

        PrintWriter out = response.getWriter();

        out.print(jsonPack);

        out.flush();

        out.close();

    }


}


查看完整回答
反對 回復(fù) 2018-08-07
  • 2 回答
  • 0 關(guān)注
  • 1957 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號