[게시판 프로젝트] Spring Security를 이용한 로그인(1)

J_Eddy·2021년 12월 7일
0

인턴십 활동을 하면서 중고거래 컨셉의 게시판을 만들었다. 먼저 Spring Security를 이용하여 로그인 과정을 구현하려 한다.

📌 Spring Security 란?

Spring Security란 Spring 기반의 애플리케이션의 보안을 담당하는 프레임워크이다. Spring Security인증권한을 Filter 흐름에 따라 처리한다. Spring Security는 보안과 관련해서 많은 옵션을 체계적으로 제공해주어 개발자 입장에서 일일이 보안 관련 로직을 작성하지 않아도 된다는 장점이 있다.

📌 인증과 권한

인증(Authentication)

인증(Authentication)은 해당 사용자가 본인 여부를 확인하는 절차

권한(Authorization)

인증된 사용자가 애플리케이션의 동작을 수행 할 수 있도록 허가되어있는지 확인하는 것

📌 모듈

Authentication

Authentication은 접근하는 주체의 정보와 권한을 담은 인터페이스로 SecurityContext에 저장된다.

SecurityContext

Authentication을 보관하며 해당 객체를 꺼내올 수 있다.

SecurityContextHolder

보안주체의 세부 정보를 포함하며, 현재 보안 컨텍스트에 대한 세부 정보가 저장된다.

📌 Spring Security 인증 과정

  • username과 Password를 통해 UsernamePasswordAuthenticationToken를 생성
  • 생성된 토큰의 검증을 위해 AuthenticationManager의 인스턴스로 전달
  • 인증에 성공하면 Authentication 인스턴스를 리턴하고 SecurityContextHolder에 저장된다.

UsernamePasswordAuthenticationToken

  • username이 Principal, password가 Credential역할을 한다

AuthenticationManager

  • 인증에 대한 부분을 처리한다.
  • 인증 성공 시 isAuthenticated-true객체 생성, 실패할 경우 AuthenticationException을 발생시킨다

📌 Spring Security 적용

Gradle에 추가

config 생성

MEMBER Table생성

MEMBER Entity, Dto생성

  • Entity
    • Role, Gender는 정해진 값이므로 Enum을 사용하여 생성

  • Dto

다음포스트에 이어서 작성!

profile
논리적으로 사고하고 해결하는 것을 좋아하는 개발자입니다.

0개의 댓글