티스토리 뷰
Oauth2.0 클라이언트 의존성 설정
외부 서비스(API 제공자)와 상호작용하여 사용자 인증 및 권한 부여를 요청하는 애플리케이션
주로 사용자 대신 리소스 소유자(Resource Owner)의 인증 토큰을 받아, 외부 API나 리소스 서버에 접근하는 데 사용
OAuth 클라이언트의 역할
- 사용자 인증 요청
사용자를 대신하여 인증 서버(Authorization Server)로 인증 요청을 전송합니다. - 액세스 토큰 수신
인증이 완료되면 인증 서버에서 발급한 액세스 토큰을 받아옵니다. - 외부 API 호출
액세스 토큰을 사용해 리소스 서버(Resource Server)에서 데이터를 가져오거나 작업을 수행합니다. - 사용자 정보 제공
토큰을 기반으로 인증된 사용자 정보를 가져오거나 서비스에 연결합니다.
OAuth 클라이언트를 사용하는 이유
- 안전한 인증
사용자 비밀번호를 직접 다루지 않고, OAuth를 통해 인증이 이루어지므로 보안이 강화됩니다.
예: Google 로그인, Facebook 로그인. - 통합된 사용자 경험:
사용자는 다양한 애플리케이션에서 동일한 계정을 사용할 수 있어 편리합니다.
예: Google OAuth를 통해 여러 서비스에 로그인. - 제한된 액세스
액세스 토큰은 범위(Scope)와 유효기간이 제한되어 있으므로, 권한이 필요 이상으로 확대되지 않습니다. - 외부 API와 연동
애플리케이션이 외부 서비스(예: Google Drive, GitHub API)와 안전하게 통신할 수 있습니다.
Configuration 설정
Spring Security 5.7 이상
WebSecurityConfigurerAdapter deprecated 됨
SecurityFilterChain과 개별적인 AuthenticationManager 설정 사용 권장
네, Spring Security 6.0 이후로 antMatcher()는 더 이상 사용되지 않으며 Deprecated되었습니다. 대신, requestMatchers() 메서드로 대체
Spring Security 5.4부터는 logout()과 logoutSuccessUrl() 등의 체인을 함수형 방식으로 구성하도록 권장
체인 방식과 함수형 방식의 차이
함수형 방식이 구분되어 있어 가독성이 있고 유지보수에서 실수를 줄여줄 수 있다.
함수형 방식
http
.authorizeRequests()
.antMatchers("/public/**").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.permitAll()
.and()
.logout()
.logoutUrl("/logout")
.logoutSuccessUrl("/login?logout");
함수형 방식
http
.authorizeHttpRequests(auth -> auth
.requestMatchers("/public/**").permitAll()
.anyRequest().authenticated()
)
.formLogin(form -> form
.loginPage("/login")
.permitAll()
)
.logout(logout -> logout
.logoutUrl("/logout")
.logoutSuccessUrl("/login?logout")
);
'Spring' 카테고리의 다른 글
gradle 파일 개선 (1) | 2025.01.03 |
---|---|
SpringFramework에서 property 파일 읽어오기 (0) | 2022.08.22 |
[Spring] Caused by: java.lang.IllegalStateException: Ambiguous mapping 에러 (0) | 2022.08.13 |
[Spring] spring의 application.properties 간단 개념 (0) | 2021.12.18 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 2018 카카오 공채
- 가장 큰 정사각형 찾기
- 오블완
- 정수 내림차순으로 배치하기
- 짝지어 제거하기
- 후보키
- 투포인터
- 괄호 변환
- 3954
- 문자열을 정수로 바꾸기
- 자바
- 카카오2020 공채
- programmers
- 주사위 윷놀이
- 백준
- 124 나라의 숫자
- 게리맨더링 2
- 프로그래머스
- 단체사진 찍기
- 티스토리챌린지
- 라면공장
- 17779
- 카카오 2020 공채
- DP
- 2019 카카오 공채
- 17825
- Brainf**k 인터프리터
- 찾아라 프로그래밍 마에스터
- 큰 수 만들기
- java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함