无法验证用户是谷歌应用中的管理员

时间:2012-07-20 21:52:57

标签: java google-app-engine gwt

我正在开发一款仅在您是管理员时才会加载的Google应用。这是我试图做的一个例子。

public class MyAppEntryPoint implements EntryPoint {
    @Override
    public void onModuleLoad() {
         appUserServ = GWT.create(AppUserService.class);
         appUserServ.IsAdministrator(new AsyncCallback<Boolean>() {
        @Override
        public void onSuccess(Boolean isAdmin) {
            if(isAdmin) {
                LoadUI(); //Loads the site.
            }
        }
        @Override
        public void onFailure(Throwable caught) {
            //handle error
        }
    };
    }
}

AppUserService.IsAdministrator调用AppUser.IsAdministrator(),调用UserService.isUserAdmin()

当我尝试运行应用程序并以管理员身份登录时,我收到此错误:

com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract boolean com.myapp.client.AsyncServices.AppUserService.IsAdministrator()' threw an unexpected exception: java.lang.VerifyError: Expecting a stackmap frame at branch target 38 in method com.myapp.UserService.AppUser.ValidUser()Z at offset 33
    ...
Caused by: java.lang.VerifyError: Expecting a stackmap frame at branch target 38 in method com.myapp.UserService.AppUser.ValidUser()Z at offset 33
    at com.myapp.server.AppUserServiceImpl.IsAdministrator(AppUserServiceImpl.java:26)
    ...

有谁知道这个错误意味着什么或如何修复它?

此外,我正在开发google SDK的v1.7。

1 个答案:

答案 0 :(得分:2)

当您说管理员时,您的意思是Google App Engine的管理员概念吗?如果是这样,您可以configure this in app.yaml并显着降低复杂性。例如:

handlers:

- url: /admin/*
  servlet: com.example.AdminServlet
  login: admin

此示例将所有请求路由到/admin/*AdminServlet,并要求用户在显示页面之前成为管理员。