Skip to content

OAuth 2.0 Features Matrix

Joe Grandja edited this page Aug 20, 2021 · 32 revisions

The following matrix outlines all the OAuth 2.0 Client, Resource Server and Authorization Server features implemented by the various projects within the Spring portfolio. The matrix may be used to determine which project(s) to use based on your OAuth 2.0 Client, Resource Server and Authorization Server requirements.

Note
Spring Security 5.0 introduced new Client support for the OAuth 2.0 Authorization Framework and OpenID Connect 1.0. Spring Security 5.1 introduced new Resource Server support as well as additional Client support for different grant types. Spring Security 5.2 continued this pattern, providing more support for Resource Server and Client. This matrix will be kept up-to-date as we complete new features.

For additional information, please see the Frequently Asked Questions.

Client Support

Spring Security (5.4+) Spring Security OAuth (2.5) Spring Cloud Security (1.2+) Spring Boot OAuth2 (1.5.x)

Authorization Grants

Authorization Code

Implicit

Resource Owner Password Credentials

Client Credentials

Refresh Token

Client Authentication Methods

HTTP Basic

HTTP POST

HTTP Client Support

RestTemplate [1]

WebClient

User Authentication

OAuth 2.0 Login (SSO)

UserInfo Endpoint Support

Access Token Storage Management

In-Memory

JDBC

  1. RestTemplate may collaborate with DefaultOAuth2AuthorizedClientManager to realize full support.

Resource Server Support

Spring Security (5.4+) Spring Security OAuth (2.5) Spring Cloud Security (1.2+) Spring Boot OAuth2 (1.5.x)

Access Token Formats

Opaque

JSON Web Token (JWT)

Access Token Usage

Token Relay

Access Token Verification

Opaque (using Introspection Endpoint)

JSON Web Signature (MAC)

JSON Web Signature (RSA)

JSON Web Signature (using JSON Web Key)

Custom JWT Claims Set Verifier

Authorization Server Support

Spring Authorization Server (0.2.0) Spring Security OAuth (2.5) Spring Cloud Security (1.2+) Spring Boot OAuth2 (1.5.x)

Authorization Grants

Authorization Code

Implicit

Not implemented [1]

Resource Owner Password Credentials

Not implemented [1]

Client Credentials

Refresh Token

Protocol Endpoints

Authorization Endpoint

Token Endpoint

User Consent Endpoint

Introspection Endpoint

Access Token Formats

Opaque

JSON Web Signature (MAC)

JSON Web Signature (RSA)

Access Token Storage Management

In-Memory

JDBC

Redis

Client Authentication Methods

HTTP Basic

HTTP POST

Client Registration Storage Management

In-Memory

JDBC

Authorization Code Storage Management

In-Memory

JDBC

User Consent Storage Management

In-Memory

JDBC

  1. The Implicit grant and Resource Owner Password Credentials grant has been omitted (deprecated) from the OAuth 2.1 Authorization Framework.

Frequently Asked Questions

  1. What is the future of OAuth 2.0 support in Spring Security?

    The next generation of OAuth 2.0 support is being added throughout the Spring Security 5 release train. As of Spring Security 5.2, there is built-in support for OAuth 2.0 Login, Client, and Resource Server, with a breakdown visible in the above matrix. We plan to continue to add features for Client and Resource Server pertaining to the OAuth 2.0 Core and Extensions, OpenID Connect 1.0 and Javascript Object Signing and Encryption (JOSE) specifications.

  2. Where can I find out more information on which OAuth 2.0 and OpenID Connect 1.0 features will be implemented in Spring Security 5?

    You may track upcoming features in the Spring Security GitHub repo using the in: oauth2 label.

  3. Where can I find samples and documentation for Spring Security 5 OAuth 2.0 support?

    Spring Security 5 introduced the new OAuth 2.0 Login feature along with a sample and detailed documentation. Several other OAuth 2.0 samples are available in the same repo. We will continue to provide samples and documentation as we build out new features.

  4. Are there new features being implemented in Spring Security OAuth 2.3+?

    We will provide bug/security fixes and consider adding minor enhancements. Our plan going forward is to build all the features currently in Spring Security OAuth into Spring Security 5.x. After Spring Security has reached feature parity with Spring Security OAuth, we will continue to support bugs and security fixes for at least one year.

  5. Does Spring Boot 2.0 provide support for Spring Security OAuth?

    Spring Boot 2.0 has dropped support for Spring Security OAuth. However, it provides support for OAuth 2.0 Login, OAuth 2.0 Client, and OAuth 2.0 Resource Server in Spring Security 5.

  6. Is there a way to integrate Spring Security OAuth in Spring Boot 2.0?

    The Spring Security OAuth Boot 2 Autoconfig project is a port of the Spring Security OAuth auto-configuration contained in Spring Boot 1.5.x. If you would like to use Spring Security OAuth in Spring Boot 2.0, you must explicitly include the following dependency in your project:

    • groupId: org.springframework.security.oauth.boot

    • artifactId: spring-security-oauth2-autoconfigure