簡體   English   中英

更改響應狀態 onUnsuccessfulAuthentication

[英]Change response status onUnsuccessfulAuthentication

這樣做的全部目的是在用戶被阻止時在前端顯示不同的錯誤消息,在未找到用戶名和密碼不正確時顯示不同的消息。

public class CustomAuthenticationFilter extends UsernamePasswordAuthenticationFilter {

    @Override
    public void unsuccessfulAuthentication(HttpServletRequest request, HttpServletResponse response,
                                           AuthenticationException exception) throws IOException, ServletException {
        if (exception.getMessage().contains("404")) {
            response.sendError(HttpServletResponse.SC_NOT_FOUND);
        } else if (exception.getMessage().contains("disabled")) {
            response.sendError(HttpServletResponse.SC_CONFLICT);
            response.setStatus(HttpServletResponse.SC_CONFLICT);
            response.setHeader("test", "test");
        }
        super.unsuccessfulAuthentication(request, response, exception);
    }
}

我正在嘗試根據異常消息更改響應錯誤狀態。

此類擴展UsernamePasswordAuthenticationFilter並覆蓋unsuccessfulAuthentication方法。 每次身份驗證不成功時都會調用unsuccessfulAuthentication方法。

即使響應狀態設置為例如沖突,瀏覽器也會收到 403 未授權錯誤。

我似乎無法以任何方式修改響應狀態和消息/輸出。

你會推薦什么樣的解決方案來解決這個問題?

我想通了,我需要在方法結束之前加上“return”關鍵字。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM