乐趣区

关于java:Spring-Security-OAuth正式终止维护已从官网下架

Spring Security团队正式发表 Spring Security OAuth 终止保护。

目前官网的主页曾经高亮揭示彻底进行保护。

旧的 Spring Security OAuth 我的项目终止到 2.5.2.RELEASE 版本,该我的项目将不会再进行任何的迭代,包含 Bug 修复,之前胖哥曾经揭示该我的项目行将进行保护,有心的同学曾经进行了迁徙。

我的项目文档和代码仓库被移除

目前该项目标官网文档曾经正式从 spring.io 移除,文档曾经指向 404,这是连文档也没有了。新增了OAuth2 受权服务器 Spring Authorization Server 的文档。

不仅仅文档被移除,连我的项目的仓库也被迁徙到 Spring 的过期我的项目仓库 spring-attic 并被标记为read-only

Spring Security OAuthSpring Boot 主动配置代码仓库也一并被迁徙,也就是说 Spring Boot 相干的主动配置也被移除。

从这种状况看来大概 Spring Security OAuth 确实是死了。难道就没有可用的了吗?当然不是。

迁徙指南

这是胖哥总结的迁徙指南。

依赖项查看

那么如何查看你的我的项目是否用了旧的 OAuth2 设施呢?当然是对依赖进行查看。以下清单中的 依赖任何版本 的都是过期的,都须要迁徙:

        <dependency>        
                <groupId>org.springframework.security.oauth</groupId>
                <artifactId>spring-security-oauth-parent</artifactId>
        </dependency>
        <dependency>        
                <groupId>org.springframework.security.oauth</groupId>
                <artifactId>spring-security-oauth</artifactId>
        </dependency>
        <dependency>        
                <groupId>org.springframework.security.oauth</groupId>
                <artifactId>spring-security-oauth2</artifactId>
        </dependency>
        <dependency>
             <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-jwt</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.security.oauth.boot</groupId>
            <artifactId>spring-security-oauth2-autoconfigure</artifactId>
        </dependency>

你能够通过 mvn dependency:tree 来查看依赖树是否集成了上述依赖项。

新的 OAuth2 代替计划

须要开发者把握 OAuth2.0OAuth2.1OIDC 1.0 的一些常识。

Spring Security 5中集成了 OAuth2 ClientResource Server两个模块。如果有迁徙的须要,倡议迁徙至最新的 Spring Security 5.7.x,不便向Spring 6 过渡。以 Spring Boot 为例,首先要集成Spring Security

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>

这里倡议应用最新版本,目前是 2.7。

集成 OAuth2 Client 依赖

OAuth2 Client依赖于Spring Security,不能独自应用:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-oauth2-client</artifactId>
        </dependency>

集成 Resource Server 依赖

Resource Server同样也依赖于Spring Security,不能独自应用:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-oauth2-resource-server</artifactId>
        </dependency>

集成 OAuth2 受权服务器依赖

目前 Spring 生态中的 OAuth2 受权服务器是 Spring Authorization Server,目前已具备生产就绪能力。在最新的0.3.0 版本中,官网文档正式在 spring.io 上线,须要你晓得的是它必须在 Java 11 及以上版本能力应用。它也作为一个 Spring Security 子模块,不能独自应用:

        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-oauth2-authorization-server</artifactId>
            <version>0.3.0</version>
        </dependency>

走漏一下,该项目标 Spring Boot Starter 也将在不久实装。

学习指南

胖哥近几个月始终在对新的 OAuth2 相干的进行系统化总结。因而你只有关注胖哥,总能取得相干的常识和实战干货分享。当然这里胖哥也给出了一些参考的文献:

  • OAuth2 框架:https://oauth.net
  • OIDC 1.0 协定:https://openid.net
  • Spring Security: http://felord.cn
  • 新的 Spring Security OAuth2:http://felord.cn

我的项目参考代码DEMO:

  • Spring Security 5 学习:https://gitee.com/felord/secu…
  • Spring Security OAuth2 教程:https://github.com/NotFound40…
  • 受权服务器控制台 Id Server:https://github.com/NotFound40…
  • 登录扩大插件:https://github.com/NotFound40…

总结

旧的 Spring Security OAuth 过期,其实也不用恐慌,除非你们在这一方面的架构须要持续迭代。不过随着新的计划面世,旧计划的可维护性会大大降低,有条件的还是要迁徙一下的。Spring Cloud也将会在将来某个工夫点做出一些调整以适应新的架构。请继续关注,前面会及时带来相干的音讯。

关注公众号:Felordcn 获取更多资讯

集体博客:https://felord.cn

退出移动版