32

我正在实现一个基于Spring Data REST的应用程序,我想知道是否有一种优雅的方式来使用这个框架或相关框架来实现身份验证和授权规则。

对 REST 服务器的所有 HTTP 请求都必须携带身份验证标头,我需要检查它们并根据 HTTP 方法以及经过身份验证的用户与所请求资源的关联来决定是否授权。例如,(应用程序是电子学习系统的 REST 服务器),教师只能访问他们自己的课程部分,学生只能访问他们订阅的课程部分等。

我想知道是否有默认方式在 Spring Data REST 中实现授权。如果答案是否定的,您能对我的问题提出建议吗?我在想:

  • Servlet 过滤器
  • 春季安全
  • Spring Data REST 处理程序(如何访问 HTTP 标头?)
4

1 回答 1

12

对你来说最好的选择是 Spring Security。那将帮助您以更简单的方式实现授权。

Spring Security 将要求您实现查看请求标头并以编程方式执行登录操作。

请在此处参考接受的答案。我也遵循了相同的做法,并在我的休息服务(使用 RestEasy 构建)之前实现了安全层

通过 Spring 进行 RESTful 身份验证

还有一种替代方法。请参阅 http://www.baeldung.com/spring-security-authentication-provider

在这两种情况下,您都可以通过在 Spring Security 中声明无状态身份验证来禁用会话创建,这将帮助您在对无状态 REST 服务进行大量命中时显着提高性能。

于 2013-09-25T14:42:32.673 回答