保护 GWT + Tomcat 应用程序执行身份验证和授权的最佳策略是什么?
最佳答案
有两种基本策略:
- 保护入口点;
- 保护远程服务。
保护入口点
最简单的方法是使用常规 Web 应用程序安全工具限制对 GWT 生成的 html/js 文件的访问:
- Spring 安全;
- web.xml 约束。
这可以让你有一个例如AdminEntryPoint
和 UserEntryPoint
。
保护远程服务
如果上述解决方案还不够,您可以深入挖掘。我已经用 Spring Security 做到了。我还没有找到将 Spring Security 与 GWT 集成的 100% 干净的方法,所以我添加了一些胶水。简而言之:
- 创建了一个注释
@AllowedRoles
,它列举了允许访问该服务方法的用户角色; - 创建了一个
UserDetailsService
允许检查当前用户(详情参见 the SecurityContextHolder javadoc); - 创建了一个 Spring 方面,它匹配所有使用上述注释进行注释的方法。它使用该服务检索当前用户的角色并抛出检查异常以表示非法访问;
- 修改所有服务方法以抛出安全异常。
关于java - GWT 和身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1349938/