Josh Cummings 9b019d379d Update :servlet:spring-boot:java:oauth2:webclient to 7 1 månad sedan
..
gradle 1ce2c14dba Update to Gradle 8.10.2 10 månader sedan
src 9b019d379d Update :servlet:spring-boot:java:oauth2:webclient to 7 1 månad sedan
README.adoc b15c37b72b Add ":servlet:spring-boot:java:oauth2:webclient" 5 år sedan
build.gradle 130c77b8e0 Update MockWebServer Dependency 1 månad sedan
gradle.properties 9b019d379d Update :servlet:spring-boot:java:oauth2:webclient to 7 1 månad sedan
gradlew 3f8e2c204a Upgrade to Gradle 8.3 1 år sedan
gradlew.bat 3f8e2c204a Upgrade to Gradle 8.3 1 år sedan
settings.gradle 50ffc04d54 Make Projects Individually Runnable 1 år sedan

README.adoc

= OAuth 2.0 WebClient (Servlet) Sample

== GitHub Repositories

This guide provides instructions on setting up the sample application, which leverages WebClient OAuth2 integration to display a list of public GitHub repositories that are accessible to the authenticated user.

This includes repositories owned by the authenticated user, repositories where the authenticated user is a collaborator, and repositories that the authenticated user has access to through an organization membership.

The following sections provide detailed steps for setting up the sample and covers the following topics:

* <>
* <>
* <>

[[github-register-application]]
=== Register OAuth application

To use GitHub's OAuth 2.0 authorization system, you must https://github.com/settings/applications/new[Register a new OAuth application].

When registering the OAuth application, ensure the *Authorization callback URL* is set to `http://localhost:8080/login/oauth2/code/client-id`.

The Authorization callback URL (redirect URI) is the path in the application that the end-user's user-agent is redirected back to after they have authenticated with GitHub and have granted access to the OAuth application on the _Authorize application_ page.

[[github-application-config]]
=== Configure application.yml

Now that you have a new OAuth application with GitHub, you need to configure the sample to use the OAuth application for the _authorization code grant flow_.
To do so:

. Go to `application.yml` and set the following configuration:
+
[source,yaml]
----
spring:
security:
oauth2:
client:
registration: <1>
client-id: <2>
client-id: replace-with-client-id
client-secret: replace-with-client-secret
provider: github
scope: read:user,public_repo
----
+
.OAuth Client properties
====
<1> `spring.security.oauth2.client.registration` is the base property prefix for OAuth Client properties.
<2> Following the base property prefix is the ID for the `ClientRegistration`, which is github.
====

. Replace the values in the `client-id` and `client-secret` property with the OAuth 2.0 credentials you created earlier.

[[github-boot-application]]
=== Boot up the application

Launch the Spring Boot 2.0 sample and go to `http://localhost:8080`.
You are then redirected to the default _auto-generated_ form login page.
Log in using *'user'* (username) and *'password'* (password) or click the link to authenticate with GitHub and then you'll be redirected to GitHub for authentication.

After authenticating with your GitHub credentials, the next page presented to you is "Authorize application".
This page will ask you to *Authorize* the application you created in the previous step.
Click _Authorize application_ to allow the OAuth application to access and display your public repository information.