Spring 中的 spring-security-oauth2 与 spring-security-oauth2-core

问题描述 投票:0回答:4

spring中的spring-security-oauth2和spring-security-oauth2-core有什么区别? spring-security-oauth2 是否被 spring-security-oauth2-core 取代?

spring-security-oauth2 发布链接: http://repo.spring.io/release/org/springframework/security/oauth/spring-security-oauth2/

spring-security-oauth2-core 发布链接 http://repo.spring.io/release/org/springframework/security/spring-security-oauth2-core/

spring spring-security spring-security-oauth2
4个回答
9
投票

是的,有很大的不同。 spring-security-oauth2(Spring Security OAuth 项目)不再积极开发

展望未来,它将在 Spring Security 5 中实现(在 spring-security-oauth2-core 中)。这很令人困惑,因为许多教程都使用以前的 Spring Security OAuth(

@EnableResourceServer
@EnableAuthorizationServer
@EnableOAuth2Sso
注释通常会泄露它)。


1
投票

第一个链接与 Spring 4 相关,它匹配 Spring Security 版本。您可以在 pom.xml 文件中验证这一点。

第二个链接与 Spring 5 和 Spring Security 5 相关。这不仅从您在该链接中看到的版本中直接看出,而且您可以在 Spring Security 5 文档中找到直接命名的依赖项。


1
投票

Spring git 存储库中描述了差异

https://github.com/spring-projects/spring-security/wiki/OAuth-2.0-Migration-Guide

它是旧库:security/oauth/spring-security-oauth2/ 如您所见,该库位于 spring-security 的“oauth”组中。

我不建议使用旧库作为客户端,因为有许多未解决的问题,包括有关 clientContext 存储的问题(库使用代理而不是普通实体,因此当您将 MA 与分布式一起使用时,您会遇到问题缓存)。此外,它不允许同时使用多个 OAuth2.0 提供程序(仅限一个)。

同时,该库提供了一个显着的优势,可以使用新库中未实现的授权服务器。


0
投票

spring-security-oauth2 和 spring-security-oauth2-core 是 Spring Security 生态系统中与基于 OAuth 2.0 的身份验证和授权相关的两个模块。尽管它们在功能方面有相似之处,但它们的目的和方法略有不同:

spring-security-oauth2:

  • 该模块提供了更完整、更健壮的实现 Spring Security 中的 OAuth 2.0。
  • 它包括授权和资源提供者等功能, 授权和身份验证流程,以及刷新和支持 访问令牌。
  • 它为实施授权提供了更大的灵活性 Spring 应用程序中的服务器和资源服务器。
  • 它提供了处理各种 OAuth 2.0 流程的选项,例如 标准授权流程、隐式流程、密码流程、 还有更多。

spring-security-oauth2-core:

  • 该模块是更简化且更注重核心的版本 Spring Security 中的 OAuth 2.0 功能。
  • 主要关注对token认证和集成的支持 使用 OAuth 2.0。
  • 最适合只需要实现基本功能的应用程序 基于令牌的身份验证逻辑,不需要全方位的 OAuth 2.0 功能。
  • 当您已经有外部授权服务器时可以使用它 或资源服务器,您只需将身份验证集成到 你的申请。 您在两者之间的选择将取决于您的项目的要求以及您需要实现的 OAuth 2.0 功能的数量。
© www.soinside.com 2019 - 2024. All rights reserved.