如何更改目标URL

时间:2013-11-20 03:53:54

标签: java

我开发了一个与Sun One Web服务器联系的应用程序。 Web服务器具有Lotus domino和SiteMinder插件。

以下是应用程序的URL

http://HostName.example.com

在浏览器中点击URL后,URL将重定向到Web服务器,并显示一个登录页面,其中包含以下URL。

http://HostName.example.com:9898/SiteMinderagent/forms/login.fcc?TYPE=
33554433&REALMOID=06-1716e557-15f3-100f-b9a4-835cc8200cb3&GUID=&SMAUTHREASON=
0&METHOD=GET&SMAGENTNAME=$SM$sHjbzl4f9R%2bcSa0%2fEgnu6oUQQPMQnUgkU6Zvx5zWZpQ%
3d&TARGET=$SM$http%3a%2f%2fshivalik%2ered%2eiplanet%2ecom%3a9898%2fvalidation%
2findex%2ehtml

登录到应用程序后,使用TARGET参数(URL在应用程序中解码)从URL重定向请求现在,如果我阻止HTTP请求,则登录不起作用。由于 TARGET 参数是HTTP请求,因此无法登录该应用程序。

有什么办法可以将TARGET参数更改为HTTPS。我可以知道在WebServer中可以在哪个文件中更改它。 Sun One Web Server运行Solaris OS。我已经努力找到解决方案,因为我认为在Domino的Servlet中,URL附加了查询字符串,如 SMAGENTNAME SMAUTHREASON TARGET

1 个答案:

答案 0 :(得分:1)

TARGET参数填充了用户最初提供的URL - 即在您的示例中http://HostName.example.com将导致TARGET查询字符串参数包含相同的URL以及SiteMinder代理生成的其他参数。

在您的情况下,可能的解决方案可能是通过在login.fcc的顶部放置类似以下内容来对目标进行硬编码:

@TARGET=https://hostname.example.com/

这会导致FCC忽略POST的查询字符串参数,而是硬编码。

或者,如果您需要保留网址的路径组件(例如http://hostname.example.com/path/to/file.html),则可以向FCC页面添加一些javascript。标准实现将TARGET填充到一个元素中,因此您可以使用JavaScript来解析值,并在需要时将htt://替换为http://。确保您的代理配置在BadFormChars(BadFormChars=%22,%27)中具有单引号和双引号,以防止XSS攻击。

还有一个代理配置参数HttpsPort可用于“欺骗”SiteMinder认为您正在从端口80提供HTTPS流量,但您必须测试任何意外的副作用。