
인증, 권한 부여 및 일반적인 공격에 대한 보호를 제공하는 프레임워크스프링 시큐리티는 principal - credential 패턴을 이용하여 인증한다.스프링 시큐리티는 서블릿 필터를 기반으로 서블릿을 지원.클라이언트가 어플리케이션으로 요청을 전송하면, 컨테이너는 Se

SecurityContextHolderSecurityContextAuthenticationGrantedAuthorityAuthenticationManagerProviderManagerAuthenticationProviderRequest Credentials with A
권한을 결정할 때, AccessDecisionManager가 GrantedAuthority를 읽어 결정한다. GrantedAuthority는 메소드가 하나 뿐인 인터페이스로, getAuthority()를 메소드로 가진다. 이메소드로 명확한 String으로 권한을 조회할

의존성 추가UserDetails 를 상속받은 User 클래스를 생성한다. UserDetails는 사용자의 정보를 담는 인터페이스이다. 다양한 메서드를 오버라이드 해서 사용할 수 있다.UserDetailsService를 상속받은 UserDetailService를 생성한

JWT는 Json 객체에 인증에 필요한 정보들을 담고 비밀키로 서명한 토큰이고, 인터넷 표준 인증 방식이다. 인증 & 인가에 사용되는 공식적인 방식이다.xxxxx.yyyyy.zzzzz🌟 Header xxxxx에 해당하는 부분이다. alg와 typ으로 이루어져있다.al
JWT 토큰은 토큰이 유출되면 심각한 피해가 발생할 수 있다. 따라서 토큰의 유효기간은 짧게 하고, 액세스 토큰이 만료되면 새로운 액세스 토큰을 발급받을 수 있도록 해야한다. 이 때 리프레시 토큰을 사용하여 액세스 토큰의 유효기간은 짧게, 리프레시 토큰의 유효기간을 길
클라이언트와 서버의 연결정보를 세션이라고 한다.서버는 세션을 메모리에 저장하여 관리한다.Http의 일종으로, 사용자가 웹사이트를 방문할 경우 해당 사이트가 사용하는 서버에서 사용자의 컴퓨터에 저장하는 기록 정보 파일(text)이다. key- value 쌍으로 구성되어
제3의 서비스에 계정 관리를 맡기는 방식리소스 오너: 자신의 정보를 사용하도록 인증 서버에 허가하는 주체. 사용자가 이에 해당리소스 서버: 리소스 오너의 정보를 가지고, 보호하는 주체. 네이버, 구글, 카카오 등인증 서버: 클라이언트에게 리소스 오너의 정보에 접근할 수

이번에는 스프링 시큐리티, OAuth2(구글, 카카오), Jwt (Access Token, Refresh Token) 까지 모두 이용하여 소셜로그인을 구현해보자!!제3의 서비스에 계정 관리를 맡기는 방식리소스 오너: 자신의 정보를 사용하도록 인증 서버에 허가하는 주체.

토큰 로그인 시 JWT 오류들에 대해 예외 처리 시 @ControllerDevice로 처리되지 않았던 문제를 해결해보려고 한다.먼저 스프링이 요청을 처리하고 응답하는 구조를 보자.client에서 요청이 들어오면, Web Context에서 filter를 거치게 된다. f

AuthenticationException과 AuthrizationException은 ExceptionTranslationFilter에서 처리된다. 하지만Oauth2Filter에서 AuthenticationException을 발생시키면, ExceptionTransla