Как получить токен доступа из фейсбука с помощью Spring boot security - PullRequest
0 голосов
/ 26 марта 2019

Мне нужно получить токен доступа из Facebook с помощью Spring Security, у меня есть следующий код для настройки HTTP

@Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .antMatcher("/**")
                .authorizeRequests()
                .antMatchers("/", "/login**", "/webjars/**")
                .permitAll()
                .anyRequest()
                .authenticated().and().exceptionHandling().authenticationEntryPoint(new LoginUrlAuthenticationEntryPoint("/"))
        .and().logout().logoutSuccessUrl("/").permitAll()
        .and().csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
        .and().addFilterBefore(ssoFilter(), BasicAuthenticationFilter.class);
    }

Также я могу получить принципал после входа в Facebook.Но мне нужно получить авторизованный токен доступа пользователя.

Это зависимости, которые я использую для безопасности весенней загрузки,

    implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'
    implementation 'org.springframework.boot:spring-boot-starter-oauth2-resource-server'
    implementation 'org.springframework.boot:spring-boot-starter-security'
    compile group: 'org.springframework.security.oauth.boot', name: 'spring-security-oauth2-autoconfigure', version: '2.1.3.RELEASE'

Это фильтр, который я использую,

private Filter ssoFilter() {
    OAuth2ClientAuthenticationProcessingFilter facebookFilter = new OAuth2ClientAuthenticationProcessingFilter("/login/facebook");
    OAuth2RestTemplate facebookTemplate = new OAuth2RestTemplate(facebook(), oauth2ClientContext);
    facebookFilter.setRestTemplate(facebookTemplate);
    UserInfoTokenServices tokenServices = new UserInfoTokenServices(facebookResource().getUserInfoUri(), facebook().getClientId());

    tokenServices.setRestTemplate(facebookTemplate);
    facebookFilter.setTokenServices(tokenServices);

    return facebookFilter;
}

Есть ли способ получить токен доступа с помощью весенней загрузки безопасности

1 Ответ

1 голос
/ 08 апреля 2019

Если интеграция с Facebook правильна с Spring Security, вы можете ввести:

@Autowired
OAuth2ClientContext oAuth2ClientContext;

и с этим объектом получить токен:

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