保护GWTP应用程序的最佳实践

时间:2012-12-01 13:40:18

标签: security gwt-platform

我正在使用GWT平台开发应用程序,现在我想添加安全性部分。这样做的最佳做法是什么? 我对安全的要求是:

  • 拥有用户权限;
  • 在没有必要权限的情况下隐藏用户的某些地方;
  • 在没有必要权限的情况下隐藏用户页面上的一些元素;
  • 保护服务器端免受未经授权的请求;
  • 舒适地管理所有这些事情(比如春天使用注释或类似的东西)

1 个答案:

答案 0 :(得分:1)

  

拥有用户权限;

使用权限属性为用户建模,例如

 private int user_type;
  

在没有必要权限的情况下隐藏用户的某些地方;

使用守门员

的概念

Gate Keeper是Singleton,它要求您继承一个名为

的方法
boolean canReveal()

使用此功能,您可以调用服务器并搜索用户权限,然后显示或不显示所调用的演示者。

如果Presenter需要安全性,只需在其上添加@UseGateKeeper代理接口,例如:

SomePresenter extends Presenter<V,P>{
       @UseGateKeeper(YourGateKeeper.class)
       SomePresenterProxy extends ProxyPlace{}
}

这将阻止用户在未经访问权限的情况下访问演示者。

  

在没有必要权限的情况下隐藏页面上的某些元素;

一个很好的问题,我从来没有在GWTP项目中看到过这种类型的安全性。但你总是可以使用Widget.setVisible(false); D,但我不知道gwtp是否有一个很好的做法。

  

保护服务器端免受未经授权的请求;

GWTP GWTP可以将每个ActionHandler与服务器端ActionValidator链接,以确定当前客户端是否可以执行操作

您可以使用ActionValidator隐藏一些服务器调用。

阅读this

  

舒适地管理所有这些事情(比如春天使用注释或类似的东西)

正如您所看到的,许多安全概念使用Annotations和其他东西来轻松管理您的应用程序。