https://github.com/lhoju0158

java 4

[Spring] Security - JWT 서버 구축

관련 코드 깃허브https://github.com/lhoju0158/securityJwt1. JWT 구조 이해JWT 웹토큰이 뭐시냐JSON 객체로 안전하게 어떤 정보를 전송하기 위한 방식디지털 서명이 되어있어서 신뢰성 보장 가능하다. RSA 혹은 HMAC을 사용한다. 주로 서명의 용도로 사용한다! 구조는 xxxxx.yyyyy.zzzzzHeader - Payload - Signature로 이루어져 있음 - Header사용한 알고리즘 종류, type이 적혀있다. { "alg" : "HS256", "typ" : "JWT"} Based64Url로 인코딩되어 있어서 디코딩 가능하다. - Payload엔티티 및 추가 데이터에 대한 설명클레임은 3가지로 구성등록 된 클레임, 공개 소유권 주장, 개인 클레임개인 클레임..

개발 끄적끄적 2025.08.06

[Spring] Filter vs Interceptor

면접에서 받은 기술 질문이다. 그땐 대답을 못했다.. 똥멍텅구리 녀석. 그래서 알기 위해 적어본다. + JWT 사용을 원할히 하기 위해. 1. 필터 (Filter)Dispatcher Servlet에 요청이 전달되기 전/후에 url 패턴에 맞는 모든 요청에 대해 부가적인 작업을 처리하는 기능이다. +) Dispatcher Servlet은 뭐냐dispatch: 보내다 즉, 디스패처 서블릿은 http 프로토콜로 들어오는 모든 요청을 가장 먼자 받아 적합한 컨트롤러에 위임해주는 프론트 컨트롤러다.클라이언트로 부터 어떤 요청이 온다!면 Tomcat과 같은 서블릿 컨테이너가 요청을 받는다. 그리고 이 요청을 디스패처 서블릿이 받는다. 암튼 다시 필터로 가서..Spring container의 관리 대상이 아닌 T..

개발 끄적끄적 2025.08.04

[Spring] Security - 웹 보안 이해

1. JWT를 이해하기전 세션에 대해 알아보자JWT: JSON Web Token 왜 사용되고 어떻게 쓰이는가! user가 web 브라우저에 www.naver.com 이라 친다. 이후 엔터를 누르면 GET 요청이 들어간다. 그러면 서버는 controller에서 해당 주소에 맞는 method를 찾는다. 메서드에서 요청에 맞는 html 파일을 return해준다. 이때 http 헤더를 단다. 헤더엔 쿠키가 존재하고 세션id가 할당된다. web 브라우저 쿠키 영역에 세션 id를 저장한다. 최초 요청 시 생성되고, 이후 요청 시 쿠키에 세션 id를 달고 간다. 여기서 세션 id의 역할 -> 이전 방문 정보 저장 그럼 언제 소멸되는가1. 서버에서 세션 값을 날리는 경우2. 사용자가 브라우저를 닫는 경우 (종료)3..

개발 끄적끄적 2025.08.03

[Spring] Security - OAuth 2.0

관련 코드 깃허브https://github.com/lhoju0158/securityOAuth2.00. OAuth란 1. 구글 로그인 준비- 구글 api console에 들어간다- 새로운 프로젝트 생성- OAuth 동의화면 - 프로젝트 구성 들어가서 설정 완료하기- 개요 - OAuth 클라이언트 ID 만들기 들어가서 설정 완료하기이 중 승인된 리디릭션 url은 다음과 같은 의미이다. 로컬 로그인이 완료 되면 인증이 되었다는 코드를 돌려준다.서버는 이 코드를 다시 받아서 해당 코드를 이용해 액세스 토큰을 요청한다.액세스 토큰을 이용해 서버가 사용자 대신 구글 서버에 존재하는 사용자의 개인 정보에 접근할 수 있는 권한이 생긴다. 승인된 리디랙션 url은 코드를 잡는 url이다. 위 주소는 authclient..

개발 끄적끄적 2025.08.01