Spring Security: в какой момент/фильтровать URL-адрес изменяется для перенаправления URL-адреса с потоком Oauth2JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Spring Security: в какой момент/фильтровать URL-адрес изменяется для перенаправления URL-адреса с потоком Oauth2

Сообщение Anonymous »

У меня есть такая конфигурация:

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

@EnableWebSecurity
@Configuration
@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true, jsr250Enabled = true)
public class SecurityConfig  {

@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http.authorizeHttpRequests().requestMatchers("/api/protected").authenticated();

http.authorizeHttpRequests().anyRequest().permitAll();

http.oauth2Login((OAuth2LoginConfigurer config) -> {
config.redirectionEndpoint((OAuth2LoginConfigurer.RedirectionEndpointConfig redirection) -> {
redirection.baseUri("/testauth");
});
});

return http.build();
}

@Bean
public ClientRegistration clientRegistration() {
ClientRegistration cr =
ClientRegistration.withRegistrationId("discord")
.clientId("1234")
.clientSecret("abcd")
.scope(new String[]{"email", "identify"})
.authorizationUri("https://discord.com/oauth2/authorize")
.tokenUri("https://discord.com/api/oauth2/token")
.userInfoUri("https://discord.com/api/v10/users/@me")
.userNameAttributeName("username")
.clientName("Discord")
.authorizationGrantType(AuthorizationGrantType.AUTHORIZATION_CODE)
.redirectUri("http://localhost:8082/testauth")

.build();
return cr;
}

@Bean
public ClientRegistrationRepository clientRegistrationRepository() {
// maps each ClientRepository to its registrationId
return new InMemoryClientRegistrationRepository(clientRegistration());
}
}
Я пытаюсь понять, когда URL-адрес меняется с http://localhost:8082/api/protected на /oauth2/authorization/discord. Я просматриваю точки останова отладчика, и не похоже, что это происходит внутри Oauth2AuthorizationRequestRedirectFilter :

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

protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
try {
OAuth2AuthorizationRequest authorizationRequest = this.authorizationRequestResolver.resolve(request);
if (authorizationRequest != null) {
this.sendRedirectForAuthorization(request, response, authorizationRequest);
return;
...
Запрос внутри Oauth2AuthorizationRequestRedirectFilter уже имеет путь oauth2/authorization/discord.
Он также внутри AuthorizationFilter этого не происходит - он просто отклоняет api/protected, выдавая исключение:

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

if (decision != null && !decision.isGranted()) {
throw new AccessDeniedException("Access Denied");
}
Какой фильтр отвечает за изменение URL-адреса с /api/protected на /oauh2/authorization/discord?

Подробнее здесь: https://stackoverflow.com/questions/791 ... -with-oaut
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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