我遇到netbeans rcp登录界面的问题。
服务器端:glassfish v 3.1,ejb和HessianServlet以及web.xml中的基本身份验证
客户端:netebeans rcp 7.0和服务器端Api。
在服务器上使用自定义域和客户端在启动画面后提供UserName和Password,在自定义登录面板上运行在DialogDescriptor之上
登录面板代码:
public class Installer extends ModuleInstall {
...
@Override
public void restored() {
DialogDescriptor loginDialog = new DialogDescriptor(panel, "Login Dialog");
loginDialog.setModal(true);
loginDialog.setClosingOptions(new Object[]{});
loginDialog.setOptions(new Object[]{});
loginDialog.setButtonListener(al);
loginDialog.addPropertyChangeListener(new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent evt) {
if (NotifyDescriptor.CLOSED_OPTION.equals(evt.getNewValue())) {
LifecycleManager.getDefault().exit();
}
}
});
DialogDisplayer.getDefault().notifyLater(loginDialog);
...
}
此登录面板只是在服务器端调用一个安全方法,如果没有发生异常,则 返回String []包含用户名和姓氏,然后登录界面处理,rcp显示给客户端。
登录面板中的:
HessianProxyFactory proxy= new HessianProxyFactory();
proxy.setUser(user);
proxy.setPassword(password);
LoginObject loginObject = xxx.create(LoginObject .class, "<a href="http://localhost:port/trali/vali">http://localhost:port/trali/vali");
String[] value=loginObject .isAppUser("login name");
if(value==null){
//message login failed
}else {
//dispose login screen and show main app
}
一切正常,直到客户端提供正确的用户名和密码,但如果登录faild on 服务器Netbeans RCP弹出窗口身份验证需要在Web浏览器中使用对话框 基本身份验证对话框。
如何停用此对话框?
提前感谢!
答案 0 :(得分:2)
工具&gt;选项&gt;一般 代理设置:无代理 [OK]
这将停止代理身份验证(FTP / SFTP)弹出窗口。或者将代理设置设置为有效的设置。
答案 1 :(得分:1)
您可以使用方法Authenticator.setDefault(Authenticator)覆盖此对话框。
如果您尝试通过覆盖默认身份验证器来尝试禁用身份验证,则需要在客户端代码中考虑这一点...因为您可能会获得“未授权”响应流。
答案 2 :(得分:0)
通过转到工具 - &gt;选项 - &gt; general-&gt;无代理
来停用代理配置