gpt4 book ai didi

java - Spring 安全 : how to intercept PageNotFound

转载 作者:行者123 更新时间:2023-11-29 05:24:05 27 4
gpt4 key购买 nike

这似乎是一个简单的问题,但我们无法在互联网上的任何地方找到它。

我们正在使用 Spring Security 3.2,我们希望能够在收到 spring 消息时打印远程主机的 IP:

WARN  [org.springframework.web.servlet.PageNotFound] - No mapping found for HTTP request with URI [/page.bla] in DispatcherServlet with name 'XXX'.

我们怎么可能做到这一点?

最佳答案

您的问题与spring-security 无关。此日志消息在 DispatcherServlet 类中生成。

您可以扩展 org.springframework.web.servlet.DispatcherServlet 并覆盖 protected void noHandlerFound(HttpServletRequest request, HttpServletResponse response) throws Exception 方法:

protected void noHandlerFound(HttpServletRequest request, HttpServletResponse response) throws Exception {
if (pageNotFoundLogger.isWarnEnabled()) {
String requestUri = urlPathHelper.getRequestUri(request);
pageNotFoundLogger.warn("No mapping found for HTTP request with URI [" + requestUri +"] in DispatcherServlet with name '" + getServletName() + "'");
}
response.sendError(HttpServletResponse.SC_NOT_FOUND);
}

通过这种方式,您可以自定义日志消息并向其添加来自 HttpServletRequest 参数的 ip 地址:

request.getRemoteAddr();

我不确定这是一个好的做法..但它应该有效。

希望这对您有所帮助!

关于java - Spring 安全 : how to intercept PageNotFound,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23396100/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com