Как исправить эту ошибку перенаправления Oauth 2.0 - PullRequest
0 голосов
/ 21 декабря 2018

enter image description here 400.Это ошибка.Ошибка: redirect_uri_mismatch URI перенаправления в запросе http://testing.com:8008/login, не соответствует тем, которые разрешены для клиента OAuth.Чтобы обновить авторизованные URI перенаправления, посетите:

Авторизованные URI перенаправления на странице учетных данных: http://testing.com:8008/success, но всегда перенаправляет на http://testing.com:8008/login, не знаю, что здесь происходит, можеткто-нибудь, помогите.

Мой файл application.yml для конфигурации находится ниже.

security:
  oauth2:
    client:
      clientId: 701691307057-184m2p0ce76k.apps.googleusercontent.com
      clientSecret: 7186351
      pre-established-redirect-uri: http://testing.com:8008/success
      accessTokenUri: https://www.googleapis.com/oauth2/v3/token
      userAuthorizationUri: https://accounts.google.com/o/oauth2/auth
      tokenName: oauth_token
      authenticationScheme: query
      clientAuthenticationScheme: form
      scope: profile email
    resource:
      userInfoUri: https://www.googleapis.com/userinfo/v2/me
      preferTokenInfo: false

Класс настройки веб-безопасности ниже.

@EnableOAuth2Sso
@Configuration
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .csrf()
                .disable()
                .antMatcher("/**")
                .authorizeRequests()
                .antMatchers("/", "/home", "/success")
                .permitAll()
                .anyRequest()
                .authenticated();
    }
}

Контроллеры ниже

@Controller
@RequestMapping("/")
public class WelcomeController {

    @RequestMapping(value = {"home"}, method = RequestMethod.GET)
    public String welcomePage(){
        return "welcomePageAfterSignin";
    }

    @RequestMapping(method = RequestMethod.GET)
    public String welcomePage2(){
        return "welcomePage";
    }

    @RequestMapping(value = {"success"}, method = RequestMethod.GET)
    public String AfterSignIn(){
        return "success";
    }

    @RequestMapping(value = "user")
    public Principal user(Principal principal) {
        return principal;
    }
}

Ответы [ 2 ]

0 голосов
/ 21 декабря 2018
  • Обязательно проверьте протокол "http://" или" https://", так как Google также проверяет протокол.Лучше добавить оба URL-адреса в список.
  • Это кажется довольно странным и раздражающим, что здесь нет единого решения.для меня http://localhost:8000 не сработало, но http://localhost:8000/ сработало.
0 голосов
/ 21 декабря 2018

enter image description here На самом деле все в порядке, вы перенаправлены на страницу входа в систему безопасности Spring.

вам не хватает учетных данных Spring-Security .

Внимательно изучите журналы, и вы увидите пароль, похожий на Using generated security password: 5608543f-48fd-46ae-94a4-3f7094aa0d53

, поэтому вам необходимо ввести эти учетные данные на странице входа.Имя пользователя по умолчанию: user пароль генерируется каждый раз в журналах (например): 5608543f-48fd-46ae-94a4-3f7094aa0d53

только тогда вы будете перенаправлены на свою страницу Google или API, которые вы открыли.

добавив картинку для вашей справки enter image description here

...