Сбой клиента OAuth2 при перенаправлении с этапа авторизации - PullRequest
0 голосов
/ 03 апреля 2020

В моей текущей весенней загрузке я пытаюсь войти в систему с помощью внешнего сервера OAuth2. Проблема сейчас в том, что когда я запускаю приложение, после успешной авторизации пользователь должен быть перенаправлен обратно в приложение. Когда это происходит, я получаю сообщение об ошибке.

Мой application.properties файл:

spring.security.oauth2.client.registration.mercadolivre.provider=mercadolivre
spring.security.oauth2.client.registration.mercadolivre.client-id=...
spring.security.oauth2.client.registration.mercadolivre.client-secret=...
spring.security.oauth2.client.registration.mercadolivre.authorization-grant-type=authorization_code
spring.security.oauth2.client.registration.mercadolivre.redirect-uri=http://localhost:8080/
spring.security.oauth2.client.provider.mercadolivre.authorization-uri=https://auth.mercadolivre.com.br/authorization
spring.security.oauth2.client.provider.mercadolivre.token-uri=https://api.mercadolibre.com/oauth/token

Мой класс конфигурации безопасности:

@Configuration
public class Security extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
            .anyRequest().authenticated()
            .and()
            .oauth2Login();
    }
}

Ошибка, с которой я столкнулся сейчас:

enter image description here

В чем здесь проблема?

обновление

Я пытаюсь добавьте эту строку в мой applicatio.properties файл:

spring.security.oauth2.client.registration.mercadolivre.redirect-uri={baseUrl}/login/oauth2/code/{registrationId}

и теперь я получаю эту ошибку:

enter image description here

с открыта консоль браузера:

enter image description here

1 Ответ

0 голосов
/ 04 апреля 2020

Измените redirect-uri на что-то другое ... Лучше, если вы используете строку шаблона, подобную той, которую использует ссылка :

spring.security.oauth2.client.registration.mercadolivre.redirect-uri={baseUrl}/login/oauth2/code/{registrationId}

Это URI, который будет обрабатывать код авторизации, который сервер авторизации отправляет обратно. Если вы хотите, чтобы пользователь был перенаправлен на какую-либо страницу после успешной аутентификации, выполните что-то вроде этого в configure():

http.
    ...
    .oauth2Login()
        .defaultSuccessUrl("/");
...