들어가며...
Spring Security를 사용하여 간단한 로그인 및 회원가입 어플리케이션 구현을 진행해 보려 합니다. 전체 어플리케이션의 내용은 Spring Security의 내용 보다 다른 기술에 대한 내용이 많아질 듯 하지만 되도록 해당 기술들에 대해서도 간략하게 정리하면서 진행하고자 합니다.
- Table of Contents
- Spring Security란?
- 어플리케이션 개요
- 사용된 기술 및 항목 정리
Spring Security란?
간략하게 정의하면 Spring Security란 Java 기반으로 구현된 인증(Authentication) 및 권한(Authorization)을 관리하고 이를 사용자가 Customize할 수 있도록 작성된 프레임워크입니다.
HTTP 요청에 대한 인증 및 인증된 요청(또는 사용자)에 대한 권한을 검사함으로써 인증된 요청 및 인가된 데이터에 대해서만 정상 동작토록 하여 어플리케이션을 부당한 공격으로 부터 보호하는 것이 목적일 것입니다.
Spring Security에는 많은 내용 및 기술을 포함하고 있으나 필자가 현재까지 전체 내용을 파악하고 학습이 이루어진 상태가 아닌지라 이번 글에서는 Spring Security중 Form기반 로그인 및 회원가입 어플리케이션을 구현하면서 간략하게 Spring Security에 대해서 알아보고자 합니다.
Spring Security에 대한 설명은 잘 정리된 글이 있어 해당 사이트 링크로 대체하겠습니다.
https://springbootdev.com/2017/08/23/spring-security-authentication-architecture/#more-54
https://spring.io/guides/topicals/spring-security-architecture
어플리케이션 개요
본 어플리케이션은 Spring Security관점에서 아래와 같이 크게 4가지 항목을 다루게 됩니다.
- 회원가입 요청 시 사용자의 권한 저장 예제
- 로그인 요청 시 사용자 인증 예제
- 사용자 권한에 따른 페이지 접근 성공 및 실패 예제
- 기타 (패스워드 암호화, WebSecurity 설정 등등...)
● 화면 중심의 구성도
● 전체 프로젝트 구성
사용된 기술 및 항목 정리
앞서도 언급하였듯이 주제는 Form 기반 Spring Security이지만 실제로 해당 기능을 구현하려면 다양한 기술들이 필요하게 됩니다. 해당 기술 하나하나를 자세히 다루기에는 해당 것들의 범위가 너무 크기 때문에 자세한 설명은 못하겠지만 간략하게라도 해당 기술들에 대한 설명을 하려합니다.
추후 기회가 된다면 아래 기술한 항목들에서도 자세하게 다루는 시간을 가지고자 합니다.
● 사용된 기술
- JDK 1.8
- Spring Boot 2.2.5
- Spring Security 5.2.2
- JPA (Spring Data JPA 2.2.5)
- H2 database
- Bootstrap 4.4.1
- Thymeleaf 2.2.5
- Validation
- Error Handling
마무리...
Spring Security 에 대한 연재를 시작하면서 혹시 잘못된 부분이 있으면 코멘트 부탁드립니다.
U2ful은 ♥입니다. @U2ful Corp.