Spring Security란?
- 스프링 기반 어플리케이션의 보안(인증, 권한, 인가)을 담당하는 스프링 하위 프레임워크
- 왜 쓰는가?
- 보안과 관련해서 체계적으로 많은 옵션들을 제공
-> 개발자의 입장에서는 하나하나 보안 관련 로직을 작성하지 않아도 됨
인증(Authentication) vs 인가(Authorization)
- 인증: 사용자 신원을 확인하는 행위
- 인가: 사용자 권한을 확인하는 행위
웹에 접근하는 상황)- 인증: 로그인을 하는 행위
- 인가: 역할에 따른 사용 권한을 관리하는 행위
일반적인 Form Login 순서
AuthenticationProvider 인터페이스에서 DB에 있는 사용자의 정보를 가져오려면, UserDetailsService 인터페이스를 사용
UserDetailsService 인터페이스는 화면에서 입력한 사용자의 username으로 loadUserByUsername() 메소드를 호출 -> DB에 있는 사용자의 정보를 UserDetails 형으로 가져옴.