2017-02-13 97 views
0

我試圖把下面我web.conf如何重定向所有的HTTP請求到HTTPS在GlassFish

<security-constraint> 
    <web-resource-collection> 
     <web-resource-name>SecureResource</web-resource-name> 
     <url-pattern>/*</url-pattern> 
    </web-resource-collection> 
    <user-data-constraint> 
     <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
    </user-data-constraint> 
</security-constraint> 

但是,當我發表我對鉻得到一個「太多的重定向」。

回答

1

我假設您在AWS上的負載平衡器後面運行Glassfish,並在負載平衡器上發生SSL終止。

您需要配置Glassfish來檢查x-forwarded-proto標頭以確定客戶端是通過HTTP還是HTTPS連接。您可以在domain.xml文件通過方案映射參數做到這一點:

<http default-virtual-server="server" 
     max-connections="100" 
     scheme-mapping="X-Forwarded-Proto"> 

或者,您也可以在服務器上運行此命令來設置scheme-mapping值:

asadmin set server.network-config.protocols.protocol.http-listener-1.http.scheme-mapping=X-Forwarded-Proto 
+0

這就是我到底是什麼試圖去做。我的項目沒有domain.xml,我該如何生成一個?我正在使用netbeans。或者我可以在web-inf下創建一個「domain.xml」並粘貼到那裏? –

+1

我幾年沒有使用Glassfish,但我認爲'domain.xml'文件是一個服務器配置文件,而不是項目文件。您需要SSH到您的EC2服務器並在那裏更新文件。另請參閱我的更新以設置此替代方法。 –

+0

謝謝,將嘗試,還有一個問題,在我設法更改domain.xml後,我仍然需要我最初發布的web.conf上的那段代碼? –

相關問題