2013-05-07 35 views
0

我有一個運行在Weblogic上的Web應用程序。此應用程序的HTTPS網址爲https://localhost:7002/MyApp避免HTTP到Weblogic中的HTTPS重定向

每當我將地址欄中的URL更改爲http://localhost:7002/MyApp時,它都會自動重定向到原始的基於HTTPS的URL。

我的要求是讓用戶訪問某種自定義錯誤頁面,如果他們請求HTTP URL的話。例如,http://localhost:7002/MyApp應該重定向到https://localhost:7002/MyApp/error.jsp

是否可以在Weblogic中配置此重定向?

+1

是的,這是可能的。這應該有所幫助:http://middlewaremagic.com/weblogic/?p=2019 – 2013-05-07 17:24:19

回答

1

您剛纔說您的HTTPS URL是:

https://localhost:7002/MyApp 

而且假設你的HTTP URL是:

http://localhost:7001/MyApp 

當你說你在瀏覽器更改HTTPS URL到:

http://localhost:7002/MyApp 

這是錯誤的。如果您提供這樣一個URL,WLS將接受安全端口7002上的請求,但將無法識別該協議(它預期爲https,但是您給出了http)。相反,重定向的,你會得到在瀏覽器的一些錯誤,絕對以下錯誤的WLS日誌:

<May XX, 2013 XX:XX:17 PM IST> <Warning> <Security> <BEA-090475> <Plaintext data for protocol HTTP was received from peer 
XXXXXXXXXXXXXX - 192.169.0.100 instead of an SSL handshake.> 

我假設你正在改變網址:

http://localhost:7001/MyApp 

請更正/更新您的問題說明。

現在根據您的要求,通過WLS配置來做這件事似乎幾乎是不可能的。

作爲一種解決方法,您可以創建一個servlet過濾器並在ServletRequest上調用isSecure來確定請求是否使用安全協議進行。如果您發現它不是,那麼您可以重定向到某個自定義頁面。而且您還需要禁用自動重定向到您已爲您的應用程序報告的https。

Ref:http://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#isSecure%28%29