쇼핑몰 만들기 프로젝트 - spring security와 로그인
1. spring security
- 인증, 권한 부여 및 기타 보안 기능을 제공하는 Java/Java EE 프레임워크
인증(Authentication), 인가(Authorization)?
- 인증: 해당 사용자를 확인하는 작업
- 인가: 해당 사용자의 권한을 확인하는 작업
2. spring security을 이용한 로그인?
2-1. 스프링 시큐리티와 필터
2-2. 로그인 폼을 사용할 경우?
- 로그인 폼을 사용해서 로그인을 진행한다면 인증 처리는 아래와 같이 진행될 것이다.
- 일단 인증처리를 위한 필터로는
UsernamePasswordAuthenticationFilter
를 사용해서 진행하게 될 것이다.
(다른 authenticationFilter는 로그인 폼을 사용할 경우가 아닌 다른 경우에 사용하게 된다. 로그인 폼을 사용할 경우엔 이 필터를 사용해서 인증을 진행)
1. UsernamePasswordAuthenticationFilter
- 해당 필터를 상속받거나 해당 필터를 사용해서 로그인 폼을 사용해서 사용자 인증을 받으려 할 때를 작업해주어야 한다.
- 쉽게 말해서 로그인 폼 인증 작업에 사용하는 필터라는 뜻
2. UsernamePasswordAuthenticationToken
- user name, user password를 사용해서 해당 토큰을 발급 받는다.
3. AuthenticationManager
- 발급받은 토큰을 authenticationManager에게 인가를 위임한다.
4. 후처리(성공, 실패)
성공한 경우
- successfulAuthentication() 메소드를 상속받아 개발자 입맛에 맞게 구현해서 사용하면 됨
- 인증 성공 후처리 작업을 진행
실패한 경우
- 실패 핸들러를 작성해서 진행
- 다시 로그인 페이지로 redirect 하는 등의 작업을 여기서 진행