跳至主要內容

各种版本的坑

ChenSino原创大约 2 分钟

1、Spring系列

1.1 坑1 spring.factories使用方式变更

2.7版本已经不推荐使用spring.factories,在3.0废弃了,以前的spring.factories改成META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports,同时在此文件中写入类全限定名字,多个类,每行一个,不用符号隔开

1.2 坑2 Spring Security OAuth2已被新版本security弃用

Spring Security OAuth2是为构建OAuth2系统提供安全支持的Spring Security子项目。在Spring Security OAuth2中,您可以使用Authorization Server来创建和管理授权服务器,同时也可以使用Resource Server来保护受保护的资源。然而,从Spring Security 5.3开始,Spring Security OAuth2已被弃用,取而代之的是Spring Authorization Server和Spring Security 5的核心Oauth2支持。

与Spring Security OAuth2相比,Spring Authorization Server是一个独立的模块,它提供了完整的授权服务器,无需其他模块或库的支持,可以轻松地与现有的Spring Security应用程序集成。此外,Spring Authorization Server不依赖于Spring Security的其他功能,它有自己独立的API和文档。

同时,Spring Authorization Server在实现OAuth2规范方面更加严格,对于OAuth2规范中的各项要求都有很好的支持,并且提供了更加灵活和易于扩展的配置方式。在使用Spring Authorization Server时,您需要将spring-security-oauth2依赖关系修改为spring-security-oauth2-authorization-server。

总之,如果您想在您的应用程序中实现OAuth2,并且正在使用Spring Security 5.3或更高版本,那么您应该使用Spring Authorization Server而不是Spring Security OAuth2。

2、Oauth2.0

2.1 移除password授权类型

oauth2.0的最新规范已经移除了grant_type类型为password的,并且在spring-authorization-server 明确标记password类型为废弃,强行使用会报grant_type不对。因为新版本Security使用的是spring-authorization-server,所以也意味着在新版本security无法使用password授权类型 z