Spring Security:異常處理


第一種

可以自定義403錯誤頁面

<security:http>
   <!--處理403異常-->
   <security:access-denied-handler error-page="403.jsp"/>
</security:http>

默認的403處理頁面是這樣的:

image-20201004205227490

這種方式有局限性,只能處理403異常。

第二種(非spring boot項目)

在web.xml配置,可以針對不同的狀態碼提供不同的頁面。

    <error-page>
        <error-code>404</error-code>
        <location>/404.jsp</location>
    </error-page>

    <error-page>
        <error-code>403</error-code>
        <location>/403.jsp</location>
    </error-page>

第三種:配置

@Component
public class ExceptionHandler implements HandlerExceptionResolver {
    @Override
    public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
        ModelAndView mv = new ModelAndView();
        mv.addObject("errMsg",ex.getMessage());
        if(ex instanceof AccessDeniedException){
            mv.setViewName("forward:/403.jsp");
        }else{
            mv.setViewName("forward:/500.jsp");
        }
        return mv;
    }
}

此外,還有一種配置方案,詳情見:https://www.cnblogs.com/wwjj4811/p/13199964.html(推薦使用這種方式)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM