设置标题有不同的类型。
我建议使用过滤器或配置来设置它。
配置
默认情况下 spring-boot 设置安全标头。使用 .defaultsDisabled() 您可以禁用它们并可以选择性地激活所需的标头。
@EnableWebSecurity
public class WebSecurityConfig extends
WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
// ...
.headers()
// do not use any default headers unless explicitly listed
.defaultsDisabled()
.cacheControl();
}
}
将标题设置为以下设置:
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
有关配置的更多详细信息,请参阅文档。 https://docs.spring.io/spring-security/site/docs/4.0.x/reference/html/headers.html
你可以选择一个过滤器。
过滤器
@WebFilter("/filter-response-header/*")
public class AddResponseHeaderFilter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletResponse httpServletResponse = (HttpServletResponse) response;
httpServletResponse.setHeader(
"Cache-Control", "no-store");
httpServletResponse.setHeader(
"Pragma", "no-cache");
httpServletResponse.setHeader(
"Expires", "0");
chain.doFilter(request, response);
}
对于单个响应
HttpServlet响应:
HttpServletResponse response
response.addHeader("Cache-Control", "no-store");
response.addHeader("Pragma", "no-cache");
response.addHeader("Expires", "0");
更多信息请看这里:https://www.baeldung.com/spring-response-header