Я был в почтовой ветке pac4j, обсуждая, почему URL-адрес перенаправления, который использует ratpack-pac4j, использует http, даже если исходный запрос страницы обслуживается через https.Я немного покопался, и похоже, что ratpack-pac4j использует InferringPublicAddress.Это работает для локальной разработки, но, поскольку мой хост эластичного боба прокси 443-80, ratpack-pac4j считает, что он закончился через http и использует http для URL перенаправления.Я хочу, чтобы этот вызов был по https, когда на сервере.
Я пытаюсь зарегистрировать пользовательский класс PublicAddress, который всегда возвращает http в режиме разработки, но https в производственном режиме:
.registry(Guice.registry(b -> {
b
.module(SessionModule.class)
.module(ThymeleafModule.class, conf -> conf.templatesMode("LEGACYHTML5"))
.add(PublicAddress.class, ForcedHttpsPublicAddress.create()); //PublicAddress.class, PublicAddress.inferred("https"));
}))
...
static private class ForcedHttpsPublicAddress implements PublicAddress
{
static ForcedHttpsPublicAddress create() {
return new ForcedHttpsPublicAddress();
}
ForcedHttpsPublicAddress() {
}
}
Но когда я вызываю ctx.get (PublicAddress.class), он по-прежнему возвращает InferringPublicAddress.Я неправильно регистрирую пользовательский PublicAddress?