2011-10-20 9 views
2

Https接続サブドメインHttps接続サブドメインのURL変更

Im私のwickets 1.5アプリケーションをHTTPSで設定します。

私は自分のアプリケーションクラスに以下を追加しました。私はリンクが正しくHTTPSを使用してページをロードし"@RequireHttps"でsecurePage.classに注釈を付けてきたように

setRootRequestMapper(new HttpsMapper(getRootRequestMapper(), new HttpsConfig(8080, 8443))); 
mountPage("/go/securepage", securePage.class); 

しかし、私はすべてのhttps接続を別々のサブドメインに転送したいと思います。

ので、代わりの

https://www.example.com/go/securepageユーザーに行くが、これは行うことができますどのように https://securepage.example.com/go/securepage

に転送されますか?

答えて

3

私はこれをする必要はありませんでしたが、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; 
    } 
}); 
+0

優秀な王子ジョン・ウェズリー、thatsのは魅力を働きました。 – Fergal

+0

申し訳ありませんが、XaviLópez、:-) – Fergal

関連する問題