1

我正在创建一个 GWT 应用程序并希望添加一个管理控制台。

我的第一次尝试是创建一个管理窗口(小部件),然后在管理员登录时显示它。

这种方法的问题在于,每个访问我的页面的用户都会下载负责显示和操作管理控制台的 javascript——出于性能和安全原因,我不喜欢这个想法。

由于管理控制台只是我的应用程序中的一个“窗口” - 我希望仅在用户以管理员身份登录并在他注销时“​​清除”它时下载它。

使用 GWT 实现这一目标的可用选项是什么?

4

3 回答 3

1

跟进 Ajax 的解决方案,更多细节和选项:

  • 您的管理模块是部署在不同战争中的不同 java 项目,例如 admin.war。
  • 您的 Admin java 项目继承自您的主项目,因此您拥有所有常用功能 + Admin 功能。
  • You Admin module javascript 只能从 admin.war Web 应用程序访问,例如其中的 index.html。
  • 您的 admin.war Web 应用程序只能通过 ssl 隧道后面的本地主机访问。这样,只有那些可以使用私钥访问您的服务器的管理员用户在成功打开隧道后才能访问您的管理模块,其他人没有。此选项非常安全——您可以控制谁可以访问,并且所有通信都经过加密。但此选项仅适用于只有少数管理员用户通过服务器授权的公钥对其进行严格控制的情况。否则,我想您必须通过密码和代码拆分来求助于上述身份验证机制。
于 2013-01-06T18:24:24.303 回答
-1

代码拆分是将管理内容从面向客户端的 JS 中移出的快速解决方案;但是,任何熟练使用 gwt 的人都知道如何访问未下载的代码拆分。

真正安全的选择是运行第二个入口点并仅为管理员编译。这样,您的服务器可以避免提供任何涉及管理功能的内容。

将所有管理功能放入主编译中不允许的包中也是明智的;这样,您将永远不会泄漏不安全的资源。

于 2013-01-04T13:30:14.160 回答
-1

使用自己的 Activity 为管理控制台创建一个单独的视图。您可以为此使用活动和地点设计模式

此外,您可以使用代码拆分来确保只有管理员才能加载管理控制台所需的代码。

编辑:

在您的入口点类中,您应该检查用户是否经过身份验证并且是管理员,并允许或不允许访问您的应用程序的这一部分。你也应该在服务器端做同样的事情。当用户注销时,关闭应用程序。

于 2013-01-04T13:26:46.823 回答