GWT 和身份验证保护入口点保护远程服务

2022-09-03 15:04:31

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


答案 1

有两种基本策略:

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

保护入口点

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

  • 弹簧安全;
  • 网络.xml约束。

这可以让你有一个,例如 和。AdminEntryPointUserEntryPoint

保护远程服务

如果上述解决方案还不够,您可以更深入地挖掘。我已经与Spring Security合作过。我还没有找到一种100%干净的方式将Spring Security与GWT集成,所以我加了一点胶水。简要:

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

答案 2