GWT - 管理模块受身份验证保护?

时间:2013-05-03 23:19:02

标签: google-app-engine gwt

我有一个默认的GWT + app引擎项目。我们默认获得GWT入口点。

是否可以创建第二个GWT入口点,该入口点仅由受认证保护的html页面加载?

例如,在我的web.xml文件中,我添加了:

<security-constraint>
  <web-resource-collection>
      <url-pattern>/myprivatestuff/*</url-pattern>
  </web-resource-collection>
  ...
</security-constraint>

和app引擎项目中的war文件夹:

/war/myprivatestuff/index.html

我希望其中的index.html文件加载不同的GWT模块。我不希望第二个'admin'模块的代码能够被'main / default'GWT模块加载。

我担心GWT会将我的所有客户端代码编译成一个单片javascript实体,同时结合通用模块和管理模块,这将是一个安全问题。

是否可以在一个项目中构建两个模块,并将其编译的代码存放在不同的javascript输出中,并且仅在此受保护路径后面加载一个?

由于

1 个答案:

答案 0 :(得分:0)

是的,但单独的入口点不会解决您的问题,您需要创建第二个gwt模块(它将拥有自己的HTML页面和入口点以及* .gwt.xml文件)。这样就成了一个完全不同的应用程序,只有当你访问新网址(即新的html页面)时才会下载。

现在在第二个模块的EntryPoint中,您可以对服务器进行RPC调用并检查用户是否已登录,并且在管理员角色中,只有返回响应并转到显示菜单的所有菜单)

如果您想进一步保护页面安全,假设您不想将客户端代码下载到浏览器,除非用户是管理员,您可以执行Code Splitting,因此只有在应用程序身份验证成功且您是转到下一页,编译后的JS只会被转移。

希望它有所帮助。