🎯 Как настроить аутентификацию с OAuth2
В Spring Boot 3 интеграция с OAuth2 стала ещё проще благодаря улучшенной поддержке социальных логинов. Рассмотрим, как настроить аутентификацию через Google с использованием Spring Security 6.
1️⃣ Создание проекта
Используйте Spring Initializr для создания проекта с следующими зависимостями:
— Spring Web
— Spring Security
— OAuth2 Client
Или добавьте их вручную в pom.xml:
2️⃣ Получение OAuth2-учётных данных Google
1. Перейдите в Google Cloud Console
2. Создайте новый проект
3. Перейдите в раздел APIs & Services → Credentials
4. Нажмите Create Credentials → OAuth 2.0 Client IDs
5. Укажите тип приложения Web application
6. Добавьте Authorized redirect URI
7. Сохраните и получите Client ID и Client Secret
3️⃣ Конфигурация application.yml
Добавьте следующие настройки в src/main/resources/application.yml:
Замените YOUR_CLIENT_ID и YOUR_CLIENT_SECRET на полученные значения.
4️⃣ Конфигурация безопасности
Создайте класс конфигурации:
🐸 Библиотека джависта
#Enterprise
В Spring Boot 3 интеграция с OAuth2 стала ещё проще благодаря улучшенной поддержке социальных логинов. Рассмотрим, как настроить аутентификацию через Google с использованием Spring Security 6.
Используйте Spring Initializr для создания проекта с следующими зависимостями:
— Spring Web
— Spring Security
— OAuth2 Client
Или добавьте их вручную в pom.xml:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-oauth2-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
1. Перейдите в Google Cloud Console
2. Создайте новый проект
3. Перейдите в раздел APIs & Services → Credentials
4. Нажмите Create Credentials → OAuth 2.0 Client IDs
5. Укажите тип приложения Web application
6. Добавьте Authorized redirect URI
7. Сохраните и получите Client ID и Client Secret
Добавьте следующие настройки в src/main/resources/application.yml:
spring:
security:
oauth2:
client:
registration:
google:
client-id: YOUR_CLIENT_ID
client-secret: YOUR_CLIENT_SECRET
scope:
- profile
redirect-uri: "{baseUrl}/login/oauth2/code/{registrationId}"
authorization-grant-type: authorization_code
client-name: Google
provider:
google:
authorization-uri: https://accounts.google.com/o/oauth2/v2/auth
token-uri: https://oauth2.googleapis.com/token
user-info-uri: https://www.googleapis.com/oauth2/v3/userinfo
user-name-attribute: sub
Замените YOUR_CLIENT_ID и YOUR_CLIENT_SECRET на полученные значения.
Создайте класс конфигурации:
@Configuration
public class SecurityConfig {
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/", "/login", "/error").permitAll()
.anyRequest().authenticated()
.and()
.oauth2Login()
.loginPage("/login")
.defaultSuccessUrl("/dashboard", true);
return http.build();
}
}
#Enterprise
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍2🔥2🎉1
Anonymous Poll
37%
Да, если он глубоко понимает Java Core и архитектуру приложений
22%
Нет, современные фреймворки — неотъемлемая часть разработки
31%
Зависит от конкретного проекта и требований
10%
Не знаю, но интересно узнать мнение других
😁4💯1👾1