2026.05.04
들어온 것을 걸러주는 역할
스프링에서 필터는 들어온 모든 입력에 대해서 가장 먼저 처리하는 역할을 하게 됨.
필터는 본격적인 스프링 로직이 실행되기 전에 사용자의 요청을 한번 걸러주는 역할을 함.
주로 사용하는건 OncePerRequestFilter 임.
GET / POST 만 지원 → _method 파라미터로 PUT , DELETE 등 매핑 가능하게 해줌.application/x-www-form-urlencoded 데이터를 PUT , PATCH , DELETE 요청에서도 읽을 수 있게 해줌.RequestContextHolder 에 바인딩. @RequestScope Bean 사용 시 필요.Filter는 단일로 존재하지 않고 묶음 단위로 생각하면 됨.
Filter는 하나만 사용하는 것이 아니라 여러개를 만들어서 사용함.
그 Filter들에게 @Order 어노테이션을 사용해서 순서를 지정해줄 수 있음.
실생활로 비유를 한다면, JWT는 출입증이랑 동일함.
HS256Tutor, KIM DONG HYUN , maleSecret Key📌 만료 시간이 필요한 이유
JWT 는 최초의 로그인 이후에는 아무런 검증을 하지 않고 무조건 프리패스.
이런 JWT 를 누군가 탈취하게 된다면 개발자는 아무런 조취를 취할 수가 없기 때문에,
최소한의 안전 장치로 만료 시간 을 지정함.
📌 Client 입장
인증 / 인가를 위해서 로그인
📌 Server 입장
Client가 보낸 정보를 기반으로 로그인 시도
로그인에 성공하면 JWT 토큰을 발행
📌 Client 입장
Postman을 통해서 요청을 보냄.
요청을 보낼 때 JWT 토큰을 보내고 싶으면 헤더에 포함해서 보냄. (Authorization → Bearer Token → JWT 토큰 넣어주기)
📌 Server 입장
Client에서 보낸 요청 중 header에 JWT 토큰이 들어있는지 검사
JWT 토큰이 있으면 해당 토큰이 유효한 토큰인지 검사
유효한 토큰이라면 JWT 토큰 안에 들어 있는 값을 복호화
“너 누구야?” 를 확인하는 과정
사용자의 신원을 확인하는 절차로, 클라이언트가 자신이 누구인지를 증명하는 것 (아이디/비밀번호, 토큰, 인증서 등)
인증에 성공하면 사용자 정보가 보안 컨텍스트에 저장됨. (이 정보를 바탕으로 이후 요철 처리 시 누가 요청했는지 판단 할 수 있음.)
“너 이거 해도 돼?” 를 판단하는 과정
인증된 사용자가 요청한 리소스나 기능에 접근할 권한이 있는지 판단하는 절차로, 역할(Role), 권한(Authority)에 따라 접근 여부 결정
인가에 실패하면 403 Forbidden / 인가에 성공하면 요청 처리 진행
인증 : 사용자의 신원 확인
인가 : 권한 확인
인증 없이 인가 X (항상 인증 → 인가 순서)
스프링 시큐리티는 이 두 과정을 자동화 해주는 프레임워크