Https Connexion changement subdomain URL
-
27-10-2019 - |
Question
Https Connexion sous-domaine
Je cherche à mettre en place mes portillons 1.5 application avec le protocole HTTPS.
J'ai ajouté ce qui suit à ma classe d'application.
setRootRequestMapper(new HttpsMapper(getRootRequestMapper(), new HttpsConfig(8080, 8443)));
mountPage("/go/securepage", securePage.class);
Comme je l'ai annoté le securePage.class avec "@RequireHttps"
le lien charge correctement la page avec le protocole HTTPS.
Cependant, je veux transmettre toutes les connexions https à un sous-domaine séparé.
Ainsi, au lieu d'aller à
https://www.example.com/go/securepage
l'utilisateur est transmis à
https://securepage.example.com/go/securepage
Comment cela peut-il être fait?
La solution
Je ne l'ai jamais besoin de faire cela, mais en regardant les sources de HttpsMapper
il semble que vous nous en mesure de le faire en remplaçant 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;
}
Ainsi, vous pouvez la remplacer comme ceci:
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;
}
});