Как настроить известную конечную точку на сервере авторизации Spring?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как настроить известную конечную точку на сервере авторизации Spring?

Сообщение Anonymous »

Я использую сервер авторизации Spring v3.3.1. Моя текущая известная конечная точка — /.well-known/openid-configuration, и она возвращает стандартную конфигурацию OpenId.
Я хочу удалить пару атрибутов из этого стандартного ответа и изменить путь конечной точки к /oauth2/token/.well-known/openid-configuration.
Для этого я продублировал OidcProviderConfigurationEndpointFilter и создал необходимые изменения и зарегистрировал его в авторизацииServerSecurityFilterChain.
Request Matcher в дублированном фильтре выглядит следующим образом:

Код: Выделить всё

private static RequestMatcher createRequestMatcher() {
final RequestMatcher defaultRequestMatcher = new AntPathRequestMatcher(
"/oauth2/token/.well-known/openid-configuration", HttpMethod.GET.name());
return (request) -> defaultRequestMatcher.matches(request);
}
Вот как я добавил фильтр в цепочку:

Код: Выделить всё

SecurityFilterChain authorizationServerSecurityFilterChain(HttpSecurity http) throws Exception {

OAuth2AuthorizationServerConfiguration.applyDefaultSecurity(http);
http.getConfigurer(OAuth2AuthorizationServerConfigurer.class)
.authorizationEndpoint((authorizationEndpoint) -> authorizationEndpoint
.authenticationProviders(configureAuthenticationValidator()))
.tokenEndpoint((tokenEndpoint) -> tokenEndpoint
.authenticationProviders(configureAuthenticationValidator())
.errorResponseHandler(new ErrorResponseHandler()))
.oidc(Customizer.withDefaults());

// Duplicated Filter
OidcWellknownEndpointFilter oidcWellknownEndpointFilter = new OidcWellknownEndpointFilter();
http.addFilterBefore(oidcWellknownEndpointFilter,
AbstractPreAuthenticatedProcessingFilter.class);

return http.build();
}
Мой вопрос: как я могу направлять запросы, поступающие в /oauth2/token/.well-known/openid-configuration, в OidcWellknownEndpointFilter? p>
Я пытался добавить PermitAll() для этой конечной точки, как показано ниже:

Код: Выделить всё

SecurityFilterChain authorizationServerSecurityFilterChain(HttpSecurity http) throws Exception {

http.authorizeHttpRequests((authorize) -> authorize
.requestMatchers("/oauth2/token/.well-known/openid-configuration").permitAll());
OAuth2AuthorizationServerConfiguration.applyDefaultSecurity(http);

http.getConfigurer.... 
}
Это перенаправит все запросы, поступающие к конечной точке, на страницу входа.
Будем благодарны за любую помощь по этому поводу.


Подробнее здесь: https://stackoverflow.com/questions/790 ... ion-server
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»