2011-10-31 22 views
0

我已成功配置我的SWT浏览器应用程序以使用代理,方法是将VM参数-Dnetwork.proxy_host和-Dnetwork.proxy_port设置为相应的值。SWT浏览器插件不会提示代理验证

但是,该代理需要身份验证,但用户名/密码提示未打开。另外注册身份验证侦听器时,侦听器永远不会被触发。

Linux Debian 64位发行版发生问题。当为Windows编译相同的应用程序时,所有工作都正常,即密码提示打开。 SWT浏览器被配置为使用MOZILLA,而不是WEBKIT。不幸的是,我无法使用WEBKIT进行测试,因为我仅限于特定的环境。

临时解决方案:启动Linux Mozilla浏览器时,出现提示符。如果输入正确的值,然后启动SWT浏览器应用程序,则根本不需要验证,并且可以访问因特网。但这不是一个好的解决方案。

当我通过“addLocationListener”注册一个位置监听器来查看url调用发生了什么时,我可以看到初始url(例如www.google.de)的结果是调用代理的某个http站点服务器。这个http站点是重定向到代理的https站点。然后,https站点再次调用http重定向页面。这是一个无限循环。 我猜想在SWT浏览器类的JAVA代码的某个地方有一个例程调用setUrl与这些页面(导致 无限循环),并由于某种原因跳过调用任何身份验证侦听器。

也许有人有一个想法这个认证过程出了什么问题?

回答

1

我没有任何解决方案,但提示:我不确定你的意思是“Linux Mozilla浏览器” - 我知道Firefox和Xulrunner。但是,您的解决方法表明,个人资料信息以某种方式共享,并且不应该发生。

我试图找到一些信息如何定义配置文件(浏览器在哪里保存它的缓存,配置,SSL证书,插件等),但无济于事。

在FAQ此项显示了如何设置代理主机:How do I set a proxy for the Browser to use?

试图找到一种方式向用户/密码信息添加到发送到代理服务器的请求。如果失败,创建一个本地代理,它连接到真实代理作为上游,并且可以对自身进行身份验证。

望着bug数据库,对浏览器配置不支持:Flexible Mozilla profile support - new API request

+0

感谢您的答复。是的,我的意思确实是带有“Linux Mozilla Browser”的Firefox应用程序。我现在在我的笔记本上安装了一个本地代理(鱿鱼),在我的笔记本上使用密码验证,所有工作都正常,即出现提示。但很难说,因为环境是有点不同(相同的Java程序,但可能不同的代理配置,体系结构和Linux分布。我将继续调查这个问题在工作。 – eagle

+0

是的,似乎确实共享一些身份验证数据应用程序,不知道这是否是想要的行为 – eagle

+0

这不应该发生;您使用的是哪个版本的SWT? –