java - 绕过登录屏幕

标签 java authentication swt eclipse-rcp

在我们的rcp应用程序中,我们使用eclipse框架实现了登录功能(Splash屏幕上的登录功能)。

现在我们如何通过提供虚拟机参数来绕过此登录(包括启动屏幕)?

如果为虚拟机参数提供了正确的用户名和密码,我们不想显示登录页面(这包括启动屏幕,因为登录功能位于启动屏幕本身)

有什么想法吗?

最佳答案

不确定是否可以跳过启动屏幕(而且,没有看到这样做的任何充分理由),但如果您想将登录对话框与启动屏幕分开,则可以跳过显示登录对话框。

在应用程序启动时创建对话框,就像这样:

Application implements IApplication {

@Override
public Object start(IApplicationContext context) throws Exception {
    Display display = PlatformUI.createDisplay();
    try {

        LoginDialog dialog = new LoginDialog(display.getActiveShell());
        if (dialog.open() == Dialog.CANCEL) {
            return EXIT_OK;
        }

        int code = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());

        // Exit the application with an appropriate return code.
        return code == PlatformUI.RETURN_RESTART ? EXIT_RESTART : EXIT_OK;

    } finally {

        if (display != null) {
            display.dispose();
        }
    }
}

然后,您可以通过检查所需的系统属性并使用属性值对用户进行身份验证来跳过显示对话框:

    String username = System.getProperty("username");
    String pwd = System.getProperty("password");
    if (username != null && pwd != null) {
        // do something with username and password
    } else {
         LoginDialog dialog = new LoginDialog(display.getActiveShell());
         if (dialog.open() == Dialog.CANCEL) {
             return EXIT_OK;
          }
     }

此外,Platform.endSplash();可能会有所帮助。

关于java - 绕过登录屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17938693/

相关文章:

java - 无法替换节点值

Swift HTTP POST 登录验证

java - 如何重置ImageView的位置?

PHP 基本认证 file_get_contents()

php - 如何实现php登录或身份验证 session

java - SWT KeyUp 事件监听器错过按键

java - 更改 Java SWT 标签时出现无效线程访问错误

java - 无法在 Eclipse 中运行 SWT 应用程序

java - JSP 字符串格式化截断

java - 将一个日期字符串转换为另一个java