1
나는이 튜토리얼이 내 응용 프로그램의 설정 (봄 부팅)facebook 인증 사용자를 DB에 저장하는 방법은 무엇입니까?
@Configuration
@ComponentScan(basePackages = {"org.fiodorov.controller","org.fiodorov.service", "org.fiodorov.config"})
@EntityScan(basePackages = "org.fiodorov.model")
@EnableJpaRepositories(basePackages = "org.fiodorov.repository")
@EnableOAuth2Client
@EnableAutoConfiguration
public class Application extends WebSecurityConfigurerAdapter{
@Autowired
OAuth2ClientContext oauth2ClientContext;
@Override
protected void configure(HttpSecurity http) throws Exception {
http.antMatcher("/**")
.addFilterBefore(ssoFilter(), BasicAuthenticationFilter.class);
}
public static void main(String[] args) {
SpringApplication.run(
Application.class, args);
}
private Filter ssoFilter() {
OAuth2ClientAuthenticationProcessingFilter facebookFilter = new OAuth2ClientAuthenticationProcessingFilter("/login/facebook");
OAuth2RestTemplate facebookTemplate = new OAuth2RestTemplate(facebook(), oauth2ClientContext);
facebookFilter.setRestTemplate(facebookTemplate);
facebookFilter.setTokenServices(new UserInfoTokenServices(facebookResource().getUserInfoUri(), facebook().getClientId()));
return facebookFilter;
}
@Bean
@ConfigurationProperties("facebook.client")
OAuth2ProtectedResourceDetails facebook() {
return new AuthorizationCodeResourceDetails();
}
@Bean
@ConfigurationProperties("facebook.resource")
ResourceServerProperties facebookResource() {
return new ResourceServerProperties();
}
@Bean
public FilterRegistrationBean oauth2ClientFilterRegistration(
OAuth2ClientContextFilter filter) {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(filter);
registration.setOrder(-100);
return registration;
}
}
그리고 그것은 작동합니다 https://spring.io/guides/tutorials/spring-boot-oauth2/#_social_login_logout 을 구현하기 위해 노력했다. 나는 로그인 할 수 있으며 튜토리얼에서 설명한대로 사용자 정보를 얻을 수 있습니다. 하지만 로그인 한 직후와 사용자가 존재하지 않으면 데이터베이스에 사용자 정보를 저장하고 주저하지 않고 자신의 역할을 확인하기 위해 주 페이지로 리디렉션하기 전에 어떻게 그 순간을 찾을 수 있을지 모르겠습니다.
어떻게하면됩니까?