2017-07-26 2 views
0

Je veux désactiver http TRACE en bas. J'utilise spring boot et undertow est fourni avec par défaut. J'ai exclu tomcat et en utilisant le ressac. J'ai obtenu la réponse pour Tomcat dans un autre post de stackoverflow (here) mais je suis incapable de trouver la même chose pour le bas. C'est ce que j'ai fait jusqu'à maintenant.Désactiver http TRACK/TRACE en utilisant le démarrage à ressort

@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 
     } 
    } 

Aidez-moi à compléter ce code. Suis-je même aller dans la bonne direction? Merci à l'avance

Répondre

1

Cela devrait fonctionner pour undertow:

@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); 
     } 

    }