2013-03-22 64 views
1

我有一個在tomcat中部署的web應用程序。應用程序中幾乎所有頁面都需要HTTPS,除了索引頁面和其他頁面。當我訪問任何需要HTTPS的頁面時,瀏覽器始終使用HTTPS。當我訪問不需要HTTPS的頁面時,瀏覽器有時使用HTTP,有時使用HTTPS,這主要取決於源。 我的問題是,如果我可以強制瀏覽器使用HTTP(沒有s)那些不需要加密的頁面。Tomcat - 我可以強迫非HTTPS?

這是我的web.xml的一部分,它決定哪些資源需要加密。

<security-constraint> 
    <web-resource-collection> 
     <web-resource-name>Protected</web-resource-name> 
     <url-pattern>/*</url-pattern> 
    </web-resource-collection> 

    <user-data-constraint> 
     <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
    </user-data-constraint> 
</security-constraint> 

<security-constraint> 
    <web-resource-collection> 
     <web-resource-name>Open</web-resource-name> 
     <url-pattern>/</url-pattern> 
     <url-pattern>/contact</url-pattern> 
     <url-pattern>/robots.txt</url-pattern> 
     <url-pattern>/sitemap.xml</url-pattern> 
    </web-resource-collection> 

    <user-data-constraint> 
     <transport-guarantee>NONE</transport-guarantee> 
    </user-data-constraint> 
</security-constraint> 

回答

1

使用Tomcat配置,no。

你有多種選擇:

  1. 寫過濾器重定向這些網頁HTTP 通過請求已經達到了您不妨爲它服務的過濾的時間。重定向到HTTP會導致用戶的響應時間變慢。

  2. 您可以用絕對HTTP鏈接替換不需要HTTPS的頁面的鏈接。這可能需要很多工作,並且您需要謹慎操作,以便在更改Web應用程序的上下文路徑時鏈接不會中斷。如果您的服務器位於逆向代理之後,它也可能會變得麻煩。

  3. 住在一起。

就個人而言,我會去的選項3.

+0

與選項3的問題是,我們不能鏈接到外部資源,如CDN託管的HTTP頁面的JavaScript庫。我會找出哪個選項對我們來說是最好的。 – 2013-03-22 12:16:18