Как запретить метод TRACE http в приводе с пружинной загрузкой - PullRequest
0 голосов
/ 24 апреля 2019

У меня есть сервер на порту = 8078 и привод с пружинной загрузкой на порту = 8081. Я хочу отключить метод TRACE Http на обоих. Я уже создаю компонент настройки (см. Ниже). Но с этим компонентом я запретил только трассировку на 8078. Похоже, привод не видит этот компонент. Как отключить метод TRACE http на сервере управления?

@ManagementContextConfiguration
public class CustomUndertowCustomizer {
    @Bean
    public WebServerFactoryCustomizer<UndertowServletWebServerFactory> undertowCustomizer() {
        return (factory) ->
                factory.addDeploymentInfoCustomizers(deploymentInfo ->
                        deploymentInfo.addInitialHandlerChainWrapper(handler -> {
                            HttpString[] disallowedHttpMethods = {HttpString.tryFromString("TRACE"),
                                    HttpString.tryFromString("TRACK")};
                            return new DisallowedMethodsHandler(handler, disallowedHttpMethods);
                        }));
    }
}

1 Ответ

0 голосов
/ 27 апреля 2019
import java.io.IOException;
           import javax.servlet.FilterChain;
           import javax.servlet.ServletException;
           import javax.servlet.ServletResponse;
           import javax.servlet.http.HttpServletRequest; 
           import javax.servlet.http.HttpServletResponse; 

           import org.springframework.stereotype.Component;     
           import org.springframework.web.filter.OncePerRequestFilter; 

           @Component
           public class Filter extends OncePerRequestFilter { 

               @Override 
               protected void doFilterInternal(HttpServletRequest req, HttpServletResponse res, FilterChain filterChain) 
                                { 
              try
                   if (req.getMethod().equals("TRACE")) {
                       res.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED);
                   } else { 
                       filterChain.doFilter(req, res); 
                   }  } catch(Exception e){}
               }
           }
...