2014-12-01 3 views
0

Google의 문서에서 Oauth2 워크 플로우를 살펴 봤는데 꽤 직관적 인 것처럼 보입니다. 기본 서블릿을 사용하면 모든 콜백을 처리하는 방법을 이해할 수 있지만 스프링 부트를 사용하면 oauth 및 스프링 보안 모듈을 사용하는 경우 약간의 혼란을 겪을 수 있습니다.스프링 부트와 google oauth

사용자 이름과 비밀번호를 사용하여 인증을 추가하는 방법을 설명하는 자습서 here을 찾았지만 주로 내 요구 사항에 가장 적합한 옵션인지 잘 모르겠습니다. 주로 페이지 자체가 아닌 페이지 자체를 제한하려고합니다. . 어쨌든, 페이지 당 인증이 필요하다고 가정 할 때 Oauth를 사용하여 사용자를 설정하려면 어떻게해야합니까? 튜토리얼을 보면 보안 모듈이 인 메모리 데이터베이스에 대해 확인 된 사용자 이름/암호를 얻기 위해 마술을하고있는 것처럼 보입니다. 예에서

@Configuration 
@EnableWebMvcSecurity 
public class WebSecurityConfig extends WebSecurityConfigurerAdapter { 
    @Override 
    protected void configure(HttpSecurity http) throws Exception { 
     http 
      .authorizeRequests() 
       .antMatchers("/", "/home").permitAll() 
       .anyRequest().authenticated() 
       .and() 
      .formLogin() 
       .loginPage("/login") 
       .permitAll() 
       .and() 
      .logout() 
       .permitAll(); 
    } 

    @Autowired 
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { 
     auth 
      .inMemoryAuthentication() 
       .withUser("user").password("password").roles("USER"); 
    } 
} 

내가 configureGlobal이 체크 대상의 사용자 이름/암호 저장소를 설정 참조 위. 스프링 부트는 Oauth2에서 사용하지 못하도록 사용자 이름/암호에 대한 하드 코딩 된 논리를 가지고 있습니까? 방금이 보안 모듈을 무시하고 내 자신의 핸들러를 사용하여 직접 사용자를 설정해야합니까?

+0

결국 Google에서 oauth를 사용하도록 프로젝트를 구성 했습니까? – jpboudreault

답변

0

당신이 필요로하는 것은 귀하의 사용자가 누구인지를 아는 것입니다. 스프링 보안이 반드시 필요한 것은 아니더라도 모든 것을 직접 처리하십시오. 콜백을 구현하는 데 사용할 수있는 Spring Social Google 라이브러리 here도 있습니다.

관련 문제