Создание пользовательского пользователя с данными OAuth2 из авторизации с помощью Spring Security - PullRequest
0 голосов
/ 18 октября 2018

Я пытаюсь поддерживать как регистрацию в форме, так и аутентификацию Facebook в моем приложении, цель - создать объект UserС помощью formLogin я могу создать контроллер регистрации и сохранить свою сущность пользователя, но как я могу перехватить аутентификацию OAuth2 из Facebook, чтобы создать (или войти в систему, если она уже существует) сущность пользователя?

Это мойКонфигурация безопасности на данный момент:

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().disable()
            .authorizeRequests()
            .antMatchers("/oauth2/**", "/webjars/**", "/users/signup", "/users/recover", "/users/reset/**", "/img/**", "/css/**", "/js/**").permitAll()
            .anyRequest().authenticated()
                .and()
            .formLogin()
                .loginPage("/users/login")
                .successHandler(loginSuccessHandler())
                .permitAll()
                .and()
            .logout()
                .logoutUrl("/users/logout")
                .logoutSuccessUrl("/users/login?logout")
                .permitAll()
                .and()
            .oauth2Login()
                .defaultSuccessUrl("users/facebook");
    }

Есть ли способ создать successHandler или аналогичный для этого?

1 Ответ

0 голосов
/ 19 октября 2018

Наконец-то нашли решение, как уже упоминалось здесь вы должны сконфигурировать вашу авторизацию OAuth2 с пакетом spring-security-oauth2-autoconfigure, используя аннотацию @ EnableOAuth2Sso, а затем создать PrincipalExtractor для сборки вашего пользователясущность, основанная на данных, отправленных провайдером OAuth2.

Таким образом, ваш собственный объект модели будет доступен через getPrincipal() при последующих вызовах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...