我在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 []包含用戶名和Surname,則登錄屏幕配置和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彈出窗口驗證zhcon失敗需要對話就像在Web瀏覽器中 基本身份驗證對話框。
如何禁用此對話框?
在此先感謝!
我設置Authenticator.setDefault(空)和彈出消失停用代理配置。我在服務器嘗試401塊錯誤。如果從顯示給用戶「用戶名/密碼不正確」的服務器消息返回的此類錯誤代碼 – dimitri 2011-04-26 08:04:51