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