일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 노선별 평균 역 사이 거리 조회하기
- homebrew
- 문자열 숫자 변환
- 해시
- M1
- Iterator
- 안드로이드 스튜디오
- 포맷 지정자
- Java
- 가격이 제일 비싼 식품의 정보 출력하기
- mysql
- 백준
- Android Studio
- 코딩테스트
- 알고리즘
- HashMap
- 프로그래머스
- SQL코딩테스트
- Eclipse
- github
- OAuth 인증
- JDK
- sort정렬
- MAC OS
- 깃허브
- 27866
- 프로그램서
- 자바
- 핸드폰 가리기
- 맥북
Archives
- Today
- Total
개발일지
OAuth client 인증 구현 하기 (Github) 본문
728x90
자바에서는 사전에 정의된 OAuth2 클라이언트 등록 작성기를 제공한다.
: Google, Github, Facebook, OKRA 등
1. 라이브러리 추가
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-oauth2-client</artifactId>
</dependency>
pom.xml에 dependency 추가하기
2. github OAuth App 생성
- github에 로그인
- settings > (맨 밑에) Developer settings > OAuth Apps > New OAuth App
- Register a new OAuth application
- Homepage URL: http://localhost:8080
- Authorization callback
URL: http://localhost:8080/login/oauth2/code/github
<생성 후 ID와 Secret 넘버는 꼭 기억해 두셔야 합니다!! 잃어버리면 다시 발급 받으셔야 해요>
3. github에서 생성한 어플리케이션 정보 등록
private ClientRegistration github() {
return CommonOAuth2Provider.GITHUB.getBuilder("github")
.userNameAttributeName("name")
.clientId("----------")
.clientSecret("----------")
.build();
}
"----------" 부분에 Id와 Secret 넘버를 넣으면 됩니다.
4. ClientRegistrationRepository 구현체 생성
@Bean
public ClientRegistrationRepository clientRegistrationRepository() {
return new InMemoryClientRegistrationRepository(github());
}
위에서 등록한 github 정보를 가지고 구현체 생성
5. OAuth2AuthorizedClientService 구현체 생성
@Bean
public OAuth2AuthorizedClientService authorizedClientService() {
return new InMemoryOAuth2AuthorizedClientService(clientRegistrationRepository());
}
6. ClientRegistrationRepository와 authorizedClientService 설정
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
return ...
.oauth2Login()
.clientRegistrationRepository(clientRegistrationRepository())
.authorizedClientService(authorizedClientService())
.and()
...
}
728x90
'Java > 웹 프로그래밍' 카테고리의 다른 글
(인증과 관련된) 쿠키 / 세션 (0) | 2023.05.16 |
---|
Comments