security-context.xml 참고해서 파악한 시큐리티 로그인 흐름
0. 로그인
1. (내부 컨트롤러)에서 서비스 호출
2. CustomerUserDetailsService
1) read()[우리가 정의해준 메소드]를 통해 직원 DB가져옴
2) DAOMapper.xml 참고
- read() : emp_id, emp_pw, emp_name, emp_level을 가져온다
- 이 값이 세션에 저장됨
3) 가져와서 Member객체에 일단 넣고, 권한(emp_id, emp_level) 데이터는 다시 한번 Auth 객체를 생성해 Member 객체에서 변수로 가진다.
4) 리턴된 Member객체를 컨트롤러로 넘겨줌 (여기서 컨트롤러는 시큐리티가 제공하는 내장 컨트롤러라 확인 불가)
3. (내부 컨트롤러)에서 DB와 비교하여 로그인 처리 후 성공하면 세션에 설정
4. CustomLoginSuccessHandler : 권한에 따라 페이지 이동(redirect)시킴
시큐리티에서 넣어준 세션값 뷰단에서 불러오는 방법
- <sec:authentication property='principal.member.emp_pic' />
- emp_pic대신에 불러오고 싶은 필드명. 나머지는 고정값
시큐리티에서 넣어준 세션값 컨트롤러로 불러오는 방법
1. Get, Post 매핑 모두 : 시큐리티 관련 Principal & Authentication 객체 활용 :
자세한 방법 참고 →https://coding-nyan.tistory.com/127
2. Post매핑에서만 : 뷰단에서 hidden type의 input 만들고 value=<sec~~>해서 컨트롤러에서 name값으로 빼쓰기
'Spring > 스프링 프로젝트' 카테고리의 다른 글
| 스프링 프로젝트 개발순서 (0) | 2021.07.09 |
|---|---|
| 스프링 a태그에서 confirm 이용하기, 쿼리스트링으로 값 전달 (0) | 2021.07.06 |
| 프로젝트 import가 안될때 (0) | 2021.07.04 |
| 프로젝트 구현 중 Mybatis (0) | 2021.06.29 |
| 프로젝트 구현 중 에러 정리 (0) | 2021.06.24 |