Netbeans 需要身份验证对话框

Netbeans 需要身份验证对话框,netbeans,rcp,Netbeans,Rcp,我在netbeans rcp中遇到登录屏幕问题 服务器端:GlassFishV3.1、ejb和HessianServlet,在web.xml中具有基本身份验证 客户端:netebeans rcp 7.0和服务器端Api 在所使用的服务器上,自定义域和客户端在启动屏幕后,在DialogDescriptor顶部运行的自定义登录面板中提供用户名和密码 登录面板代码: public class Installer extends ModuleInstall { ... @Override

我在netbeans rcp中遇到登录屏幕问题

服务器端:GlassFishV3.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);     
... 
} 
这个登录面板只调用服务器端的一个安全方法,若并没有发生异常,则 返回的字符串[]包含用户名和姓氏,然后处理登录屏幕并向客户端显示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 

} 
HessianProxy工厂代理=新的HessianProxy工厂();
proxy.setUser(用户);
proxy.setPassword(密码);
LoginObject LoginObject=xxx.create(LoginObject.class)http://localhost:port/trali/vali"); 
String[]value=loginObject.isAppUser(“登录名”);
如果(值==null){
//消息登录失败
}否则{
//处理登录屏幕并显示主应用程序
} 
一切正常,直到客户端提供正确的用户名和密码,但如果登录失败 服务器Netbeans RCP弹出式身份验证需要类似于web浏览器中的对话框 基本身份验证对话框

如何禁用此对话框?


提前谢谢

您可以使用方法覆盖此对话框

如果您确实试图通过覆盖默认验证器来禁用身份验证,则需要在客户端代码中考虑这一点。。。因为您可能会收到一连串“未经授权”的响应。

工具>选项>常规 代理设置:无代理 [好的]


这将停止代理身份验证(FTP/SFTP)弹出窗口。或者将代理设置设置为有效的设置

通过进入工具->选项->常规->无代理禁用代理配置

我设置了验证器。设置默认值(null)和弹出窗口消失。我在服务器的try块401中捕获错误。如果从显示给用户的服务器消息返回此类错误代码“用户名/密码不正确”