Https Connection subdomain изменение URL
Https Connection поддомен
Im, чтобы настроить мое приложение калитки 1,5 с HTTPS.
Я добавил следующее в мой класс приложений.
setRootRequestMapper(new HttpsMapper(getRootRequestMapper(), new HttpsConfig(8080, 8443)));
mountPage("/go/securepage", securePage.class);
Как я аннотировал securePage.class с "@RequireHttps"
Ссылка корректно загружает страницу с HTTPS.
Однако я хочу перенаправить все соединения https в отдельный поддомен.
Так что вместо того, чтобы идти
https://www.example.com/go/securepage
пользователь перенаправлен наhttps://securepage.example.com/go/securepage
Как это может быть сделано?
1 ответ
Решение
Мне никогда не нужно было этого делать, но, глядя на источники HttpsMapper
кажется, мы сможем сделать это, переопределив 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;
}
Итак, вы можете переопределить это так:
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;
}
});