有两种基本策略:
- 确保入口点;
- 保护远程服务。
保护入口点
最简单的方法是使用常规的Web应用程序安全工具来限制对GWT生成的html / js文件的访问:
- 春季安全;
- web.xml约束。
这样可以让您拥有eg
AdminEntryPoint和
UserEntryPoint。
保护远程服务
如果上述解决方案还不够,您可以进行更深入的研究。我已经通过Spring Security做到了。我还没有找到将Spring
Security与GWT集成的100%简洁的方法,所以我添加了一些胶水。简要地:
- 创建了一个注释
@AllowedRoles
,该注释枚举了允许访问该服务方法的用户角色; - 创建了一个
UserDetailsService
允许检查当前用户的(有关详细信息,请参见SecurityContextHolder javadoc); - 创建了一个Spring方面,该方面与所有带有上述注释的方法匹配。它使用该服务检索当前用户的角色,并抛出一个已检查的异常以表明存在非法访问。
- 修改了所有服务方法以引发安全异常。



