Cambio de URL del subdominio de Https Connection
-
27-10-2019 - |
Pregunta
Subdominio de Https Connection
Estoy buscando configurar mi aplicación wickets 1.5 con HTTPS.
He agregado lo siguiente a mi clase de aplicación.
setRootRequestMapper(new HttpsMapper(getRootRequestMapper(), new HttpsConfig(8080, 8443)));
mountPage("/go/securepage", securePage.class);
Como he anotado el securePage.class con "@RequireHttps"
, el enlace carga correctamente la página con HTTPS.
Sin embargo, quiero reenviar todas las conexiones https a un subdominio separado.
Entonces, en lugar de ir a
https://www.example.com/go/securepage
al que se reenvía al usuario
https://securepage.example.com/go/securepage
¿Cómo se puede hacer esto?
Solución
Nunca necesité hacer esto, pero mirando las fuentes de HttpsMapper
, parece que podremos hacerlo anulando 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;
}
Entonces, puede anularlo de esta manera:
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 bajo: CC-BY-SA con atribución
No afiliado a StackOverflow