0

我有一个在 Weblogic 上运行的 Web 应用程序。此应用程序的 HTTPS URL 是https://localhost:7002/MyApp

每当我将地址栏中的 URL 更改为 时http://localhost:7002/MyApp,它都会自动重定向到基于 HTTPS 的原始 URL。

如果他们请求 HTTP URL,我的要求是把用户带到某种自定义错误页面。例如,http://localhost:7002/MyApp应该重定向到https://localhost:7002/MyApp/error.jsp.

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

4

1 回答 1

1

您提到您的 https 网址是:

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.>

我假设您将 URL 更改为:

http://localhost:7001/MyApp

请更正/更新您的问题描述。

现在根据您的要求,通过 WLS 配置几乎不可能做到这一点。

作为一种解决方法,您可以创建一个 servlet 过滤器并在 ServletRequest 上调用 isSecure 以确定请求是否使用安全协议发出。如果你发现它不是,那么你可以重定向到一些自定义页面。您还需要禁用此自动重定向到您为您的应用程序报告的 https。

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

于 2013-05-08T16:21:43.463 回答