【问题标题】:How to disable http methods in embedded tomcat [duplicate]如何在嵌入式tomcat中禁用http方法[重复]
【发布时间】:2019-02-07 21:22:12
【问题描述】:

如何在嵌入式 tomcat 中禁用 http://localhost:9092 级别的 OPTIONS 和 TRACE http 方法? 我使用 ZAP 安全工具进行测试,我的请求是--

OPTIONS http://localhost:9092 HTTP/1.1
Proxy-Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Language: en-gb
Content-Length: 0
Host: localhost:9092

我收到回复了-

HTTP/1.1 404
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
Allow: GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, PATCH

我想禁用响应中的允许行

提前致谢

【问题讨论】:

    标签: java spring-boot spring-security tomcat8 http-method


    【解决方案1】:

    您需要为此目标实施您的 CustomFilter。

    @Component
    @Order(Ordered.HIGHEST_PRECEDENCE)
    public class CustomFilter implements Filter {
    
    public CustomFilter() {
    }
    
    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
        HttpServletResponse response = (HttpServletResponse) res;
        HttpServletRequest request = (HttpServletRequest) req;
        response.setHeader("Access-Control-Allow-Methods", "GET, HEAD, POST, PUT, DELETE, PATCH");
        chain.doFilter(req, res);
    }
    
    @Override
    public void init(FilterConfig filterConfig) {
    }
    
    @Override
    public void destroy() {
    }
    }
    

    希望对您有所帮助。

    【讨论】:

    猜你喜欢
    • 2012-03-06
    • 2010-09-24
    • 2018-07-02
    • 2023-03-26
    • 2016-11-13
    • 2014-12-13
    • 2017-06-11
    • 2021-12-07
    • 1970-01-01
    相关资源
    最近更新 更多