Http Basic 인증

존스노우·2023년 8월 14일
0

springSecurity

목록 보기
6/75
post-thumbnail

HTTP Basic 인증

  • HTTP는 액세스제어 / 인증 을 위한 프레임웍 제공

  • 가장 일반적인 인증 방식은 Basic

  • RFC 7235 표준 인증 프로토콜은 HTTP 인증 헤더에 기술 됨.

  • Id / pw 을 basic으로 인코딩해서 보냄

HttpBasicCongigurer

  • BasicAuthenticationEntryPoint

  • 클라이언트 요청에서 인증처리요청할 때 리스폰스헤더에 -> 401 처리를 위한 값을 클라이언트로 전달 할때 도 사용됨 .

  • 스프링 시큐리티는 모든 인가처리는 필터기반으로 처리!

  • 여기도 BasciAuthenticationFilter 도 인가 처리

  • 필터 안에는 BasicAuthenticationConverter가 있음

  • 클라이언트가 reqeust 헤더에 인증 베이직 등 . 헤더에 실어서 요청하는데.

  • 이런 것들에 유효성 체크.

  • 일반적인 폼인증에는 세션기반이라 다시 인증 하지않아도됨 .

    코드 흐름

  • convert 파싱 해서 유저이름 pw 추출

  • 인증 객체를 만들고(User_pw 저장) -> 인증 처리

  • 인증을 받았는지 안받았는지 확인

처리과정

인증받지 못하고 처리 됬을 때

인증을 해야되니..

  • 위에 나오는데로 서버에서 헤더에 담아 내용을 보냄 ( 기본인증이라 브라우저가 띄워줌)

  • 취소 버튼 시...

로그인시

  • 인코딩된 문자열이 헤더에 실려서 인증됨

시작

  • 초기화 시작

  • 베이직 EntryPoint 사용

  • 실제 인증을 사용하기위한 객체 사용

  • 로그인 하면?

  • 아무것도 인증안해 null 처리를 하지 않음.

  • 아무것도 인증안해 null 처리를 하지 않음.
  • 취소를 하면 401
  • 로그인을 하게되면

  • 필터가 받게 되고

  • 실제 유저명 패스워드 추출해서 인증객체에 저장

  • 해당 객체를 가지고 인증

  • 전에 이미 인증 처리 한적이 있니?

  • 세션에 저장

  • 그리고 응답

  • httpSessionSecuritycontextRepository에서 세션에 디비역활?

  • 세션에 있니 이런것도 확인가능

세션 사용하지 않는 설정

  • 스프링 컨텍스트 객체를 새로 만들어버림
  • 세션을 사용하지않을 때는 세션안에 컨텍스트를 담는 과정 자체가 없다.

basic 인증처리인데 흐음 .. 언제다시 처음부터 정리를 해야될거같다.

profile
어제의 나보다 한걸음 더

0개의 댓글