Spring/security

Spring/security

SpringSecurity Test 코드 작성하기

이번글에서 소개하고자 하는 것은? 이번 글에서는 컨트롤러에서 @AuthenticationPrincipal 을 사용하여 Principal 객체를 바인딩 받아 사용하는 경우를 테스트 코드를 작성하기위한 글입니다. (테스트를 작성하는 방법은 여러가지 있음으로 해당 글이 무조건 옳은 방법의 테스트라고 주장하는 글이 아닙니다.) 서론 컨트롤러 예제는 다음과 같습니다. @GetMapping("/hi") public ResponseEntity hi(@AuthenticationPrincipal AuthUser user) { return ResponseEntity.ok("Hi !" +user.getEmail()); } 해당 컨트롤러를 테스트하기위해서는 AuthUser가 SercurityContextHolder 에 담겨 ..

Spring/security

JWT 토큰

JWT 토큰 전 게시글에서 여러 가지 로그인 방식 설명에 있어 주로 사용되는 3가지 방법이 있다고 말했다 세션 - 쿠키 토큰 (jwt 토큰) 방식 다른 채널을 통해 인증 (OAuth) 이번 본문에서는 2번을 토큰 방식에 대해 알아볼 것이다. (본문 길이상 간단하게 설명합니다.) JWT(JSON WEB TOKEN)은 무엇일까? 먼저 JWT 가 뭔지부터 알고 넘어가자 JWT 토큰은 간단하게 사용자의 정보를 JSON 객체로 안전하게 전 송하기 위한 방법이다. JWT의 구조 JWT 구조(이미지 출처) Header 토큰의 유형 , 사용 중인 서명 알고리즘 두 부분으로 구성된다. { "alg": "HS256", // 서명 알고리즘 "typ": "JWT" // 토큰 유형 } Payload 등록된 클레임 서비스에 필요..

Spring/security

Spring security 동작 원리 (인증,인가)

인증(Authentication) 인증이란 식별 가능한 정보 (이름 , 이메일)를 이용하여 서비스에 등록 유저의 신원 입증하는 과정이다. 즉 나의 서비스에 등록된 사용자에게만 서비스를 제공한다는 뜻으로 간단히 이해하자. 인가(Authorization) 인증만 가지고는 서비스를 운영하기에는 무리가 있다. 인증을 한 사용자에게 모든 서비스를 제공하게 된다면? 내가 작성한 글이 다른 사람에 의해서 수정되거나 삭제될 수 있다. 따라서 인증된 사용자가 접근하려는 자원에 대한 권한이 있는지 확인하는 절차가 필요할 것이다. 또한 인가는 항상 앞에 인증이라는 선행 프로세스가 필요하다.(인증하지 않은 유저의 권한을 알 수 없기 때문에) 그렇다면 우리는 인증(로그인)을 하기 위해 어떠한 방식들을 사용할까? 세션 - 쿠키 ..

jay Joon
'Spring/security' 카테고리의 글 목록