본문 바로가기

Back-End/SpringBoot13

[SpringSecurity 뜯어보기] oAuth2 라이브러리를 통한 인증객체 주입 새로운 프로젝트 합류 및 기존 구현방식oAuth2 라이브러리를 활용한 기존 User 관련 레거시 코드 활용이미 운영되고 있는 프로젝트의 백엔드 개발로 합류했고, User 와 Spring Security 관련 기능 확장을 요청받았다.과거에 SpringSecurity와 oAuth를 활용해서 카카오 로그인을 구현했을 때는 인증코드를 활용하는 방식을 사용했었는데, 새프로젝트의 레거시 코드는 [oauth2-resource-server] 라이브러리를 통해서 구현하고 있었으며, 모바일 환경에서 인증 code를 사용하는 방식이 지원되지 않는다는 PM의 전달사항으로 인해 기존 코드를 최대한 살리는것이 목표였..으나아무리 찾아봐도 SecurityContextHolder.getContext().setAuthenticatio.. 2024. 12. 28.
3. JWT + oAuth2 카카오 로그인 삽질일기 3. WhiteList 관련 삽질코드까지 전부 기록해 놓은 내용은 노션에서 확인할 수 있다.해당 코드를 사용한 프로젝트는 깃허브에서 확인할 수 있다. WhiteList 시큐리티 특성(?)상 에러 원인을 찾기가 참 힘든 것 같다. (공부 안하고 바로 도입했으니 시큐리티 특성이 아니라 내 특성인가)타 API를 다루듯이 에러의 위치를 "정확히" 찝어내는데 까지 굉장히 번거롭고놀랍게도 시큐리티 처음부터, 마지막까지, 정말 꾸준하게 애먹인놈은 저놈이다 저놈. 이 글에는 whitelist가 어떻게 다채롭게 나를 엿먹였는지 나열하며 정리해보겠다.1. 카카오 로그인 성공...? 정말로? 맨 처음 카카오 로그인 api를 연결했었을 때 "localhost:8080/api/login" 경로로 진입했었고 카카오 로그인 페이지.. 2024. 6. 29.
2. JWT + oAuth2 카카오 로그인 삽질일기 2. 인증은 언제 어떻게 이루어지는가?코드까지 전부 기록해 놓은 내용은 노션에서 확인할 수 있다.해당 코드를 사용한 프로젝트는 깃허브에서 확인할 수 있다. [인증]에 대해서 자세히SecurityConfig.SecurityFilterChain @Bean // 스프링 컨테이너에 의해 관리되는 빈 객체를 생성 public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { return http .cors(cors -> cors.configurationSource(corsConfigurationSource()))// .cors(AbstractHttpConfigu.. 2024. 6. 28.
1. JWT + oAuth2 카카오 로그인 삽질일기 1. 현재 코드 분석코드까지 전부 기록해 놓은 내용은 노션에서 확인할 수 있다.해당 코드를 사용한 프로젝트는 깃허브에서 확인할 수 있다. Kakao OAuth Login/Register Arcitecture Flow인증 코드를 통해 유저정보 저장 및 JWT 토큰 생성까지의 Process"api/auth/kakao"로 Client는 카카오로부터 제공받은 Code를 서버로 전송해당 code 를 사용하여 카카오 쪽으로 AccessToken 요청 및 수신하여 리턴AccessToken을 사용하여 카카오 유저정보 API로 요청이후 응답에서 유저 정보를 파싱 및 처리 / 리턴AuthController.kakaoLoginpublic AuthTokens kakaoLogin(@RequestParam String code).. 2024. 6. 28.