我正在尝试为具有 spring 安全性的 HTTP api 启用基于 token 的身份验证。
环顾四周,我看到了有关实现过滤器和处理程序的答案,例如
Spring Security authentication via token
Spring Security 3.2 Token Authentication
有一个非常有趣的 KeyBasedPersistenceTokenService 类。
在spring security中是否没有过滤器或其他元素来构建认证机制?
最佳答案
Spring Security 中的 Token
接口(interface)非常抽象 - 您需要提供自己的实现来携带实际的身份验证信息,以及您自己的端点以向经过身份验证的用户或客户端颁发 token ,以及您提到的用于处理 protected 资源上的 token 的过滤器(您发布的链接之一建议使用 AbstractPreAuthenticatedProcessingFilter
,这是正确的)。没有真正适用于所有情况的解决方案。
使用 OAuth2 可能会更好,因为它是一个标准并且在 Spring OAuth 中单独支持.至少您可以通过这种方式获得所有这些开箱即用的功能。
另一个有趣的 token 实现是 Github 的“安全 http”——它们给你一个 token ,你可以将它用作 HTTP 基本身份验证中的密码(广泛支持的客户端,也可以在 Spring Security 中开箱即用)。如果你在 Spring Security 中实现它,你只需要插入一个 UserDetailsService
(并将它连接到一些 token 发布 UI)。
关于java - 基于spring security的token认证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22153339/