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