Google OAuth
여러개의 OAuth 사용한다면 별도의 설정 파일 생성하는 것이 나음
application.yml
spring:
profiles:
include: oauth
application-oauth.yml
security:
oauth2:
registration:
google:
client-id: ${GOOGLE_CLIENT_ID}
client-secret: ${GOOGLE_CLIENT_SECRET}
- 환경변수 적용하기(Mac OS)
(terminal)>> vi ~/.zshrc # 편집기 열기
export GOOGLE_CLIENT_ID = ""
export GOOGLE_CLIENT_SECRET = ""
:wq # 저장 후 종료
(terminal)>> source ~/.zshrc # 적용
자동 회원가입 후 고민해야 할 사항
로그인 관련 처리 제공 인터페이스
자동 로그인
쿠키(HttpCookie)
사용하는 웹 인증 방식
Remember me 설정
public class SecurityConfig{
@Autowired
private ClubUserDetailsService userDetailsService;
...
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception{
...
http.rememberMe()
.tokenValiditySeconds(60*60*24*7); // 쿠키 유지 시간
.userDetailsService(userDetailsService);
}
}
@Controller
public class SampleController{
..
@PreAuthorize("#clubAuthMember != null && #clubAuthMember.username eq \"user1@aa.com\"")
@GetMapping("/admin")
public String exAdmin(@AuthenticationPrincipal ClubAuthMemberDTO clubAuthMember){
log.info(" ============= Admin Only ============");
log.info(clubAuthMember);
return "/sample/admin";
}
}