GWT:认证后如何下载EntryPoint?
Posted
技术标签:
【中文标题】GWT:认证后如何下载EntryPoint?【英文标题】:GWT: How to download EntryPoint after authenticating? 【发布时间】:2013-12-13 19:43:28 【问题描述】:这里的想法是将我的 GWT 应用程序放在 2 个不同的模块中:
WebModule
(入口点)只包含一个登录屏幕;和
AppModule
(入口点)包含主应用程序
当用户访问该网站时,WebModule
会下载到他们的浏览器并向他们显示一个登录屏幕。然后他们必须提交用户名和密码,然后使用 GWT-RPC 对他们进行身份验证并确定是否允许他们继续。
如果身份验证通过,我希望下载 AppModule
,它有自己的起始 Place
(以及相应的视图/演示者),并且我希望将用户重定向到该位置。
如何实现此功能?两者:
强制AppModule
仅在成功登录后下载;和
将用户重定向到AppModule
的起始位置?
【问题讨论】:
【参考方案1】:长话短说:恕我直言,对于一个简单的身份验证页面,您可能不想打扰整个 GWT 模块。
查看 GWT 官方网站中的 Dynamic Host Page 文章。它有点过时,但分析了一些您可能会发现自己的身份验证用例。更简单的方法可能是仅在基于 servlet 的简单登录页面上成功登录时动态提供您的 AppModule
的主机页面。
如果您想使用双模块结构,另请参阅此SO 帖子。
【讨论】:
【参考方案2】:我建议简单地将 Spring Security 添加到您的 GwT Web 应用程序中。然后,您可以使用 Spring Security 登录页面(可自定义)并使用本地用户列表、LDAP 等。如果适用,还将支持访客用户。
如果您需要指导,请访问http://projects.spring.io/spring-security/ 了解更多信息和谷歌“gwt spring security”。
【讨论】:
【参考方案3】:我正在使用面板。 我的 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
【讨论】:
以上是关于GWT:认证后如何下载EntryPoint?的主要内容,如果未能解决你的问题,请参考以下文章