我想在我的服务器上向HTTP响应添加一些头文件。无论返回的代码(2xx、4xx、5xx),我都需要添加这些头文件。我尝试使用
我正在使用Wildfly 8.2.0作为应用程序服务器,但我认为这并不重要。
编辑:
我认为我应该提供更多关于我的问题的信息。我的应用程序是由Resteasy实现的REST服务。我还通过使用Wildlfy安全子系统配置了授权的安全策略。我需要REST服务的响应始终包含CORS标头,以便对每个前端请求进行回应,即使客户端未通过授权检查。但是当响应代码为401时,过滤器方法不会被调用,即使我使用
因此,我不返回任何状态代码,所有代码都由服务器返回(正如@ACV所说)。也许这就是导致过滤器不适用于我的情况的原因。
编辑II:
我在这个问题中找到了部分答案。通过在Wildfly standalone.xml中配置Undertow子系统,可以将标头添加到所有非错误(非5xx)响应中。
javax.servlet.Filter
和@WebFilter
注解以及javax.ws.rs.container.ContainerResponseFilter
和@Provider
注解来实现,但是当应用程序返回200个HTTP状态代码时,只有doFilter
和filter
方法被调用。是否可能将过滤器用于非2xx响应?我正在使用Wildfly 8.2.0作为应用程序服务器,但我认为这并不重要。
编辑:
我认为我应该提供更多关于我的问题的信息。我的应用程序是由Resteasy实现的REST服务。我还通过使用Wildlfy安全子系统配置了授权的安全策略。我需要REST服务的响应始终包含CORS标头,以便对每个前端请求进行回应,即使客户端未通过授权检查。但是当响应代码为401时,过滤器方法不会被调用,即使我使用
DispatcherType.ERROR
,如@Steve C所建议。因此,我不返回任何状态代码,所有代码都由服务器返回(正如@ACV所说)。也许这就是导致过滤器不适用于我的情况的原因。
编辑II:
我在这个问题中找到了部分答案。通过在Wildfly standalone.xml中配置Undertow子系统,可以将标头添加到所有非错误(非5xx)响应中。
j_security_check
的请求)。或者,使用Undertow阀门也可能解决问题。 - Steve C