목록분류 전체보기 (78)
개발자

이제 spring security의 작동원리에 대해 알아보았고 JWT를 이용해서 로그인을 구현하는 방법을 알아보겠습니다. 스프링 시큐리티는 기본적으로 세션을 기반으로 한 인증이 진행되는데, JWT(Json Web Token)는 말그대로 토큰을 이용하여 인증을 처리하게 됩니다. 세션과 토큰의 차이점과 토큰을 이용해서 로그인을 구현하게 된 이유는 추후 포스팅한 후 링크를 걸겠습니다. JWT 란? JWT는 일반적으로 클라이언트와 서버 통신 시 권한 인가(Authorization)을 위해 사용하는 토큰입니다. Json 포맷을 이용하여 사용자에 대한 속성을 저장하는 Claim 기반의 Web Token으로 JSON 객체를 사용하여 토큰 자체에 정보를 저장하는 Web Token입니다. JWT는 토큰 자체를 정보로 사..

JWT 토큰을 이용해서 로그인을 구현하기 전 스프링 시큐리티를 먼저 적용해려보려고 합니다. 저번 포스팅에서 암호화할때 스프링 시큐리티를 다뤘지만 동작원리는 다른 블로그로 갈음했었는데요. 확실히 동작원리를 알고있지 않으면 원하는대로 필터나 인터셉터등을 커스텀하기가 어렵습니다 . 때문에 이번 포스팅에서 스프링 시큐리티 동작원리를 자세히 살펴도록 합시다 스프링 시큐리티란? 스프링 시큐리티 (Spring Security)는 스프링 기반 어플리케이션의 보안(인증과 권한, 인가)을 담당하는 스프링 하위 프레임워크입니다. 보안과 관련해서 체계적으로 많은 옵션들을 제공해주기 때문에 개발자의 입장에서는 하나하나 보안 관련 로직을 작성하지 않아도 된다는 장점이 있습니다. 저번 포스팅 에서 썻듯이 시큐리티는 인증과, 인가가..

Spring Security를 구현하면서 그 동작원리를 이해하기 위해서는 Spring boot에서 request요청이 들어왔을때 어떤 단계로 처리되는지를 알아야 할 필요가 있다. 구현하는데 급급해서 구현했지만 이론을 잘 모르니 필터나 커스텀이필요한 클래스들을 찾지못해 난감한 경우가 많았다. 차근차근 처리단계부터 공부를 시작해보자. 요청이 들어오면 위의 그림처럼 처리되는 흐름이다. 하지만 실제로는 Interceptor가 Controller로 요청을 위임하지는 않으므로, 아래의 그림은 처리 순서를 도식화한 것으로만 이해하고 자세한건 아래에서 살펴보자. 1. Filter 2. DispatcherServlet 3. Interceptor 4. Controller 이런 단계를 거쳐 controller를 지나게 되는..

로그인을 구현하기 앞서 패스워드를 먼저 암호화해줄 필요가 있어졌다. 이번 로그인은 spring secutiry를 이용해 구현해줄 것이기 때문에 패스워드도 spring security를 이용해서 해보겠다 Spring Security가 뭐지? Spring Security는 Spring 기반의 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임워크이다. Spring Security는 '인증'과 '권한'에 대한 부분을 Filter 흐름에 따라 처리하고 있다. Filter는 Dispatcher Servlet으로 가기 전에 적용되므로 가장 먼저 URL 요청을 받지만, Interceptor는 Dispatcher와 Controller사이에 위치한다는 점에서 적용 시기의 차이가 있다. Spring..

저번 포스트에 이어서 이번포스팅에는 멀티모듈로 프로젝트 구조를 직접 바꿔보겠습니다 저번 글에 있듯이 저의 원래 프로젝트 구조는 이렇게 되어있습니다. 루트 모듈 하나만 존재하는 상태. 이제 모듈을 나누기 전에 루트 모듈에있는 build.gradle 파일을 변경해 줍니다! plugins { id 'java' id 'org.springframework.boot' version '2.7.8' id 'io.spring.dependency-management' version '1.0.15.RELEASE' } repositories { mavenCentral() } subprojects { group = 'workFlow.WFrefactoring' version = '0.0.1-SNAPSHOT' sourceCompa..