인증(Authentication)로그인 기능을 구현할 경우, 사용자의 인증 정보를 사용하여 자격을 증명하는 기능이 존재하지 않아 제 3자가 타인의 정보로 로그인을 행할 가능성이 있다.인가(Authorization)API에 대한 권한 부여 기능이 없다면, 손님이 자기 입
내부적으로 Spring Security에서 제공하는 컴포넌트들이 애플리케이션 내부에서 User의 인증과 권한에 대한 처리를 알아서 진행해준다.알아서 진행해준다?정확하게 어떤식으로 진행되는지 흐름은 알아야 Spring Security의 적용 문제가 조금은 쉽게 다가온다.
Spring Security Filter Chain에서 사용자의 요청을 가로챈 후, 어떻게 처리를 진행할까?사용자가 로그인을 시도한 경우로 인증 처리 흐름을 익혀보자!사용자가 로그인을 위해 Username과 Password를 포함한 요청 보내면 Spring Securi
우리는 사용자의 로그인 정보을 이용하여 저장된 크리덴셜과의 비교 검증 후, 인증된 Authentication을 SecurityContext에 저장했다. 그럼 이제 사용자가 요청한 리소스에 접근을 허용하면 될까?NO!만약 인증된 일반 사용자가 관리자 시스템에 접속할 수
\-> Spring EL
의존 라이브러리를 적용하면 Spring Security가 제공하는 디폴트 로그인 페이지를 만나볼 수 있다.왼쪽은 Spring Security가 적용된 화면이고 오른쪽은 적용 전 화면이다. URI를 보면 알 수 있듯이 Spring Security를 적용하면 자동으로 lo
Hello Spring Security 1이전 학습 내용에 이어서 데이버베이스에 연동된 로그인 인증 프로세스를 구현!로그인을 위해서라면 필수적으로 필요한 기능은 회원가입 기능이다. Hello Spring Security 1에서 학습한 내용만으로 애플리케이션을 실행하면
💡 쿠키와 세션 HTTP 프로토콜은 무상태성(Stateless)으로 인해 클라이언트의 Request에 대한 서버의 Response를 수신하게 되면 연결을 끊는 비연결성(Connectionless)의 특징을 가진다.클라이언트가 로그인 인증을 위해 요청을 보내더라도 무상
인증에 필요한 정보들을 암호화(인코딩)시킨 JSON 토큰으로 해당 토큰을 HTTP 헤더에 실어 서버가 클라이언트를 식별하는 방식을 JWT 기반 자격 증명 방식이라고 한다.☝️ 인증에 필요한 정보는 JSON 타입의 데이터! 이것을 Base64 URL-safe Encode
🧐 Spring Framework와 관계된 라이브러리와, JWT 라이브러리는 별개의 것으로 서로 연관되어 있지 않아 사실상 Spring Framework와 관계된 라이브러리가 추가되어 있지 않아도 JWT 구현이 가능하다.📝 해야할 일JWT를 생성하고 검증하는 역할을
JWT의 검증 기능은 인증된 사용자가 애플리케이션의 리소스에 접근할 때마다 request의 header에 포함된 JWT를 검증할 때 사용된다.verifySignature() 메서드는 JWT에 포함되어 있는 Signature를 검증해 JWT의 위/변조 여부를 확인한다.j
OAuth 2❓❗ 간단하게 말하자면 소셜 로그인 인증 방식을 구현한 기술을 말한다. 서비스를 제공하는 애플리케이션에서 해당 서비스를 이용하는 사용자의 크리덴셜을 직접적으로 관리 하지 않고 인증 서버를 외부의 써드 파티 애플리케이션에 의탁, 분리하는 것을 말한다. 기
Spring Security 기반의 애플리케이션이므로 Spring Security 라이브러리와 OAuth2 시스템을 이용하는 Client임으로 OAuth2-client 라이브러리를 추가한다.써드 파티 애플리케이션의 OAuth2 시스템을 이용하기 위해서는 해당 애플리케이