如何将 501 状态代码从 IBM Liberty 重定向到错误页面?
How to redirect a 501 status code from IBM Liberty to an error page?
已设置 IBM Liberty,一些故意损坏的请求到达后会收到 501 Not Implemented
响应。
示例损坏请求:
TRACK /<script>alert('TRACK');</script> HTTP/1.1
Referer: ...
Accept: */*
Pragma: no-cache
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:71.0) Gecko/20100101 Firefox/71.0
Host: ...
...
Liberty 发送的响应是默认的,其上下文为:
HTTP/1.1 501 Not Implemented
... headers omitted ...
Date: Tue, 01 Feb 2022 01:01:01 GMT
Content-Length: 92
Error 501: Method TRACK is not defined in RFC 2068 and is not supported by the Servlet API
我不想向请求者显示 501 和上述消息,我想将请求者引导至带有我选择的简单消息的自定义错误页面;最坏的情况是一个普通的 HTML 文件。
我还没有找到让 IBM Liberty 为 501 Not Implemented 响应生成除上述以外的任何内容的方法。
您可以通过为您的应用程序定义错误页面来处理该问题。这是我的配置方式:
创建错误页面 - error.html
在 web.xml
中创建以下条目
<error-page>
<error-code>501</error-code>
<location>/error.html</location>
</error-page>
只要您的应用生成 501,它就会 return 您的 error.html 页面。
已使用 Postman 和您的 Track
方法进行测试。先是501 unimplemented,然后是error page。
确保您的 server.xml
中具有 servlet-x.y
和 jsp-a.b
特征
已设置 IBM Liberty,一些故意损坏的请求到达后会收到 501 Not Implemented
响应。
示例损坏请求:
TRACK /<script>alert('TRACK');</script> HTTP/1.1
Referer: ...
Accept: */*
Pragma: no-cache
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:71.0) Gecko/20100101 Firefox/71.0
Host: ...
...
Liberty 发送的响应是默认的,其上下文为:
HTTP/1.1 501 Not Implemented
... headers omitted ...
Date: Tue, 01 Feb 2022 01:01:01 GMT
Content-Length: 92
Error 501: Method TRACK is not defined in RFC 2068 and is not supported by the Servlet API
我不想向请求者显示 501 和上述消息,我想将请求者引导至带有我选择的简单消息的自定义错误页面;最坏的情况是一个普通的 HTML 文件。
我还没有找到让 IBM Liberty 为 501 Not Implemented 响应生成除上述以外的任何内容的方法。
您可以通过为您的应用程序定义错误页面来处理该问题。这是我的配置方式:
创建错误页面 - error.html
在
中创建以下条目web.xml
<error-page> <error-code>501</error-code> <location>/error.html</location> </error-page>
只要您的应用生成 501,它就会 return 您的 error.html 页面。
已使用 Postman 和您的 Track
方法进行测试。先是501 unimplemented,然后是error page。
确保您的 server.xml
servlet-x.y
和 jsp-a.b
特征