我正在尝试使用 spring security 为 HTTP api 启用基于令牌的身份验证。
环顾四周,我看到了有关实现过滤器和处理程序的答案,例如
Spring Security 通过 token 进行身份验证 https://stackoverflow.com/questions/17126201/spring-security-authentication-via-token
Spring Security 3.2 令牌认证 https://stackoverflow.com/questions/18131669/spring-security-3-2-token-authentication
有一个非常有趣的 KeyBasedPersistenceTokenService 类。
在 Spring Security 中是否没有构建身份验证机制所需的过滤器或其余元素?
The Token
Spring Security 中的接口非常抽象 - 您需要提供自己的实现来携带实际的身份验证信息,以及您自己的用于向经过身份验证的用户或客户端颁发令牌的端点,以及您提到的在受保护资源上处理令牌的过滤器(您发布的链接之一建议使用AbstractPreAuthenticatedProcessingFilter
这是正确的)。确实没有一种万能的解决方案。
您可能会更好地使用 OAuth2,因为它是一个标准并且在春季OAuth https://github.com/spring-projects/spring-security-oauth。至少你可以通过这种方式获得所有这些开箱即用的功能。
另一个有趣的令牌实现是 Github 的“安全 http”——它们为您提供一个令牌,然后您将其用作 HTTP 基本身份验证中的密码(广泛支持客户端,并且在 Spring Security 中也可以开箱即用)。你只需要插入一个UserDetailsService
(并将其连接到一些令牌发行 UI)如果您在 Spring Security 中实现它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)