Я наткнулся на этот 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);
}
});
}
}