【问题标题】:Authentication Required Dialog需要验证对话框
【发布时间】: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 基本身份验证对话框。

如何禁用此对话框?

提前致谢!

【问题讨论】:

    标签: netbeans rcp


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      您可以使用 Authenticator.setDefault(Authenticator) 方法覆盖此对话框。

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

      【讨论】:

      • 我设置了 Authenticator.setDefault(null) 并且弹出窗口消失了。我从服务器捕获了 try block 401 错误。如果从服务器消息返回的此类错误代码显示给用户“用户名/密码不正确”
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2015-01-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多