一尘不染

GWT和身份验证

java

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


阅读 241

收藏
2020-12-03

共1个答案

一尘不染

有两种基本策略:

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

保护入口点

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

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

这样可以让您拥有eg AdminEntryPointUserEntryPoint

保护远程服务

如果上述解决方案还不够,您可以进行更深入的研究。我已经通过Spring Security做到了。我还没有找到将Spring
Security与GWT集成的100%简洁的方法,所以我添加了一些胶水。简要地:

  • 创建了一个注释@AllowedRoles,该注释枚举了允许访问该服务方法的用户角色;
  • 创建了一个UserDetailsService允许检查当前用户的(有关详细信息,请参见SecurityContextHolder javadoc);
  • 创建了一个Spring方面,该方面与所有带有上述注释的方法匹配。它使用该服务检索当前用户的角色,并抛出一个已检查的异常以表明存在非法访问。
  • 修改了所有服务方法以引发安全异常。
2020-12-03