스프링 시큐리티
를 처음 접하는 사람들이 정확하게 이해해서 인증
, 인가
처리를 구현하는 것은 쉽지 않다.
나 또한 스프링 시큐리티의 진입 장벽이 낮지 않다고 생각하고 단순히 구글링해서 클론코딩으로만 인증
, 인가
를 구현하는 것은 썩 좋지 않다고 생각한다.
때문에 이번 기회에 Spring Security docs를 읽어보면서 스프링 시큐리티의 동작원리
, 인증
, 인가
등등 자세히 알아보자.
스프링 시큐리티를 사용하려면 Maven
또는 Gradle
을 이용하여 종속성을 업데이트 하면 된다고 한다.
<dependencies>
<!-- ... other dependency elements ... -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
</dependencies>
dependencies {
compile "org.springframework.boot:spring-boot-starter-security"
}
의존성을 추가한 뒤 서버를 실행시키면 아래와 같은 화면이 나타난다.
Spring Boot
는 자동으로 Spring Security
의 기본 구성(서블릿 Filter
와 springSecurityFilterChain
)을 활성화한다.
Filter
와 springSecurityFilterChain
은 빈
이며, 이는 응용 프로그램 내에 모든 보안(응용 프로그램 URL 보호
, 사용자 이름 및 비밀번호 확인
, 로그인 양식으로 리디렉션
등)을 담당한다고 한다.
Spring Boot는 많은 설정을 하지는 않지만 많은 작업을 수행할 수 있다.(Spring Security 덕분에)
user
와 콘솔에서 제공하는 비밀번호를 사용하여 인증BCrypt
를 사용해서 비밀번호를 암호화
CSRF
공격 방지