Alteração do URL do subdomínio da conexão Https
-
27-10-2019 - |
Pergunta
Subdomínio de conexão Https
Estou procurando configurar meu aplicativo de wickets 1.5 com HTTPS.
Eu adicionei o seguinte à minha classe de aplicativo.
setRootRequestMapper(new HttpsMapper(getRootRequestMapper(), new HttpsConfig(8080, 8443)));
mountPage("/go/securepage", securePage.class);
Como anotei securePage.class com "@RequireHttps"
, o link carrega corretamente a página com HTTPS.
No entanto, desejo encaminhar todas as conexões https para um subdomínio separado.
Então, em vez de ir para
https://www.example.com/go/securepage
para o qual o usuário é encaminhado
https://securepage.example.com/go/securepage
Como isso pode ser feito?
Solução
Nunca precisei fazer isso, mas olhando as fontes de HttpsMapper
parece que faremos isso substituindo HttpsMapper.mapHandler()
.
public Url mapHandler(IRequestHandler requestHandler) {
Url url = delegate.mapHandler(requestHandler);
switch (checker.getProtocol(requestHandler)){
case HTTP :
url.setProtocol("http");
url.setPort(httpsConfig.getHttpPort());
break;
case HTTPS :
url.setProtocol("https");
url.setPort(httpsConfig.getHttpsPort());
break;
}
return url;
}
Então, você pode substituí-lo assim:
setRootRequestMapper(new HttpsMapper(getRootRequestMapper(), new HttpsConfig(8080, 8443)){
@Override
public Url mapHandler(IRequestHandler requestHandler) {
Url url = super.mapHandler(requestHandler);
if ("https".equals(url.getProtocol)){
// Force the HostName for HTTPS requests
url.setHost("securepage.example.com");
}
return url;
}
});
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow