2012-05-09 186 views
0

我的Web應用程序在共享服務器(Websphere)中運行,現在我的應用程序針對HTTP和HTTPS請求運行。通常當應用程序運行時,它顯示如下 https://localhost:9443/index.jsp。 如果用戶嘗試將https更改爲http並提交請求,則服務器接受該請求。我需要避免這種情況,並使應用程序僅在應用程序級別支持https請求。請幫助我。將所有HTTP請求重定向到HTTPS請求而無需更改代碼

+0

您可以添加一個java servlet過濾器來檢查並將http重定向到https嗎? – gigadot

+1

你希望我們看看https:// localhost:9443/index.jsp ?? – artbristol

+0

我不想在這裏插入過濾概念,有沒有什麼辦法通過修改web.xml來實現它。 – sudhakars10

回答

1
<security-constraint> 
<web-resource-collection> 
    <web-resource-name>https</web-resource-name> 
    <description>No Description</description> 
    <url-pattern>/*</url-pattern> 
</web-resource-collection> 
<user-data-constraint> 
    <description>No Description</description> 
    <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
</user-data-constraint> 

在web.xml添加上述user-data-constraint。這會將所有http請求重定向到https

+0

嗨ramesh,感謝您的快速回復我已經嘗試過此發佈這個問題,但上面的在Tomcat Web服務器上工作,它不適用於Websphere。 – sudhakars10

+0

http://stackoverflow.com/questions/5067917/websphere-security-constraint-in-web-xml-doesnt-work – gigadot

0

拒絕用戶非HTTPS連接的替代方法是簡單地刪除HTTP傳輸鏈;轉至應用程序服務器>您的服務器> Web容器傳輸鏈,選擇WCInboundDefault並單擊刪除。現在只剩下使用WCInboundDefaultSecure傳輸鏈,它監聽SSL端口。

另一種同樣有效的替代方法是刪除主機別名,你非HTTPS在虛擬主機端口> default_host的>主機Aliases-這感覺就像是那麼殘酷配置變化:)

如果你喜歡過重定向限制,我建議您在訪問應用程序服務器之前執行此操作,例如在Web服務器或負載平衡器上。如果您在WAS前使用Apache HTTP服務器或IBM HTTP Server,則可以使用mod_rewrite管理重定向。

+0

感謝您的寶貴意見。 – sudhakars10

0

驗證是否在WebSphere管理控制檯中啓用了全局和應用程序安全性。

相關問題