我在一个pac4j邮件线程上讨论了为什么ratpack-pac4j使用的重定向url使用http,即使原始页面请求是通过https服务的。我做了一些挖掘,看起来Ratpack-Pac4J正在使用推断的公共地址。这适用于本地开发,但是因为我的elasticbean主机代理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());
}))
...
static private class ForcedHttpsPublicAddress implements PublicAddress
{
static ForcedHttpsPublicAddress create() {
return new ForcedHttpsPublicAddress();
}
ForcedHttpsPublicAddress() {
}
}
但当我调用ctx.get(publicaddress.class)时,它仍然返回inferringpublicaddress。我登记的海关公共地址有误吗?