首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在tomcat上运行的Vue应用程序中添加安全标头

如何在tomcat上运行的Vue应用程序中添加安全标头
EN

Stack Overflow用户
提问于 2020-05-29 22:09:14
回答 1查看 123关注 0票数 0

我有一个部署在运行Tomcat9的服务器上的vue应用程序。HOw我可以向所有页面添加Feature-Policy和Expect-CT标头吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-22 22:12:54

将报头添加到响应的过滤器类

代码语言:javascript
复制
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;

public class MyCustomHeadersFilter implements Filter {

@Override
public void init(FilterConfig filterConfig) throws ServletException {
} 

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
        throws IOException, ServletException {
    
    HttpServletResponse httpResp = (HttpServletResponse) response;

    HeaderResponseWrapper headerResponseWrapper = new HeaderResponseWrapper(httpResp);

    headerResponseWrapper.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
    headerResponseWrapper.setHeader("Pragma", "no-cache"); // HTTP 1.0.
    headerResponseWrapper.setHeader("Expires", "0"); // Proxies.

    chain.doFilter(request, headerResponseWrapper);
}

@Override
public void destroy() {
}
}

HeaderResponseWrapper类

代码语言:javascript
复制
import java.io.*;
import javax.servlet.http.*;

public class HeaderResponseWrapper extends HttpServletResponseWrapper {
private CharArrayWriter writer;
  
public HeaderResponseWrapper(HttpServletResponse response) {
    super(response);
    writer = new CharArrayWriter();
}
  
public PrintWriter getWriter() {
    return new PrintWriter(writer);
}
  
public String toString() {
    return writer.toString();
}
}

现在将这个类作为过滤器添加到tomcat的web.xml中,并将其映射到相关的URL

代码语言:javascript
复制
<filter>
<filter-name>MyCustomHeadersFilter</filter-name>
<filter-class>com.headers.config.MyCustomHeadersFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>MyCustomHeadersFilter</filter-name>
<url-pattern>*.html</url-pattern>
</filter-mapping>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62087885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档