Konfiguracja klienta OAuth2
Skonfiguruj aplikację jako klienta OAuth2, definiując dane rejestracji dla różnych providerów.
Konfiguracja klienta OAuth2 to bezpłatna lekcja Spring Security 6 & JWT Authentication na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Spring Security 6 & JWT Authentication, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Spring Security 6 & JWT Authentication zawiera 4 lekcji w sumie.
Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.
What is an OAuth2 Client?
In OAuth2, an OAuth2 Client is an application that wants to access resources on behalf of a user from a Resource Server. Think of it as your app asking permission to use another service (like Google or GitHub) on your behalf.
It's not the user, but an application acting for the user.
Why Configure Our App?
To use an external service's API (e.g., getting user profiles, posting updates), your application needs to be recognized by that service. This recognition process is called client registration.
- Your app gets a unique identity.
- The service knows who is requesting access.
- It enables secure communication and authorization.
Key Client Registration Details
When you register your application with an OAuth2 Authorization Server (the service that grants access), you'll typically provide and receive:
- Client ID: A public identifier for your application.
- Client Secret: A confidential key used to authenticate your app.
- Redirect URI(s): Where the Authorization Server sends the user back after authorization.
Spring Security as an OAuth2 Client
Spring Security makes it incredibly easy to configure your Spring Boot application to act as an OAuth2 Client. It handles much of the complex OAuth2 flow automatically.
All you need to do is provide the necessary registration details for the external service you want to connect to.
Client Configuration File
Spring Security's OAuth2 client configuration lives primarily in your application.yml or application.properties file.
You'll use two main prefixes:
spring.security.oauth2.client.registration: Defines details about your app's registration with a specific provider.spring.security.oauth2.client.provider: Defines details about the OAuth2 provider itself (e.g., its authorization endpoint).
Setting Up a Provider
Under spring.security.oauth2.client.provider.[provider-name], you define the endpoints of the external OAuth2 service. For example, for a provider named github:
authorization-uri: Where users go to authorize your app.token-uri: Where your app exchanges codes for tokens.user-info-uri: Where your app fetches user details.
Often, Spring Boot can auto-configure these for popular providers if you just provide the client-id and client-secret.
Registering Your Client App
Under spring.security.oauth2.client.registration.[registration-id], you specify your app's unique registration details for a given provider. The registration-id acts as a unique name for your specific client configuration.
provider: Links to a defined provider (e.g.,github).client-id: Your app's public ID.client-secret: Your app's secret key.redirect-uri: The callback URL.scope: Permissions your app requests (e.g.,read:user).authorization-grant-type: The OAuth2 flow used (e.g.,authorization_code).
Example: GitHub Client Setup
Let's look at a concrete example using GitHub. You would first register your application on GitHub's developer settings to get a Client ID and Client Secret.
Then, configure your application.yml:
spring:
security:
oauth2:
client:
registration:
github:
client-id: your-github-client-id
client-secret: your-github-client-secret
redirect-uri: "{baseUrl}/login/oauth2/code/{registrationId}"
scope: read:user,user:email
provider:
github:
authorization-uri: https://github.com/login/oauth/authorize
token-uri: https://github.com/login/oauth/access_token
user-info-uri: https://api.github.com/userMinimal Spring Boot App
To enable OAuth2 client functionality, ensure you have the spring-boot-starter-oauth2-client dependency. Spring Boot will automatically detect the configuration and set up the necessary filters.
Here's a basic Spring Boot application entry point:
package com.coddykit;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.security.Principal;
@SpringBootApplication
@RestController
public class Oauth2ClientApp {
public static void main(String[] args) {
SpringApplication.run(Oauth2ClientApp.class, args);
}
@GetMapping("/")
public String welcome(Principal principal) {
if (principal != null) {
return "Hello, " + principal.getName() + "! You are logged in with OAuth2.";
}
return "Hello! Please log in with OAuth2.";
}
}The Automated OAuth2 Flow
Once configured, Spring Security automatically:
- Redirects unauthenticated users to the configured Authorization Server's login page.
- Handles the authorization code exchange after the user grants permission.
- Fetches user details from the
user-info-uri. - Populates the
SecurityContextwith the authenticated user.
This significantly simplifies implementing OAuth2 client logic.
Quick Check: Client Config
You're setting up a Spring Boot application to act as an OAuth2 client for an external service. Which of the following properties is primarily used to identify your application to the external service, and should be kept confidential?
Recap: OAuth2 Client Setup
You've learned how to configure your Spring Boot application as an OAuth2 Client. We covered:
- The role of an OAuth2 Client.
- Key configuration properties like
client-idandclient-secret. - How to use
application.ymlfor client and provider registration. - Spring Security's automatic handling of the OAuth2 flow.
Next, we'll dive into integrating specific social login providers like Google and GitHub in more detail!
Ucz się Java dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 12
- Lekcje
- 48
Często zadawane pytania
Czy lekcja „Konfiguracja klienta OAuth2” jest bezpłatna?
Tak — pełny tekst „Konfiguracja klienta OAuth2” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Spring Security 6 & JWT Authentication, przejdź na CoddyKit PRO. Kurs Spring Security 6 & JWT Authentication zawiera 4 lekcji w sumie.
Co nauczysz się w „Konfiguracja klienta OAuth2”?
Skonfiguruj aplikację jako klienta OAuth2, definiując dane rejestracji dla różnych providerów. Ćwiczysz Spring Security 6 & JWT Authentication z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Spring Security 6 & JWT Authentication?
Nie wymagamy żadnego doświadczenia. Spring Security 6 & JWT Authentication w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Konfiguracja klienta OAuth2”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Spring Security 6 & JWT Authentication?
Tak. Każda lekcja Spring Security 6 & JWT Authentication zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Konfiguracja klienta OAuth2
- Integracja logowania społecznościowego
- Niestandardowy handler pomyślnego uwierzytelniania OAuth2
- Dostęp do uwierzytelnionego użytkownika OAuth2