Dev*_*ker 7 spring spring-boot spring-security-oauth2
我想实现一个资源服务器(Spring Boot Rest Backend 并通过 OAuth2 和 JWT 进行保护)。
我运行了一个资源服务器,它处理来自 Keycloak 身份验证服务器的 JWT 令牌。但是我对如何验证 JWT 令牌的知识仍然存在差距。
深入查看 Spring 参考文档会打开 Hellmouth。
在Spring OAuth2 Boot Reference 中有一个指向特性矩阵的链接。该矩阵列出了以下用于实现资源服务器的 spring 选项。
但是现在我发现了以下依赖项
此依赖项指的是哪个 Spring 项目或 Starter?矩阵是否过时?如果是这样,我在哪里可以找到选择合适的解决方案以实现资源服务器的当前概述?
一切都非常不透明,谁能给这片黑暗带来一些光明?
此依赖项指的是哪个 Spring 项目或 Starter?矩阵是否过时?
您链接到的引用和spring-security-oauth2-autoconfigure依赖项适用于现在处于维护模式的 OAuth 项目。正如功能矩阵中提到的,Spring Security 5 旨在取代之前单独开发的所有 OAuth 项目。但是,Spring Security 5 仍然不支持创建授权服务器,所以它还没有完全实现。但是,由于您正在实现资源服务器,因此 Spring Security 5 绝对是您要走的路。
如果是这样,我在哪里可以找到选择合适的解决方案以实现资源服务器的当前概述?
查看Spring Security 5 文档以获取有关如何实现资源服务器的详细信息。
提示 #1:正如前面提到的,“过时”的 Spring Security OAuth 项目有很多教程。每当您看到@EnableResourceServer注释时,您就会知道这是旧的做事方式。
这是“Spring Security的5路”: http.oauth2ResourceServer()。
提示#2:如果您使用的是 Spring Boot,则需要以下依赖项:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-oauth2-resource-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-oauth2-jose</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)
为什么?那么你需要 starter 来使用 Spring Security 5。文档解释了为什么你需要最后两个:
大多数资源服务器支持被收集到 spring-security-oauth2-resource-server 中。但是,对解码和验证 JWT 的支持在 spring-security-oauth2-jose 中,这意味着为了拥有支持 JWT 编码的承载令牌的工作资源服务器,两者都是必需的。
小智 -1
JWT 是一个 RFC 标准(RFC 7519)标准,就像 OAuth 2.0 (RFC 6749)一样,用于表示两方之间的声明。
我们一一来说吧。
现在回答你的问题
但首先需要注意的是。Spring社区正在对Spring Security项目进行前所未有的变革,这是对整个项目的重写。请观看此视频了解更多信息。所以你的困惑并不罕见。网络上有很多示例都考虑了使用 Spring 实现 OAuth 流程的旧方法。
在资源服务器端,您需要一个转换器来将您的 JWT 转换为实际的有效负载,并且您必须向该转换器提供签名密钥,以便它可以验证 JWT 是否有效。
关于依赖项,我已经使用 Spring Boot 成功实现了授权服务器和资源服务器的两个单独的模块,这是我在两侧使用的依赖项只有两个
org.springframework.boot:spring-boot-starter-security org.springframework.security.oauth.boot:spring-security-oauth2-autoconfigure
所以你的依赖地狱树看起来像
毕竟不是地狱;)
| 归档时间: |
|
| 查看次数: |
1063 次 |
| 最近记录: |