스프링 부트 2.0에서는 보다 확장성 있는 기능 제공
application-oauth.properties에 client-id, client-secret, scope 등록
application.properties에 spring.profiles.include=oauth
추가
⇒ application.properties에서 application-oauth.properties를 추가할 수 있도록 함.
# application-oauth.properties
# google client id, secret
spring.security.oauth2.client.registration.google.client-id=868024256208-7ordvdqfv6cvb1bp04pamv3ikpnm2rer.apps.googleusercontent.com
spring.security.oauth2.client.registration.google.client-secret=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4
# google scope : ( exclude openId for scalability )
spring.security.oauth2.client.registration.google.scope=profile,email
⇒ 별도의 리다이렉션을 위한 컨트롤러를 만들 필요가 없다.
⇒ 해당 url에 요청을 보내면 google에서 처리해주고, 결과를 우리 api 서버에 반환해줌. ( 그럼 우리는 아래 코드를 통해 별도의 데이터 가공 + 로그인 처리를 해주면 된다. )
# naver registration
spring.security.oauth2.client.registration.naver.client-id=h0hoBCfNkCQe8EHQLDFZ
spring.security.oauth2.client.registration.naver.client-secret=2wIKgMAphU
spring.security.oauth2.client.registration.naver.redirect-uri={baseUrl}/{action}/oauth2/code/{registrationId}
spring.security.oauth2.client.registration.naver.authorization_grant_type=authorization_code
spring.security.oauth2.client.registration.naver.scope=name,email,profile_image
spring.security.oauth2.client.registration.naver.client-name=Naver
# naver provider
spring.security.oauth2.client.provider.naver.authorization_uri=https://nid.naver.com/oauth2.0/authorize
spring.security.oauth2.client.provider.naver.token_uri=https://nid.naver.com/oauth2.0/token
spring.security.oauth2.client.provider.naver.user-info-uri=https://openapi.naver.com/v1/nid/me
spring.security.oauth2.client.provider.naver.user_name_attribute=response
WebSecurityConfigurerAdapter
를 상속받아서 configure를 오버라이딩 해서 보안 규칙을 설정한다.HttpSecurity
를 WebSecurityConfigurer
객체를 통해 생성한 후 Bean으로 등록해야 한다.@EnableWebSecurity
어노테이션이다.WebSecurityConfigurerAdapter
를 상속받고 @EnableWebSecurity
를 사용하면 앱 실행 시점에서 spring bean으로 등록된다.