0

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

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

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

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

和我在应用引擎项目中的战争文件夹:

/war/myprivatestuff/index.html

我希望其中的 index.html 文件加载不同的 GWT 模块。我不希望第二个“管理”模块中的代码能够被“主/默认”GWT 模块加载。

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

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

谢谢

4

1 回答 1

0

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

现在在第二个模块的入口点,您可以对服务器进行 RPC 调用并检查用户是否已登录,并且以管理员角色,然后才返回响应并移动到显示菜单和所有内容的下一页)

如果你想进一步保护页面,比如说你甚至不想将客户端代码下载到浏览器,除非用户是管理员,你可以进行代码拆分,所以只有当应用程序身份验证成功并且你正在移动到下一页时,编译后的 JS 才会被转移。

希望能帮助到你。

于 2013-05-04T15:42:19.253 回答