Spring Security 개요
Spring Security는 Java 기반의 웹 애플리케이션에서 보안 기능을 제공하는 Spring 프로젝트의 하나입니다. 이 프레임워크는 인증(Authentication) 및 권한 부여(Authorization)와 같은 주요 보안 기능을 제공하며, 다양한 보안 기준을 충족하기 위한 확장성 있는 아키텍처를 갖추고 있습니다.
Spring Security의 주요 특징:
1. 인증 (Authentication) : 사용자가 누구인지 확인하는 과정. Spring Security는 다양한 인증 메커니즘을 제공합니다. (예: 폼 기반 로그인, LDAP, OAuth2 등)
2. 권한 부여 (Authorization) : 인증된 사용자가 어떤 리소스에 접근할 수 있는지를 결정하는 과정. Spring Security는 메서드 레벨에서부터 웹 요청 레벨까지 다양한 권한 부여 전략을 제공합니다.
3. CSRF (Cross-Site Request Forgery) 방지 : Spring Security는 웹 애플리케이션을 CSRF 공격으로부터 보호하는 기능을 기본적으로 제공합니다.
4. 세션 관리: 사용자의 세션을 관리하며, 세션 고정 공격 및 세션 타임아웃과 같은 이슈를 다룰 수 있는 기능을 제공합니다.
5. CORS (Cross-Origin Resource Sharing) 지원 : 서로 다른 도메인 간의 요청을 안전하게 처리할 수 있도록 CORS 설정을 도와줍니다.
6. Remember Me : 사용자가 웹사이트를 나중에 다시 방문했을 때 자동 로그인할 수 있도록 하는 기능을 제공합니다.
7. 인증 및 권한 부여 저장소 : In-memory, JDBC, LDAP 등 다양한 저장소를 지원하여 사용자 정보 및 권한 정보를 저장하고 관리할 수 있습니다.
8. OpenID, OAuth, JWT 등의 지원 : 다양한 인증 방식을 지원하여 현대의 웹 및 모바일 애플리케이션 보안 요구 사항을 만족시킵니다.
이외에도 Spring Security는 여러 가지 보안 기능과 확장성을 제공하여, 웹 애플리케이션의 보안을 강화하는 데 매우 유용합니다.
Spring Security FormLogin 동작방식 설명