我正在实现 Spring Data REST基于应用程序,我想知道是否有一种优雅的方式来使用这个框架或相关框架来实现身份验证和授权规则。
对 REST 服务器的所有 HTTP 请求都必须带有身份验证 header ,我需要检查它们并根据 HTTP 方法以及经过身份验证的用户与所请求资源的关联来决定是否授权。例如(应用程序是电子学习系统的 REST 服务器),教师只能访问自己的类(class)部分,学生只能访问他们订阅的类(class)部分等。
我想知道在 Spring Data REST 中是否有实现授权的默认方式。如果答案是否定的,您能对我的问题提出建议吗?我正在考虑:
- Servlet 过滤器
- Spring 安全性
- Spring Data REST 处理程序(如何访问 HTTP header ?)
最佳答案
对您来说最好的选择是 Spring Security。 这将帮助您以更简单的方式获得授权。
Spring Security 将要求您实现查看请求 header 并以编程方式执行登录操作。
在此处引用接受的答案。我也遵循相同的方法并在我的休息服务(使用 RestEasy 构建)前面实现了安全层
RESTful Authentication via Spring
还有另一种方法.. 引用 http://www.baeldung.com/spring-security-authentication-provider
在这两种情况下,您都可以通过在 Spring Security 中声明无状态身份验证来禁用 session 创建,这将帮助您在对无状态 REST 服务进行大量点击时显着提高性能。..
关于spring - Spring Data REST 中的身份验证和授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18989156/