2009-08-28 116 views

回答

14

Therea两种基本策略:

  1. 确保入口点;
  2. 保护远程服务。

安全的入口点

最简单的方法是限制访问使用常规的Web应用安全工具中的HTML/JS GWT通过生成的文件:

  • 春季安全;
  • web.xml约束。

这可以让你有一个例如AdminEntryPointUserEntryPoint

安全远程服务

如果上述解决方案不够,可以深入挖掘。我在Spring Security中这样做了。我还没有找到将Spring Security与GWT集成的100%干净方式,所以我添加了一些胶水。简而言之:

  • 创建了一个注释@AllowedRoles,它枚举允许访问该服务方法的用户角色;
  • 创建了一个UserDetailsService它允许检查当前用户(有关详细信息,请参阅the SecurityContextHolder javadoc);
  • 创建了一个Spring方面,该方面匹配所有注解前述注解的方法。它使用该服务来检索当前用户的角色并抛出一个检查的异常来表示非法访问;
  • 修改了所有服务方法来抛出安全异常。
+2

罗伯特,你能给我提供的方面的示例代码? (这是我被困住的地方) – 2011-06-29 14:22:46