Spring Oauth2 с WebSecurity

Я пытаюсь настроить Spring OAuth2 и использовать собственный WebSecurityConfigurerAdapter (@EnableWebSecurity).

В качестве базы я скопировал следующие два проекта:

  • образец ванили
  • клиентское приложение с @EnableOAuth2Sso и соответствующими свойствами

Это работает, как и ожидалось, из коробки.

Но когда я пытаюсь добавить WebSecurityConfigurerAdapter с @EnableWebSecurity на автоматический сервер (ванильный), это не удается.

Я получаю сообщение Ошибка аутентификации: не удалось получить токен доступа при перенаправлении обратно после входа и авторизации на странице входа клиента.

Я настроил security.oauth2.resource.userInfoUri, который отлично работал без WebSecurityConfigurerAdapter.

Есть идеи, как настроить oauth2 с помощью WebSecurityConfigurerAdapter?


comment
какую безопасность OAuth2 вы пытаетесь создать? Только сервер авторизации oauth2 или сервер авторизации с сервером ресурсов? У вас есть где-нибудь на github ваш пример?   -  person bilak    schedule 19.10.2016
comment
Я загрузил образец здесь. Он работает так, как зарегистрирован. Но если вы раскомментировали CustomWebSecurity в auth-server/Application, он больше не работает. (Просто запустите сервер авторизации и клиент с помощью основного метода и откройте localhost:8081/client в браузере. )   -  person cin    schedule 19.10.2016
comment
если вы включите веб-безопасность, возможно, конечные точки /oauth/authorize и /oauth/confirm_access не видны.   -  person bilak    schedule 20.10.2016
comment
не могли бы вы также предоставить больше информации, как вы это тестируете? Я думаю, что это не работает с текущими настройками.   -  person bilak    schedule 20.10.2016
comment
Если я запускаю оба приложения как на github и открываю localhost:8081/client, я правильно получаю перенаправление, могу войти и авторизоваться а также получить обратно перенаправление, клиент также запрашивает userInfoUri и аутентифицирует пользователя. Но если я раскомментирую CustomWebSecurity и перезапущу оба приложения, последний шаг завершится сбоем в клиентском приложении с ошибкой аутентификации: не удалось получить токен доступа.   -  person cin    schedule 20.10.2016
comment
Есть ли какой-нибудь пример на usgin Spring OAuth2 Authserver с клиентом @EnableOAuth2Sso (не за zuul), где есть настраиваемый WebSecurityConfigurerAdapter?   -  person cin    schedule 24.10.2016
comment
Я не уверен. Я никогда не использовал @EnableOAuth2Sso, только сервер ресурсов и сервер авторизации с соответствующей конфигурацией.   -  person bilak    schedule 24.10.2016


Ответы (1)


Измените конфигурацию безопасности http на что-то вроде этого:

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .requestMatchers()
                .antMatchers("/", "/login", "/oauth/authorize", "/oauth/confirm_access")
                .and()
                .authorizeRequests()
                .anyRequest().authenticated();
    }
person bilak    schedule 19.10.2016
comment
Это не работает для меня. Я выдаю 403 на /oauth/authorize. - person cin; 20.10.2016