Go to file
2020-12-11 11:50:07 -05:00
.github Build on JDK 8,11,12 2020-08-20 06:55:34 -04:00
buildSrc Add Gradle Lock Plugin 2020-08-19 16:31:01 -04:00
docs/manual Revert "Lock Dependency Versions for 0.0.3 release" 2020-11-09 15:10:17 -05:00
etc Add plugin io.spring.nohttp 2020-08-18 11:00:47 -04:00
gradle Downgrade springSecurityVersion to 5.4.+ 2020-11-09 14:11:00 -05:00
oauth2-authorization-server Remove unused OAuth2AuthorizationService from OAuth2TokenEndpointFilter 2020-12-11 11:50:07 -05:00
samples/boot/oauth2-integration Update sample to use OpenID Connect and Provider Configuration endpoint 2020-12-10 15:47:12 -05:00
scripts/release Add release scripts 2020-08-20 15:10:29 -04:00
.editorconfig Add .editorconfig 2020-04-20 12:58:06 -05:00
.gitignore Update .gitignore 2020-04-27 15:19:16 -04:00
build.gradle Update to spring-build-conventions:0.0.35.BUILD-SNAPSHOT 2020-11-19 06:30:41 -05:00
CODE_OF_CONDUCT.adoc Add Code of Conduct 2020-04-09 09:24:57 -05:00
CONTRIBUTING.adoc Update CONTRIBUTING with link to Getting Started 2020-04-28 15:39:38 -04:00
gradle.properties Update to Spring Boot 2.4.0 2020-11-19 06:06:32 -05:00
gradlew Add Empty Boot sample 2020-04-17 12:59:50 -06:00
gradlew.bat Add Empty Boot sample 2020-04-17 12:59:50 -06:00
Jenkinsfile Add artifactory credentials to build environment 2020-12-11 11:00:37 -05:00
LICENSE.txt Add LICENSE.txt 2020-04-09 09:25:12 -05:00
README.adoc Update README -> Documentation 2020-04-27 14:58:54 -04:00
settings.gradle Integrate Gradle Enterprise plugin 2020-08-18 15:05:58 -04:00

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-experimental/spring-authorization-server/workflows/CI/badge.svg?branch=master["Build Status", link="https://github.com/spring-projects-experimental/spring-authorization-server/actions?query=workflow%3ACI"]

= Spring Authorization Server

Spring Authorization Server is a community-driven project led by the https://spring.io/projects/spring-security/[Spring Security] team and is focused on delivering https://tools.ietf.org/html/rfc6749#section-1.1[OAuth 2.0 Authorization Server] support to the Spring community.

The project will start in Spring's experimental projects as an independent project so that it can evolve more rapidly.

The ultimate goal of this project is to replace the Authorization Server support provided by https://spring.io/projects/spring-security-oauth/[Spring Security OAuth].

With the much needed help from our community, this project will grow in the same way that the original Spring Security OAuth project did.

== Feature Planning
This project uses https://www.zenhub.com/[ZenHub] to prioritize the feature roadmap and help organize the project plan.
The project board can be accessed https://app.zenhub.com/workspaces/authorization-server-5e8f3182b5e8f5841bfc4902/board?repos=248032165[here].
It is recommended to install the ZenHub https://www.zenhub.com/extension[browser extension] as it integrates natively within GitHub's user interface.

== Getting Started
The first place to start is to read the https://tools.ietf.org/html/rfc6749[OAuth 2.0 Authorization Framework] to gain an in-depth understanding on how to build an Authorization Server.
It is a critically important first step as the implementation must conform to the specification defined in the OAuth 2.0 Authorization Framework and the https://github.com/spring-projects-experimental/spring-authorization-server/wiki/OAuth-2.0-Specifications[related specifications].

The second place to start is to become very familiar with the codebase in the following Spring Security modules:

- https://github.com/spring-projects/spring-security/tree/master/oauth2/oauth2-core[OAuth 2.0 Core]
- https://github.com/spring-projects/spring-security/tree/master/oauth2/oauth2-client[OAuth 2.0 Client]
- https://github.com/spring-projects/spring-security/tree/master/oauth2/oauth2-resource-server[OAuth 2.0 Resource Server]
- https://github.com/spring-projects/spring-security/tree/master/oauth2/oauth2-jose[OAuth 2.0 JOSE] (Javascript Object Signing and Encryption)

A significant amount of effort was put into developing the https://spring.io/blog/2018/01/30/next-generation-oauth-2-0-support-with-spring-security[Next Generation OAuth 2.0 Support in Spring Security].
The goal is to leverage all the knowledge learned thus far and apply the same to the development of Spring Authorization Server.

Submitted work via pull requests should follow the same coding style/conventions and adopt the same or similar design patterns that have been established in Spring Security's OAuth 2.0 support.

== Documentation
Be sure to read the https://docs.spring.io/spring-security/site/docs/current/reference/html5/[Spring Security Reference], as well as the https://docs.spring.io/spring-security/site/docs/current/reference/html5/#oauth2[OAuth 2.0 Reference], which describes the Client and Resource Server features available.

Extensive JavaDoc for the Spring Security code is also available in the https://docs.spring.io/spring-security/site/docs/current/api/[Spring Security API Documentation].

== Code of Conduct
This project adheres to the Contributor Covenant link:CODE_OF_CONDUCT.adoc[code of conduct].
By participating, you are expected to uphold this code. Please report unacceptable behavior to spring-code-of-conduct@pivotal.io.

== Downloading Artifacts
See https://github.com/spring-projects/spring-framework/wiki/Downloading-Spring-artifacts[downloading Spring artifacts] for Maven repository information.

== Building from Source
Spring Authorization Server uses a https://gradle.org[Gradle]-based build system.
In the instructions below, https://vimeo.com/34436402[`./gradlew`] is invoked from the root of the source tree and serves as
a cross-platform, self-contained bootstrap mechanism for the build.

=== Prerequisites
https://help.github.com/set-up-git-redirect[Git] and the https://www.oracle.com/technetwork/java/javase/downloads[JDK8 build].

Be sure that your `JAVA_HOME` environment variable points to the `jdk1.8.0` folder extracted from the JDK download.

=== Check out sources
[indent=0]
----
git clone git@github.com:spring-projects-experimental/spring-authorization-server.git

----

=== Install all spring-\* jars into your local Maven cache
[indent=0]
----
./gradlew install
----

=== Compile and test; build all jars, distribution zips, and docs
[indent=0]
----
./gradlew build
----

Discover more commands with `./gradlew tasks`.

== Getting Support
Check out the https://stackoverflow.com/questions/tagged/spring-security[Spring Security tags on Stack Overflow].
https://spring.io/services[Commercial support] is available too.

== Contributing
https://help.github.com/articles/creating-a-pull-request[Pull requests] are welcome; see the link:CONTRIBUTING.adoc[contributor guidelines] for details.

== License
Spring Authorization Server is Open Source software released under the
https://www.apache.org/licenses/LICENSE-2.0.html[Apache 2.0 license].