**已关闭。**此问题需要debugging details。目前不接受回答。
编辑问题以包括desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将帮助其他人回答问题。
8小时前关闭
Improve this question的
如何在全局级别处理Sping Boot 3安全端点状态代码异常。我尝试使用身份验证入口点的实现,并获得请求和响应,我验证响应。在这方面,我有一个问题,当涉及到不同的模块不工作时,某些模块的状态代码正常工作。我不知道如何处理Spring安全异常,特别是如果URL无效,显示404错误,处理URL相关异常
@Component
public class Uncategorized {
@Override
public void commence(HttpServletRequest request, HttpServletResponse response,
AuthenticationException authException) throws IOException, ServletException {
int statusCode = response.getStatus();
if (statusCode == HttpServletResponse.SC_CREATED) {
response.sendError(HttpServletResponse.SC_CREATED, "Created"); //201
} else if (statusCode == HttpServletResponse.SC_ACCEPTED) {
response.sendError(HttpServletResponse.SC_ACCEPTED, "Accepted"); //202
} else if (statusCode == HttpServletResponse.SC_NO_CONTENT) {
response.sendError(HttpServletResponse.SC_NO_CONTENT, "No Content"); //204
} else if (statusCode == HttpServletResponse.SC_NOT_FOUND) {
response.sendError(HttpServletResponse.SC_NOT_FOUND, "Invalid URL"); //404
} else if (statusCode == HttpServletResponse.SC_BAD_REQUEST) {
response.sendError(HttpServletResponse.SC_BAD_REQUEST, "BadRequest"); //400
} else if (statusCode == HttpServletResponse.SC_METHOD_NOT_ALLOWED) {
response.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, "invalid request method"); //405
} else if (statusCode == HttpServletResponse.SC_NOT_IMPLEMENTED) {
response.sendError(HttpServletResponse.SC_NOT_IMPLEMENTED, "Not Implemented"); //501
} else if (statusCode == HttpServletResponse.SC_SERVICE_UNAVAILABLE) {
response.sendError(HttpServletResponse.SC_SERVICE_UNAVAILABLE, "Service Unavailable"); //503
} else if (statusCode == HttpServletResponse.SC_UNAUTHORIZED) {
response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "invalidcredential"); //401
} else if (statusCode == HttpServletResponse.SC_MOVED_TEMPORARILY) {
response.sendError(HttpServletResponse.SC_MOVED_TEMPORARILY, "Moved temporarily"); //302
} else if (statusCode == HttpServletResponse.SC_MOVED_PERMANENTLY) {
response.sendError(HttpServletResponse.SC_MOVED_PERMANENTLY, "Permenent redirect"); //301
} else if (statusCode == HttpServletResponse.SC_NOT_MODIFIED) {
response.sendError(HttpServletResponse.SC_NOT_MODIFIED, "Not Modified"); //304
}else{
response.sendError(HttpServletResponse.SC_FORBIDDEN, "invalid Token"); //403
}
}
字符串
1条答案
按热度按时间crcmnpdw1#
如果使用spring 3.2,您可以使用带@ControllerAdvice注解的类和带@ ExceptionNotice(value = SomeTypeOfException.class)注解的许多方法来集中转换“exception -> responseEntity”
这些示例是我的典型解决方案
字符串