java - 基于spring security的token认证

标签 java spring authentication spring-security

我正在尝试为具有 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 中实现它,你只需要插入一个 UserDetailsS​​ervice(并将它连接到一些 token 发布 UI)。

关于java - 基于spring security的token认证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22153339/

相关文章:

java - 在使用 Java 8 流的存储库上使用 Spring Data Rest(对于查找器返回类型)

java - 条件 - 应该在等待之前解锁吗?

spring - 无法执行目标 org.springframework.boot :spring-boot-. 。 :2. 1.8。运行时发生异常。无效的

java - 为什么我在设置 boolean 值 : true? 时会得到默认的 false

java - 如何使用 Pageable 对嵌入实体的属性进行排序?

ruby-on-rails - 在 Rails 2.2+ 中测试 HTTP Basic Auth

reactjs - 同时对 Asp.Net core 2.0 MVC 应用程序 (cookie) 和 REST API (JWT) 进行身份验证

.net - 从.net程序登录delphi程序

java - 本书带您了解 Java API?

java-获取数字数据库值