![](/img/trans.png)
[英]Change Response status code using @ControllerAdvice and @ResponseStatus
[英]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.