목록2024/01 (6)
Rootable의 개발일기
스프링 시큐리티는 Authentication(인증)과 Authorization(인가)라는 두 가지 큰 흐름으로 처리된다. 때때로 Authorization을 'Access Control'이라고 말하기도 한다. 📌 인증 방식 인증(Authentication) : Who are you? 인가(Authorization) : What are you allowed to do? 스프링 시큐리티는 기본적으로 인증 절차를 거친 후 인가 절차를 진행하며, 인가 과정에서 해당 리소스에 접근 권한이 있는지 확인한다. 스프링 시큐리티에서는 인증과 인가를 위해 Principal을 아이디로, Credential을 패스워드로 로 사용하는 Crendential 기반의 인증 방식을 사용한다. Principal(접근 주체) : 보호 받는..
📌 세션 동작 방식 1. 사용자는 웹 브라우저에 로그인 정보를 입력한 후 웹 브라우저는 서버에 요청을 보낸다. 2. 웹 서버는 해당 정보가 올바른 정보인지 검증 후 올바르다면 Session Object and Session ID를 생성하여 Session ID를 쿠키에 담아 클라이언트로 반환한다. 쿠키는 HTTP 전용이므로, 해당 클라이언트의 것이 아닌 어떤 Javascript로도 읽을 수 없다. man in the middle attack과 같은 통신을 가로채는 공격으로부터 안전하다. 3. 다음 요청부터 웹 브라우저는 자동으로 해당 쿠키(with Session ID)를 함께 보낸다. 4. 서버는 전송받은 Session ID를 검색한 결과(Session Object)가 존재한다면 유효한 요청으로 판단하고 ..
📌 정의 클라이언트와 서버 사이에서 인증 및 권한 정보를 안전하게 전달하기 위한 JSON 형식의 암호화된 문자열 📢 주로 인증, 권한 부여, 정보 교환을 위해 사용함 JWT는 공유될 필요가 있는 정보를 가진 JSON 객체들을 포함한다. 각 JWT는 malicious party 또는 client에 의해 JSON 내용이 변경되지 않는 것을 보장하기 위해 암호화를 사용하여 서명받는다. 📌 JWT를 사용하는 이유 인증 서버가 Plain JSON으로서 데이터를 보낸다면 Client Application API는 올바른 정보를 받은 것인지 검증할 방법이 없다. 예를 들어 malicious attacker가 user ID를 변조할 수 있는데, 그때 Client Application API는 어떤 일이 일어났는지 알 ..
📌 에러 내용 ERROR 21512 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.http.converter.HttpMessageNotWritableException: Could not write JSON: Infinite recursion (StackOverflowError); //원인 nested exception is com.fasterxml.jackson...