목록2026/01/22 (4)
Spring & Java
Spring Security 가장 핵심이 되는 SecurityContext 개념과 인증 실습을 해보겠습니다. SecurityContextHolderSecurityContextHolder는 현재 쓰레드에서 인증된 사용자 ( Authentication 객체 )를 저장/조회 하는 Spring Security 핵심 저장소 입니다.즉, 지금 로그인한 사용자가 누구인지를 저장하는 곳입니다. 인증 정보 저장 위치Authentication auth = SecurityContextHolder.getContext().getAuthentication();커스텀 필터나 컨트롤러, 서비스 어디서든 SecurityContextHolder를 통해 인증 정보에 접근 가능수동 저장 예시 (JWT 사용 시 )SecurityContex..
이번에는 Spring Security의 개념과 구조를 이해하고 인증/인가를 Spring Security가 어떻게 처리되는지 학습 하는게 목표 입니다.인증 방식 ( Session, Token, OAuth2) 의 차이를 개념적으로 정리해보겠습니다. Spring Security 개념 및 구조 스프링 기반 애플리케이션의 인증(Authentication) 과 인증 (Authorization) 를 담당하는 보안 프레임워크입니다. Filter 기반 보안 처리Spring Security 적용을 위한 작업implementation 'org.springframework.boot:spring-boot-starter-security'이거 한줄에러가 난다는데 난 필터가 있어서 그런가 .. 에러가 발생하지 않았다. 아! 설마 ..
인증 & 인가 개념 다시한번 정리인증과 인가가 무엇이였는지 다시 한번 잡아 보고 갑시다. 인증 ( 401 에러 코드 )인증 " 너 누구야? " 를 확인하는 과정이겠죠. 개념 사용자의 신원 (Identity)을 확인하는 절차클라이언트가 자신이 누구인지를 증명아이디/비밀번호, 토큰, 인증서 등 다양한 방식 사용예시 로그인 시 아이디/비밀번호 입력 -> DB 조회 -> 일치하면 인증 성공JWT 토큰 헤더에 포함 -> 토큰 유효성 검증 -> 인증 성공결과인증에 성공하면, 사용자 정보가 보안 컨텍스트에 저장 됨이 정보를 바탕으로 이후 요청 처리 시 누가 요청 했는지 판단할 수 있음인가 ( 403 에러코드 )인가 " 너 이거해도 돼" 를 판단 하는 과정 개념인증된 사용자가 요청한 리소스나 기능에 접근할 권한이 있..
우리는 앞전에 JWT를 통해서 인증 인가/인가 처리하는 것을 해봤습니다.API가 요청이 들어오면 JWT가 있는지 없는지 검사하고 없다면 해당 토큰이 유효햔지를 검사 했습니다.유효하면 Controller로 접근을 허용하고 그렇지 않다면 접근을 막았습니다.이런 작업을 모든 요청에 일괄적으로 적용한다면 Controller에서 일일이 요청할 필요가 없어지는 겁니다 무슨 말이냐면 모든 컨트롤러 메서드 마다 url 마다 매번 넣어줫어야 했습니다.이렇게 되면 똑같은 코드의 무한한 반복, 코드를 수정을 할 때 코드를 계속 바꿔야 하고 코드도 길어지는 불편함이 생깁니다.@GetMapping("/get")public String api1(){ // JWT 인증/인가 검사 // 실행하고 싶은 로직}@GetMappin..