- 사용자가 아이디 비밀번호로 로그인을 요청함
- AuthenticationFilter에서 UsernamePasswordAuthenticationToken을 생성하여 AuthenticaionManager에게 전달
- AuthenticaionManager는 등록된 AuthenticaionProvider(들)을 조회하여 인증을 요구함
- AuthenticaionProvider는 UserDetailsService를 통해 입력받은 아이디에 대한 사용자 정보를 DB에서 조회함
- 입력받은 비밀번호를 암호화하여 DB의 비밀번호화 매칭되는 경우 인증이 성공된 UsernameAuthenticationToken을 생성하여 AuthenticaionManager로 반환함
- AuthenticaionManager는 UsernameAuthenticaionToken을 AuthenticaionFilter로 전달함
- AuthenticationFilter는 전달받은 UsernameAuthenticationToken을 LoginSuccessHandler로 전송하고, SecurityContextHolder에 저장함
- https://github.com/MangKyu/SpringSecurity-Example으로부터 소스를 클론받는다.
- CREATE DATABASE security DEFAULT CHARSET UTF8;
- application.properties에서 DB username과 password를 개인에 맞게 변경해준다.
- 서버를 실행시킨다.
- http://localhost:8081/user/init 로 접속해서 사용자 데이터를 초기화 한다.
- index 페이지에 접속하여 실행한다.