= Spring 授权服务器 image:https://badges.gitter.im/Join%20Chat.svg[Gitter,link=https://gitter.im/spring-projects/spring-security?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge] image:https://github.com/spring-projects/spring-authorization-server/actions/workflows/continuous-integration-workflow.yml/badge.svg["构建状态", link="https://github.com/spring-projects/spring-authorization-server/actions/workflows/continuous-integration-workflow.yml"] image:https://img.shields.io/badge/Revved%20up%20by-Develocity-06A0CE?logo=Gradle&labelColor=02303A["由Develocity提供支持", link="https://ge.spring.io/scans?&search.rootProjectNames=spring-authorization-server"]
Spring 授权服务器项目由 https://spring.io/projects/spring-security/[Spring Security] 团队领导,致力于为 Spring 社区提供 https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-07#section-1.1[OAuth 2.1 授权服务器] 支持。
该项目取代了 https://spring.io/projects/spring-security-oauth/[Spring Security OAuth] 提供的授权服务器支持。
== 功能规划 本项目使用 https://docs.github.com/en/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects[GitHub Projects] 来优先排序功能路线图并帮助组织项目计划。 可以在 https://github.com/orgs/spring-projects/projects/8[此处] 访问项目看板。
功能列表可以在 https://docs.spring.io/spring-authorization-server/reference/overview.html#feature-list[参考文档] 中查看。
== 支持政策 Spring 授权服务器项目通过 https://tanzu.vmware.com/support/oss[VMware Tanzu OSS 支持政策] 提供软件支持。 VMware 还提供 https://tanzu.vmware.com/spring-runtime[商业支持],可延长支持期限。
== 入门指南 首先应该阅读 https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-07[OAuth 2.1 授权框架],以深入了解如何构建授权服务器。 这是一个至关重要的第一步,因为实现必须符合 OAuth 2.1 授权框架和 https://github.com/spring-projects/spring-authorization-server/wiki/OAuth-2.0-Specifications[相关规范] 中定义的规范。
其次是要非常熟悉以下 Spring Security 模块的代码库:
- https://github.com/spring-projects/spring-security/tree/main/oauth2/oauth2-core[OAuth 2.0 核心]
- https://github.com/spring-projects/spring-security/tree/main/oauth2/oauth2-client[OAuth 2.0 客户端]
- https://github.com/spring-projects/spring-security/tree/main/oauth2/oauth2-resource-server[OAuth 2.0 资源服务器]
- https://github.com/spring-projects/spring-security/tree/main/oauth2/oauth2-jose[OAuth 2.0 JOSE](Javascript 对象签名和加密)
我们在开发 https://spring.io/blog/2018/01/30/next-generation-oauth-2-0-support-with-spring-security[Spring Security 中的下一代 OAuth 2.0 支持] 时投入了大量精力。 目标是利用迄今为止学到的所有知识,并将其应用于 Spring 授权服务器的开发。
通过拉取请求提交的工作应遵循相同的编码风格/约定,并采用在 Spring Security 的 OAuth 2.0 支持中已建立的相同或类似的设计模式。
== 文档 请务必阅读 https://docs.spring.io/spring-authorization-server/reference/[Spring 授权服务器参考] 和 https://docs.spring.io/spring-security/reference[Spring Security 参考],以及描述可用客户端和资源服务器功能的 https://docs.spring.io/spring-security/reference/servlet/oauth2/index.html[OAuth 2.0 参考]。
还可以查阅 https://docs.spring.io/spring-authorization-server/docs/current/api/[Spring 授权服务器 API] 和 https://docs.spring.io/spring-security/site/docs/current/api/[Spring Security API] 的 JavaDoc。
== 行为准则 请参阅我们的 https://github.com/spring-projects/.github/blob/main/CODE_OF_CONDUCT.md[行为准则]。
== 下载构件 有关 Maven 仓库信息,请参阅 https://github.com/spring-projects/spring-framework/wiki/Spring-Framework-Artifacts[下载 Spring 构件]。
== 从源代码构建 Spring 授权服务器使用基于 https://gradle.org[Gradle] 的构建系统。 在下面的说明中,从源代码树的根目录调用 https://vimeo.com/34436402[`./gradlew`],它作为构建的跨平台、自包含引导机制。
=== 先决条件 https://help.github.com/set-up-git-redirect[Git] 和 https://www.oracle.com/technetwork/java/javase/downloads[JDK17 构建]。
确保您的 JAVA_HOME
环境变量指向从 JDK 下载中解压的 jdk17
文件夹。
=== 检出源代码 [indent=0]
git clone git@github.com:spring-projects/spring-authorization-server.git
=== 将所有 spring-* jar 安装到本地 Maven 缓存中 [indent=0]
./gradlew publishToMavenLocal
=== 编译和测试;构建所有 jar、分发 zip 和文档 [indent=0]
./gradlew build
使用 ./gradlew tasks
发现更多命令。
== 获取支持 查看 https://stackoverflow.com/questions/tagged/spring-authorization-server[Stack Overflow 上的 Spring 授权服务器标签]。 也可获得 https://spring.io/support[商业支持]。
== 贡献 欢迎 https://help.github.com/articles/creating-a-pull-request[拉取请求];详情请参阅 link:CONTRIBUTING.adoc[贡献者指南]。
== 许可 Spring 授权服务器是根据 https://www.apache.org/licenses/LICENSE-2.0.html[Apache 2.0 许可] 发布的开源软件。