다양한 의존성 주입 방법은 이전 블로그를 참고 하시면될것 같습니다.
인증이란 사용자가 "누구" 인지를 증명하는 과정입니다.권한이란 인증된 사용자가어떤 작업을 수행할수 있는지를 결정하는 과정입니다.
Spring Security 를 사용하기 위해서는 아래의 의존성을 추가 해줘야 합니다.
implementation 'org.springframework.boot:spring-boot-starter-security'
http구성
SecuriyFilterChain: 스프링 빈으로 등록하여 보안을 설정합니다.- ❗❗❗ 핵심
permitAll()혹은authenticated(): 직전에 있던requestMatcher의url을 어떻게 처리할것인지 방식을 정하는 것입니다.- 빌더 패턴으로 보안 설정 메소드를 작성해줍니다.
form로그인 처리
- 위 사진의
http구성 로직에 추가하여 작성해줍니다.
formLogin이라는 메소드를 이용해 보안 설정을 해줍니다.
가장 기본적인 사용자 인증 방식
- 사용자가 로그인 페이지로 이동
- 서버는 사용자를 로그인 페이지로 이동시킴
- 사용자는 로그인 페이지를 통해 아이디와 비밀번호 전달
- 아이디와 비밀 번호 확인 후 사용자를 인식
➡ 이후 쿠키를 이용해 방금 로그인한 사용자를 세션을 이용해 기억한다.
HTTP 요청에는 상태가 없습니다. 여기서 발생하는 문제점은 ?우리가 흔히 로그인을 하고 로그인이 유지됩니다.
➡ 로그인이 유지 되지 않으면 매번 로그인을 다시 하거나, 장바구니에 있는 상품들이 다 없어지는 상황등이 벌어집니다.
쿠키와 세션 두개를 다 사용하는 이유 ❓
- 세션은 쿠키에 비해 보안도가 높은편입니다. 그럼에도 쿠키를 사용하는 이유는 세션은 서버에 저장되며 소모하는 자원이 상당해 쿠키에 비해 속도가 느립니다.