GWT:如何验证下载后入口点?

问题描述 投票:0回答:3

这里的想法是让我的GWT应用程序在2个不同的模块:

  1. WebModule(入口点),其仅包含一个登录屏幕;和
  2. AppModule(入口点),其中包含的主要应用

当用户登陆网站,在下载WebModule到他们的浏览器,并提出了一个登录界面给他们。然后,他们必须提交用户名和密码,然后使用GWT-RPC来验证他们的身份,并确定他们是否允许继续进行。

如果认证通过,我想要下载的AppModule,它有自己的起始Place(和相应视图/主持人),并且我希望用户被重定向到该地方。

我怎么能实现这个功能?都:

  • 强制AppModule只有成功登录后下载;和
  • 将用户重定向到AppModule的首发位置?
java authentication gwt module
3个回答
0
投票

长话短说:恕我直言一个简单的认证页面,你可能不希望打扰整个GWT模块。

看一看在官方网站GWT的Dynamic Host Page文章。这是一个有点过时,但分析了一些权威性的用例,你可能会发现自己的,最简单的方式可以是动态只提供一个简单的基于servlet的登录页面上成功登录您的AppModule的主页。

另见本SO后,如果你想要去的双模块结构。


0
投票

我建议简单地增加春季安全到您的GWT Web应用程序。然后,您可以使用Spring Security的登录页面(可定制),并用本地用户列表,LDAP工作,等等。如果适用还将支持guest用户。

访问http://projects.spring.io/spring-security/获取更多信息和谷歌“GWT春天安”,如果你需要指导。


0
投票

我与面板普兰。我的GWT应用程序有一个结构:

公共类课程实现入口点{

....所有变量

public void onModuleLoad() {
    // Login - select from database all user
    //
    statusMessage.setText("Waiting for users list.");
    String message = new String();
    myDatastoreService.loginSelect(message,
            new AsyncCallback<List<LoginInfo>>() {
        public void onFailure(Throwable error) {
            Window.alert(error.getMessage());
        }

        public void onSuccess(List<LoginInfo> result) {
            statusMessage.setText("");
            loginInfo = result;
            if (loginInfo.isEmpty()) {
                System.out.println("Empty");
                UserDialog createUser = new UserDialog();
                createUser.userInfo("F", -1, currentUser,
                            userTable, loginInfo, statusMessage);
            } else {
                loginDialog();
            }
        }
    });
    RootPanel.get("statusPanelContainer").add(statusMessage);
}
// Login dialog:
private void loginDialog() {
    //Here you have to put all panels you need for login
    // If login is successfully : you have to remove all login panels from main panels (not root)
    // and call main dialog
     mainDialog();
    // If login is not successfully you stay on login panel

}
private void mainDialog() {
    // Here you put all your applications mains panels
}

}

© www.soinside.com 2019 - 2024. All rights reserved.