用户令牌认证Spring MVC RESTful API

3

我希望通过用户令牌来保证我们的REST API安全。

  1. 用户首先向API发送请求以获取访问令牌(必须提供自己的凭据-登录名和密码)
  2. 服务根据提供的凭据查找用户
  3. 如果找到用户,服务将创建一个具有时间限制的唯一令牌,并将其返回给用户(令牌过期时间可以定义为now() + 15分钟-是否足够?这种令牌的标准过期时间是多少?)
  4. 用户必须在所有请求中提供此令牌或在令牌过期时请求新令牌,然后API处理原始请求

我想问一下,Spring框架中是否有原生支持此身份验证流程的功能-如果有的话,能否提供一些简单的示例或指向Spring文档的URL?如果有,我需要使用什么?我已经阅读了Spring文档并阅读了许多教程,看起来它支持所有内容,我需要知道什么对我的问题最好。


你请求的令牌不就是sessionId吗?为什么不直接使用服务器返回的jsessionid作为你的令牌呢? - Eric B.
1个回答

1

对于基于令牌的资源授权,一个不可避免的框架将会是 oAuth

oAuth 将帮助您实现正好符合您需求的工作流程,例如用户可以进行身份验证,然后通过 API 获得访问一组定义资源的令牌。然而,它相当笨重,值得花时间了解它的工作原理,并确保它完全符合您的需求。

"官方"网站在 这里。有两个版本的 oAuth,因此这将有助于您了解哪个是适合您的。

至于 Spring Security 集成,有一个 Spring Security oAuth 项目。文档非常好,既介绍了如何将其与 Spring Security 集成的级别,也有助于您了解 oAuth 是您项目的正确解决方案。


我了解所有OAuth的优缺点,但我不想使用OAuth。出于某些原因,我需要在Spring中实现自己的授权机制。 - user2148736

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接