【发布时间】:2011-08-12 07:44:14
【问题描述】:
我在 netbeans rcp 中遇到了登录屏幕的问题。
服务器端:glassfish v 3.1、ejb 和 HessianServlet,在 web.xml 中具有基本身份验证
客户端:netebeans rcp 7.0 和服务器端 Api。
在使用自定义领域的服务器上,客户端在启动屏幕后提供用户名和密码,在 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
}
在客户端提供正确的用户名和密码之前一切正常,但如果登录失败 服务器 Netbeans RCP 弹出 Authentication Requires Dialog like in web browser 基本身份验证对话框。
如何禁用此对话框?
提前致谢!
【问题讨论】: