GWT和身份validation
保护GWT + Tomcat应用程序执行身份validation和授权的最佳策略是什么?
有两个基本策略:
- 确保切入点;
- 保护远程服务。
保护入口点
最简单的方法是使用常规Web应用程序安全工具限制对GWT生成的html / js文件的访问:
- 春季安全;
- web.xml约束。
这可以允许您拥有例如AdminEntryPoint
和UserEntryPoint
。
保护远程服务
如果上述解决方案不够,可以深入挖掘。 我已经使用Spring Security这样做了。 我没有找到将Spring Security与GWT集成的100%干净方法,所以我添加了一些粘合剂。 简述:
- 创建了一个注释
@AllowedRoles
,它枚举了允许访问该服务方法的用户角色; - 创建了一个
UserDetailsService
,允许检查当前用户(有关详细信息,请参阅SecurityContextHolder javadoc ); - 创建了一个Spring方面,它匹配所有使用前面提到的注释注释的方法。 它使用该服务来检索当前用户的角色,并抛出一个已检查的exception以表示非法访问;
- 修改了所有服务方法以抛出安全性exception。