Безопасность Spring: цель .oauth2Client (withDefaults ()); в HttpSecurity
Это из документа
общедоступный HttpSecurityoauth2Client(Customizer<OAuth2ClientConfigurer>oauth2ClientCustomizer) выбрасывает java.lang.Exception
Настраивает поддержку клиента OAuth 2.0.
Пример конфигурации
В следующем примере показано, как включить поддержку клиента OAuth 2.0 для всех конечных точек.
@Configuration @EnableWebSecurity public class OAuth2ClientSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests((authorizeRequests) -> authorizeRequests .anyRequest().authenticated() ) .oauth2Client(withDefaults()); } }
Параметры: auth2ClientCustomizer - настройщик, предоставляющий дополнительные параметры для OAuth2ClientConfigurer.
Возвращает: HttpSecurity для дальнейшей настройки.
Я понял, что любые запросы, поступающие на этот сервер, должны быть аутентифицированы.
Как
.oauth2Client(withDefaults());
помочь в этом случае?
Если я не ошибаюсь, клиент oAuth2 отправляет запрос, что мы можем настроить по этому поводу? Документация мало что объясняет.
2 ответа
Экземпляр http HttpSecurity является «стороной сервера / приложения настроек bean-компонента».
Его метод oauth2Client связан не с конфигурациями клиентов, а с тем, как и где сервер / приложение должно их обрабатывать.
Пример:
- Какие клиенты были авторизованы
- Где хранить авторизованных клиентов
- Как авторизовать клиентов
- Как удалить старого авторизованного клиента
Я думаю, здесь вы можете найти более подробную информацию о значениях по умолчанию oauth2Client.
@EnableWebSecurity
public class OAuth2ClientSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.oauth2Client(oauth2Client ->
oauth2Client
.clientRegistrationRepository(this.clientRegistrationRepository())
.authorizedClientRepository(this.authorizedClientRepository())
.authorizedClientService(this.authorizedClientService())
.authorizationCodeGrant(authorizationCodeGrant ->
authorizationCodeGrant
.authorizationRequestRepository(this.authorizationRequestRepository())
.authorizationRequestResolver(this.authorizationRequestResolver())
.accessTokenResponseClient(this.accessTokenResponseClient())
)
);
}
}