- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要在日志中获取触发 [NOT FOUND 404] 错误的 URI。我使用 .getHeader(HttpHeaders.REFERER) 并且我得到了 null。同样,我尝试使用 getRequestURL() 并且我得到了 @RequestMapping 方法“/error”的路径。
例如:如果用户输入:mywebsite.com/fdsfihdif 并且没有这样的地址,我应该在日志中看到这样的 [NOT FOUND 404] 用户 [john@yahoo.com] 尝试访问此 URI: [mywebsite.com/fdsfihdif]
这是我的错误 Controller :
@Controller
public class CustomErrorController implements ErrorController {
private static final Logger log = LogManager.getLogger(CustomErrorController.class);
@RequestMapping("/error")
public String handleError(HttpServletRequest request) {
Object status = request.getAttribute(RequestDispatcher.ERROR_STATUS_CODE);
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
if (status != null) {
Integer statusCode = Integer.valueOf(status.toString());
if (statusCode == HttpStatus.NOT_FOUND.value()) {
//404 with the wrong URI entered by user
log.error("[NOT FOUND 404] User [" + auth.getName() + "] tried to access this URL : ["+ request.getRequestURL() +"] : [" + request.getHeader(HttpHeaders.REFERER) + "]";
return "errors/404";
} else {
//something else
return "errors/error";
}
}
return "error";
}
@Override
public String getErrorPath() {
return "/error";
}
}
这是输出:
2018-06-22 18:48:59.507 ERROR [nio-9090-exec-7] c.b.g.c.CustomErrorController
MSG ==> [NOT FOUND 404] User [dumi7ru] tried to access this URL : [http://localhost:9090/error] : [null]
最佳答案
您可以获取原始URI为
String originalUri = request.getAttribute(RequestDispatcher.FORWARD_REQUEST_URI);
堆栈上的类似查询 web.xml 404 redirect to servlet, how to get the original URI?
关于java - HttpServletRequest getHeader(HttpHeaders.REFERER) 返回 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50993181/
我正在尝试使用 RestTemplate 发出 Http 请求,但它一直给我错误:'HttpHeaders' 在 'org.apache.http.HttpHeaders' 中具有私有(private
我想将 httpHeader 添加到我的响应中 我想使用这段代码: private void AddCustomHeader() { if (string.
我正在尝试导入并使用 HttpHeaders 来设置帖子标题。甚至在代码中使用它之前,我立即在浏览器运行时遇到错误(它使用 ng-cli 和 ng serve 在 webstorm IDE 中成功编译
我正在构建一个HttpRequest我想向请求提供 header 映射: Map> . 问题HttpRequest构建器仅将标题作为键(字符串)值(字符串)而不是整个 map 。我怎样才能将 map
我正在构建一个HttpRequest我想向请求提供 header 映射: Map> . 问题HttpRequest构建器仅将标题作为键(字符串)值(字符串)而不是整个 map 。我怎样才能将 map
我的 IDE 说 Error: can only iterate over an array or an instance of java.lang.Iterable 关于headers.map()在
我需要在 Http header 中存储不同语言的消息: 响应 header Cache-Control private Content-Type text/html; charset=ut
我发现我认为可能是 Spring 类中的一个错误 HttpHeaders和 ReadOnlyHttpHeaders .在使用 Spring 提出 Jira 缺陷之前,我想确认这一点。这是我用来创建空
我想更改请求过滤器中的授权 header 。我的授权 header 采用以下格式 Authorization:x,y 我想改成下面 Authorization:a,b,c 我实现了 Jersey 容器
我正在使用 Spring 的 RestTemplate 获取 HTTP header 。 HTTP headers are case insensitive ,但是 documentation for
出于分页目的,我们的 UI 人员在 Http header 中指定项目范围,如下所示: Range: items=0-15 在随后的请求中,来自网络的范围可以是 Range: items=16-31
我对这个函数的名称有点困惑。为什么不只是 TryAdd?它没有验证的是什么?如果我使用这个函数,在某些情况下它还能抛出吗?我能否以某种方式“尝试添加”而不会出现任何异常,如果失败则只返回 false?
我知道 HttpHeader 是不可变的。我尝试了几种不同的方法来初始化它们或附加到它们,但是当我记录它们时,它总是显示它们是空的。 我尝试用所有值初始化它们: const headers = new
在System.Net.Http.Headers命名空间中,HttpHeaders.TryAddWithoutValidation有什么区别?和 HttpHeaders.Add ? 具体来说,调用 A
我有一个内部框架,其中有一个类,如下所示: public abstract class POSEnterpriseResource extends SynchronousResource { ..
我有一个内部框架,其中有一个类,如下所示: public abstract class POSEnterpriseResource extends SynchronousResource { ..
WebClient.builder().baseUrl("/").filter(contentTypeInterceptor()).build(); 如何修改收到的响应的 Content-Type (
我是 Mockito 的新手,我在 TestClass 中模拟 HttpHeaders,但如果我删除 setUp() 方法并模拟 HttpHeaders,它会抛出 NullPointerExcepti
我正在 struts 2 应用程序中发送标题中的自定义错误消息。我通过向 struts.xml 文件添加全局结果来完成此操作,如下所示: 500 ${excep
我想编写一个 Swift 脚本来通过摘要身份验证对 Rest 服务器进行身份验证。我不会使用 URLSession,我想手动完成。我从服务器收到第一个响应,如下所示: [ ("Connection
我是一名优秀的程序员,十分优秀!