GWT和身份validation

保护GWT + Tomcat应用程序执行身份validation和授权的最佳策略是什么?

有两个基本策略:

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

保护入口点

最简单的方法是使用常规Web应用程序安全工具限制对GWT生成的html / js文件的访问:

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

这可以允许您拥有例如AdminEntryPointUserEntryPoint

保护远程服务

如果上述解决方案不够,可以深入挖掘。 我已经使用Spring Security这样做了。 我没有找到将Spring Security与GWT集成的100%干净方法,所以我添加了一些粘合剂。 简述:

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