본문 바로가기

Back-End/Security5

Spring Security 동작 및 구조에 대한 심화 학습 최근에 Spring Security를 구현하고 있는데, 기존의 Form 방식이 아니며, JWT 토큰을 사용하지 않고 REST API + 자동로그인을 구현하면서 실제로 어떤 클래스들이 동작하는지 그리고 구조를 더 이해하기 위해서 공부를 하는 겸 Spring Security 에 대해 추가적으로 포스팅합니다. 기본적인 동작구조는 아래 링크에 작성은 해뒀습니다. https://awse2050.tistory.com/98?category=882914 Spring Security 동작 과정 JWT를 사용하기 전 여러모로 깨우친게 생겨서 추가로 정리하게 되었다. Spring Security 기반으로 JWT 를 사용하려면 Security 구현체를 직접 구현시켜서 사용해야 하기 때문에 어느정도 알 필요는 있다. awse2.. 2022. 9. 6.
Spring Security + JWT (2) 자세한 예외 처리 로직이나 DTO는 생략했습니다. Spring Security 기반으로 JWT토큰을 구현할 경우 기존의 Security의 세션&쿠키 방식의 통신에서 설정을 변경해줘야 한다. Config 설정 @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers("/h2-console/**") .permitAll() .antMatchers("/v1/**") .permitAll() .and() .headers() .frameOptions().sameOrigin() // H2 Page XFrame Error .and() // form 로그인 비활성화 .formLogi.. 2022. 4. 18.
Spring Security + JWT (1) 토큰 기반 인증 시스템의 대표적인 예시로 JWT(Json Web Token) 을 포스팅해보려고 합니다. 구현 코드관련 포스팅은 추후에 쓰겠습니다. Spring Security를 기반으로 JWT를 구현하기 위해서는 Security의 동작방식을 이해하고 추상클래스나 인터페이스를 구현할 줄 알아야 합니다. 간단하게 예시.. @Override public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response) throws AuthenticationException { if (this.postOnly && !request.getMethod().equals("POST")) { throw new Auth.. 2022. 4. 15.
Spring Security 동작 과정 JWT를 사용하기 전 여러모로 깨우친게 생겨서 추가로 정리하게 되었다. Spring Security 기반으로 JWT 를 사용하려면 Security 구현체를 직접 구현시켜서 사용해야 하기 때문에 어느정도 알 필요는 있다.. 기본적으로 Spring Security는 다음과 같은 구조로 동작을 한다. Spring Security의 가장 핵심 개념은 인증과 인가이다. Spring Security 내부에는 여러개의 필터가 Filter Chain 구조로 요청을 처리한다. 대표적인 Filter로 AbstractAuthenticationProcessingFilter 추상클래스가 있는데 이 클래스만 해도 5개정도의 구현클래스가 존재한다. 공식사이트에서 확인할 수 있다. https://docs.spring.io/sprin.. 2022. 4. 15.
서버와 토큰 기반 인증 시스템의 차이 서버 기반 인증 시스템 기존 인증의 시스템은 서버측에서 사용자들의 정보를 기억하고 있어야 한다. 사용자의 정보를 기억하려면 세션을 유지해야 했는데, 그러기 위해서는 클라이언트의 정보를 DB 또는 메모리에 저장을 해둬야 한다. 그렇게 해서 클라이언트의 요청을 받으면, 클라이언트의 상태를 계속 유지하면서 정보를 서비스에 이용을 하는데, 이러한 서버를 Stateful 서버라고 한다. 대표적인 예시로 Spring Security가 있다. 이러한 인증 방식은 소규모 시스템에는 적합할지 모르지만, 요즘에는 MSA 구조로 처리기술에 대한 트렌드가 바뀌면서 오히려 부적합한 인증 시스템으로써 문제가 생기고 있다. 세션 사용자가 인증시 서버가 저장하는 정보를 보통 세션이라고 칭한다. 대부분 메모리에 저장을 하게 되고, 세.. 2022. 4. 15.