Java GWT:认证后如何下载EntryPoint?
这里的想法是将我的GWT应用程序放在两个不同的模块中:Java GWT:认证后如何下载EntryPoint?,java,authentication,gwt,module,Java,Authentication,Gwt,Module,这里的想法是将我的GWT应用程序放在两个不同的模块中: WebModule(入口点),仅包含一个登录屏幕;及 包含主应用程序的AppModule(入口点) 当用户访问网站时,WebModule将下载到他们的浏览器中,并向他们显示登录屏幕。然后,他们必须提交用户名和密码,然后使用GWT-RPC对其进行身份验证并确定是否允许继续 如果身份验证通过,我希望下载AppModule,它有自己的起始位置Place(以及相应的视图/演示者),并且我希望将用户重定向到该位置 如何实现此功能?两者: 仅在成功登
WebModule
(入口点),仅包含一个登录屏幕;及WebModule
将下载到他们的浏览器中,并向他们显示登录屏幕。然后,他们必须提交用户名和密码,然后使用GWT-RPC对其进行身份验证并确定是否允许继续
如果身份验证通过,我希望下载AppModule
,它有自己的起始位置Place
(以及相应的视图/演示者),并且我希望将用户重定向到该位置
如何实现此功能?两者:
- 仅在成功登录后才强制下载
;及AppModule
- 是否将用户重定向到
的起始位置AppModule
AppModule
的主机页面
如果您想使用双模块结构,请参阅本文。我建议您只需将Spring安全性添加到GwT web应用程序中即可。然后,您可以使用Spring安全登录页面(可自定义),并使用本地用户列表、LDAP等。如果适用,还将支持来宾用户 请访问以获取更多信息,如果您需要指导,请使用谷歌“gwt spring security”。我对面板很满意。 我的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
}
模块加载()上的公共void{
//登录-从数据库中选择所有用户
//
statusMessage.setText(“等待用户列表”);
字符串消息=新字符串();
myDatastoreService.loginSelect(消息,
新的AsyncCallback(){
失败时公共无效(可丢弃错误){
Window.alert(error.getMessage());
}
成功时公开作废(列表结果){
statusMessage.setText(“”);
loginInfo=结果;
if(loginInfo.isEmpty()){
System.out.println(“空”);
UserDialog createUser=新建UserDialog();
createUser.userInfo(“F”,-1,currentUser,
用户表、登录信息、状态消息);
}否则{
loginDialog();
}
}
});
获取(“statusPanelContainer”).add(statusMessage);
}
//登录对话框:
私有void loginDialog(){
//在这里,您必须放置登录所需的所有面板
//如果登录成功:您必须从主面板(而不是根面板)中删除所有登录面板
//并调用主对话框
main对话框();
//如果登录未成功,您将停留在登录面板上
}
私有void main对话框(){
//在这里,你把你所有的应用电源面板
}
}