파이널 프로젝트에서 스프링 시큐리티를 이용하여 로그인 로그아웃과 같은 계정 관리 기능을 맡았다! (+ 회원가입! )
프로젝트에서 회원가입과 로그인, 게시판이 비교적 배우고 시작하기 때문에 쉽다고 하는데,
지난 세미 프로젝트 때 다른 팀원이 헤매던 것도 봤고, 다른 팀에서 이메일 인증 같은 기능 구현을 한 것을 보면서
'로그인/회원가입 한번 해보고 싶다 !' 생각해서 맡게 되었다.
지난 세미 때 기본적인 기능보다 결제API를 이용한 상품 주문을 구현했기 때문에
오히려 기본으로 돌아가 내가 로그인/회원가입을 제대로 구현할 수 있는지 확인해봐야겠다고 느꼈다.
다행히도 지난 Servlet에서 하던 방식 그대로 진행하는 게 아니라, 스프링 시큐리티를 이용하여 인증과 인가에 대해 더 다양한 옵션으로 로그인 기능을 구현해볼 수 있게 되었다!
🔒Spring Security
아이디와 비밀번호를 입력해서 로그인하여 사용자를 인증(Authentication)하고 로그인 후 프로그램의 각각의 기능에 대한 권한을 부여(Authotization)하는 기능을 구현한 프레임워크 이다.
🔑Spring Security 특징
- 보안과 관련해서 체계적으로 많은 옵션들을 제공해서 편리하게 사용할 수 있음
- Filter 기반으로 동작하기 때문에 MVC와 분리되어 관리 및 동작
- XML과 어노테이션으로 설정가능
🔑보안 관련 용어
- 접근 주체 (Principal) : 보호된 대상에 접근하는 유저
- 인증(Authenticate) : 현재 유저가 누구인지 확인하는 과정 (Ex. 로그인)
- 인가(Authorize) : 현재 유저가 어떤 서비스나 기능에 사용(접근)할 수 잇는 권한이 있는지 검사
- 권한 : 인증된 주체가 기능을 사용할 수 있는지를 결정
🔑인증관리자와 접근 관리자
인증 관리자(Authentication Manager)와 접근 관리자(Access Decision Manager)를 통해서
사용자의 리소스 접근을 관리
인증 관리자(Authentication Manager)는 UsernamePasswordAuthenticationFilter가 하고,
접근 관리자(Access Decision Manager)는 FilterSecurityInterceptor가 수행한다.
'백엔드 과정 > Spring' 카테고리의 다른 글
[Spring] 🌿Spring Framework 란? (0) | 2022.03.22 |
---|---|
[Mybatis] Mybatis 란? (0) | 2022.03.15 |