Spring Boot2 выполняет тот же сайт - Настройка HttpHandler - Требуется помощь - PullRequest
0 голосов
/ 17 февраля 2020

Я наткнулся на этот URL, который предлагает добавить обработчик Http (пример в Spring 1.x). https://lists.jboss.org/pipermail/undertow-dev/2017-March/001938.html

Я попытался добавить следующий код - он не вызывается, если я не добавляю слушателя. К сожалению, Spring, кажется, уже добавил слушателя. Я хотел бы обновить слушателя Spring с помощью моего Http-обработчика. Я просто не уверен, как это сделать.

Любая помощь очень ценится.

@Component
@Slf4j
public class LibCoreEmbeddedServletCustomerizer implements WebServerFactoryCustomizer<UndertowServletWebServerFactory> {


    @Value("${same.site.string}")
    private String sameSiteString;


    @Value("${server.port}")
    private int serverPort;

    @Value("${server.address}")
    private String serverAddress;

    @Override
    public void customize(UndertowServletWebServerFactory factory) {

        factory.addBuilderCustomizers(new UndertowBuilderCustomizer() {
            @Override
            public void customize(Undertow.Builder builder) {
                log.debug("LibCoreEmbeddedServletCustomerizer::customize");
                UndertowBuilderCustomizer customizer = new UndertowBuilderCustomizer() {
                    @Override
                    public void customize(Undertow.Builder builder) {
                        builder.
                        //addHttpListener(serverPort, serverAddress)
                        setHandler(new HttpHandler() {
                            @Override
                            public void handleRequest(HttpServerExchange httpServerExchange) throws Exception {
                                Map<String, Cookie> cookies = httpServerExchange.getResponseCookies();

                                log.debug(Encode.log(String.format("UndertowServletWebServerFactory handleRequest sameSiteString=%s", sameSiteString)));
                                for (Cookie cookie:cookies.values()) {
                                    log.debug(Encode.log(String.format("UndertowServletWebServerFactory handleRequest cookie=%s", cookie)));
                                    cookie.setSameSiteMode(sameSiteString);
                                }
                            }
                        });
                    }
                };
                factory.addBuilderCustomizers(customizer);

            }
        });

}

    }
...