需要身份验证对话框

时间:2011-04-25 13:00:02

标签: netbeans rcp

我遇到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浏览器中使用对话框 基本身份验证对话框。

dialog

如何停用此对话框?

提前感谢!

3 个答案:

答案 0 :(得分:2)

工具&gt;选项&gt;一般 代理设置:无代理 [OK]

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

通过转到工具 - &gt;选项 - &gt; general-&gt;无代理

来停用代理配置