- GAuth-spring-boot-starter 모듈은 2가지 의존성을 필요로 합니다.
spring-boot-starter-security
spring-boot-starter-web
- GAuth 인증을 사용하기 위해 서비스를 등록하야 합니다.
GAuth.co.kr에 접속하여 서비스를 등록할 수 있습니다.
spring-boot-starter-security
, spring-boot-starter-web
의존성을 가지는 Spring Boot 프로젝트를 준비합니다.
모듈을 가져옵니다. 자세한 내용은 README.md의 모듈 불러오기를 확인하세요.
application.properties
혹은 application.yml
에 GAuth 관련 설정을 정의해야 합니다.
- gauth.client-id
- gauth.client-secret
- gauth.redirect-uri
application.properties
gauth.client-id:1234567890qwertyuiop
gauth.client-secret:1234567890qwertyuiop1234567890qwertyuiop
gauth.redirect-uri:http://localhost:8080/login/gauth/code
Main Class 또는 Configuration Class에 @EnableGAuth
어노테이션을 사용하여 GAuth 관련 설정을 가져옵니다.
꼭 Main Class또는 Configuration Class에 사용하지 않아도 정상적으로 동작합니다.
그러나 관리의 편의를 위해서 Main Class 또는 Configuration Class에 사용하는 것을 추천하고 있습니다.
@EnableGAuth
@SpringBootApplication
public class GauthExampleApplication {
public static void main(String[] args) {
SpringApplication.run(GauthExampleApplication.class, args);
}
}
Spring Security의 Configuration에 관한 내용은 공식문서를 참고하세요.
Spring Security의 Configuration에 Gauth 설정을 위한 GAuthLoginConfigurer
를 정의해야 해야 합니다.
간단한 등록만으로 GAuth 인증을 사용할 수 있습니다.
@Configuration
public class SecurityConfig {
private final GAuthLoginConfigurer gatuh;
public SecurityConfig(GAuthLoginConfigurer gAuthLoginConfigurer) {
this.gatuh = gAuthLoginConfigurer;
}
// ...
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http
// ...
.apply(gatuh);
return http.build();
}
}
필요한 경우 설정을 변경할 수 있습니다.
@Configuration
public class SecurityConfig {
private final GAuthLoginConfigurer gatuh;
public SecurityConfig(GAuthLoginConfigurer gAuthLoginConfigurer) {
this.gatuh = gAuthLoginConfigurer;
}
// ...
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http
// ...
.apply(gatuh
.loginPageUrl("/to-gauth-login-page")
.loginProcessingUrl("/login/code/gauth")
.successHandler(
new SimpleUrlAuthenticationSuccessHandler("/success"))
.failureHandler(
new SimpleUrlAuthenticationFailureHandler("/failure")));
return http.build();
}
}
loginPageUrl(String loginPageUrl)
- GAuth 로그인 페이지로 리다이렉트되는 주소를 설정합니다.
- default:
/gauth/authorization
loginProcessingUrl(String loginProcessingUrl)
- GAuth 인증 코드를 받아 처리하는 필터에 접근하는 주소를 설정합니다.
- default:
/login/code/gauth
successHandler(AuthenticationSuccessHandler successHandler)
- GAuth 인증을 성공했을 때, 실행되는
AuthenticationSuccessHandler
를 정의합니다. - default: 서버의 root 주소로 리다이렉트 됩니다.
- GAuth 인증을 성공했을 때, 실행되는
failureHandler(AuthenticationFailureHandler failureHandler)
- GAuth 인증을 실패했을 때, 실행되는
AuthenticationFailureHandler
를 정의합니다. - default: 인증이 실패했다는 json과 함께 401 HTTP Status를 반환합니다.
- GAuth 인증을 실패했을 때, 실행되는
disable()
- GAuth 인증을 사용하지 않도록 설정합니다.