2017-07-26 362 views
0

我想要禁用http TRACE。我正在使用弹簧引导,默认情况下,它提供了它。我已经排除了tomcat并使用了下行。我在其他stackoverflow帖子(here)得到了tomcat的答案,但我无法找到相同的承运人。这是我迄今为止所做的。使用弹簧启动禁用http TRACK/TRACE

@Bean 
    public EmbeddedServletContainerCustomizer containerCustomizer() { 
     return new EmbeddedServletContainerCustomizer() { 
      @Override 
      public void customize(ConfigurableEmbeddedServletContainer container) { 
       if (container.getClass().isAssignableFrom(UndertowEmbeddedServletContainerFactory.class)) { 
        UndertowEmbeddedServletContainerFactory underTowContainer = (UndertowEmbeddedServletContainerFactory) container; 
        underTowContainer.addDeploymentInfoCustomizers(new ContextSecurityCustomizer()); 
       } 
      } 
     }; 
    } 

    private static class ContextSecurityCustomizer implements UndertowDeploymentInfoCustomizer { 
     @Override 
     public void customize(DeploymentInfo deploymentInfo) { 
      DeploymentInfo info = new DeploymentInfo(); 
      // What next after this 
     } 
    } 

请帮我完成这段代码。我是否正朝着正确的方向前进?在此先感谢

回答

1

这应该暗流工作:

@Bean 
    public EmbeddedServletContainerCustomizer containerCustomizer() { 
     return new EmbeddedServletContainerCustomizer() { 
      @Override 
      public void customize(ConfigurableEmbeddedServletContainer container) { 
       if (container.getClass().isAssignableFrom(UndertowEmbeddedServletContainerFactory.class)) { 
        UndertowEmbeddedServletContainerFactory undertowContainer = (UndertowEmbeddedServletContainerFactory) container; 
        undertowContainer.addDeploymentInfoCustomizers(new ContextSecurityCustomizer()); 
       } 
      } 
     }; 
    } 

    private static class ContextSecurityCustomizer implements UndertowDeploymentInfoCustomizer { 

     @Override 
     public void customize(io.undertow.servlet.api.DeploymentInfo deploymentInfo) { 
      SecurityConstraint constraint = new SecurityConstraint(); 
      WebResourceCollection traceWebresource = new WebResourceCollection(); 
      traceWebresource.addUrlPattern("/*"); 
      traceWebresource.addHttpMethod(HttpMethod.TRACE.toString()); 
      constraint.addWebResourceCollection(traceWebresource); 
      deploymentInfo.addSecurityConstraint(constraint); 
     } 

    }