是否有将 HSTS header 添加到嵌入式码头 Servlet 的标准方法?
Is there a standard way of addig HSTS header to embedded jetty Servlet?
我有一个扩展 HttpServlet 的自定义 Servlet 实现。是否有标准方法将 HSTS header 添加到响应中?
我找到的唯一方法是添加
response.addHeader("Strict-Transport-Security", "max-age=31536000; includeSubDomains")
但是我需要对所有的方法做同样的事情。有没有更简单的方法?
感谢您的帮助!
编辑:我使用嵌入式码头服务器
Edit2:显然 HeaderFilter class 可用于执行此操作,并将过滤器添加到上下文中
你有几个选择。
- 一个传统的 Servlet
Filter
。
注意 DispatcherType
行为,如果响应被重置,或者你处于非 DispatcherType.REQUEST
的流程中(例如:异步、错误、包含、转发),你想做什么等)
- 覆盖
HttpServlet.service()
方法添加header然后委托给正常的服务流程。
- 创建一个新的
RewriteHandler
Rule
来为您做到这一点。
- 创建一个新的 Jetty
Handler
添加 header 然后通过处理程序链进入您的 Web 应用程序(在处理程序链的稍后位置)
- 创建一个
HttpConfiguration.Customizer
实现,以便在解析请求后以及在将其分派到您的 Web 应用程序之前为您执行此操作。
- 创建一个
HttpChannel.Listener
,将 header 添加到 onResponseBegin()
事件的响应中。
我有一个扩展 HttpServlet 的自定义 Servlet 实现。是否有标准方法将 HSTS header 添加到响应中?
我找到的唯一方法是添加
response.addHeader("Strict-Transport-Security", "max-age=31536000; includeSubDomains")
但是我需要对所有的方法做同样的事情。有没有更简单的方法?
感谢您的帮助!
编辑:我使用嵌入式码头服务器
Edit2:显然 HeaderFilter class 可用于执行此操作,并将过滤器添加到上下文中
你有几个选择。
- 一个传统的 Servlet
Filter
。
注意DispatcherType
行为,如果响应被重置,或者你处于非DispatcherType.REQUEST
的流程中(例如:异步、错误、包含、转发),你想做什么等) - 覆盖
HttpServlet.service()
方法添加header然后委托给正常的服务流程。 - 创建一个新的
RewriteHandler
Rule
来为您做到这一点。 - 创建一个新的 Jetty
Handler
添加 header 然后通过处理程序链进入您的 Web 应用程序(在处理程序链的稍后位置) - 创建一个
HttpConfiguration.Customizer
实现,以便在解析请求后以及在将其分派到您的 Web 应用程序之前为您执行此操作。 - 创建一个
HttpChannel.Listener
,将 header 添加到onResponseBegin()
事件的响应中。