从JNLP运行应用程序时出现不需要的登录对话框

时间:2011-07-12 15:25:40

标签: java login dialog jnlp

我正在使用OpenCmis库构建一个应用程序来与Cmis存储库进行通信。 librairy本身使用HttpUrlConnection对象调用REST服务。所以我没有任何访问连接对象的权限。身份验证由传输协议直接进行:因此,当提供的凭据错误时,服务器返回“http错误401 Unauthorize”,库捕获异常,引发CmisSomethingException,应用程序管理它,一切正常。

一切正常,直到我尝试在开发环境之外测试应用程序。应用程序是从JNLP启动的,当我从那里使用它时...一些内部Java处理似乎超出了库处理,捕获401错误并弹出一个Java登录对话框,要求提供凭据。

如果用户提供有效的用户名和密码,则效果很好。如果凭据错误,将重新显示登录对话框。最后,如果用户取消了登录对话框,那么401错误最终会被librairy捕获(并传递给应用程序)。

此对话框向用户提供的Look,functionnalites和反馈不是我们想要的。

现在有人在使用Java web start中的应用程序时如何“绕过/摆脱”这个对话框???

谢谢

杰夫

2 个答案:

答案 0 :(得分:2)

查看java.net.Authenticator和方法setDefault(java.net.Authenticator)

总而言之,在开头添加这行代码有助于:

Authenticator.setDefault(new Authenticator());

答案 1 :(得分:0)

如果找不到,请尝试在JDialogrun the JNLP with remote debugging enabled的构造函数中设置断点。这应该让你知道谁显示了对话框,可能会让你知道它为什么会发生。