我正在编写一个 GWT 应用程序,并且我只需要加载基于用户角色的某些小部件。例如。可能有管理小部件、用户小部件等。
有什么想法可以实现吗?
一种选择是我可以检查代码中的角色并隐藏它们。但由于此代码在客户端执行,我认为这是一个安全风险。
您应该在服务器端管理角色:
以某种方式将角色传递给您的 Root 小部件。
RPC
onModuleLoad
在询问角色期间调用服务器
或者简单地将它从JSP传递给JSget
并从 Widget使用本机。
构建所需的面板
是的,您仍然有一些风险,因为您的所有 js 代码都在客户端上,并且它可以使用 JS 调试来修改流程。为了防止这种情况,您需要过滤所有从小Admin
部件到服务器端的调用,并使其失败而没有成功的结果。所以,admin 小部件什么也做不了,因为所有对 Server 的调用都会失败。
如果它对您来说仍然不够安全 - 那么您可以使用单独的GWT Entry Points
。在这种情况下,您将使用单独的JS代码将客户端转发到单独的页面。
我有同样的问题。我找到了这个(还没有使用它,但我认为这可能是解决方案): acris