我正在使用OpenCmis库构建一个应用程序来与Cmis存储库进行通信。 librairy本身使用HttpUrlConnection对象调用REST服务。所以我没有任何访问连接对象的权限。身份验证由传输协议直接进行:因此,当提供的凭据错误时,服务器返回“http错误401 Unauthorize”,库捕获异常,引发CmisSomethingException,应用程序管理它,一切正常。
一切正常,直到我尝试在开发环境之外测试应用程序。应用程序是从JNLP启动的,当我从那里使用它时...一些内部Java处理似乎超出了库处理,捕获401错误并弹出一个Java登录对话框,要求提供凭据。
如果用户提供有效的用户名和密码,则效果很好。如果凭据错误,将重新显示登录对话框。最后,如果用户取消了登录对话框,那么401错误最终会被librairy捕获(并传递给应用程序)。
此对话框向用户提供的Look,functionnalites和反馈不是我们想要的。
现在有人在使用Java web start中的应用程序时如何“绕过/摆脱”这个对话框???
谢谢
杰夫
答案 0 :(得分:2)
查看java.net.Authenticator和方法setDefault(java.net.Authenticator)。
总而言之,在开头添加这行代码有助于:
Authenticator.setDefault(new Authenticator());
答案 1 :(得分:0)
如果找不到,请尝试在JDialog
和run the JNLP with remote debugging enabled的构造函数中设置断点。这应该让你知道谁显示了对话框,可能会让你知道它为什么会发生。