ratpack:实现自定义PublicAddress以强制https

ratpack:实现自定义PublicAddress以强制https,https,oauth-2.0,amazon-elastic-beanstalk,ratpack,Https,Oauth 2.0,Amazon Elastic Beanstalk,Ratpack,我在一个pac4j邮件线程上讨论了为什么ratpack-pac4j使用的重定向url使用http,即使原始页面请求是通过https提供的。我做了一些挖掘,看起来ratpack-pac4j正在使用InferringPublicAddress。这适用于本地开发,但因为我的elasticbean主机代理443到80,ratpack-pac4j认为它是通过http的,并使用http作为重定向url。我希望在服务器上通过https进行此呼叫 我正在尝试注册一个自定义PublicAddress类,该类在开发

我在一个pac4j邮件线程上讨论了为什么ratpack-pac4j使用的重定向url使用http,即使原始页面请求是通过https提供的。我做了一些挖掘,看起来ratpack-pac4j正在使用InferringPublicAddress。这适用于本地开发,但因为我的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()); //PublicAddress.class, PublicAddress.inferred("https"));
        }))

...

static private class ForcedHttpsPublicAddress implements PublicAddress
{
    static ForcedHttpsPublicAddress create() {
        return new ForcedHttpsPublicAddress();
    }
    ForcedHttpsPublicAddress() {
    }
}

但是当我调用ctx.get(PublicAddress.class)时,它仍然返回InferringPublicAddress。我是否注册了错误的自定义公共地址

在Ratpack论坛上获得了帮助。我需要绑定它而不是添加它

.bind(PublicAddress.class, ForcedHttpsPublicAddress.class)