유튜브 "개발자 유미"님 강의를 듣고 정리한 내용입니다.
출처 : https://docs.tosspayments.com/resources/glossary/basic-auth
로그인 시 username:password 문자열을 Base64 방식으로 인코딩하여 Basic과 함께 Http 인증 헤더에 부착한다. 그리고 서버 측으로 요청을 보낸다.
Base64는 쉽게 복호화가 가능하다. 단순 Base64로 인코딩된 인증 정보를 HTTP로 전달하면 요청의 보안이 보장되지 않는다. 그래서 Basic 인증을 사용하면 반드시 HTTPS, SSL/TLS로 통신해야 안전하다.
Basic 인증 방식은 단순하고 구축하기가 쉽다. 인증 정보로 username, password만을 필요로하기 때문이다.
하지만, 서버에 사용자 목록을 저장하기 때문에 사용자가 많거나, 사용자 변경이 잦은 서버에서 Basic 인증 방식을 사용하게 되면 서버에 부담이 커진다.
또한 Basic 인증 방식만으로는 사용자의 권한을 정교하게 제어하기 힘들다. Basic 인증 방식만으로 사용자 권한을 설정하려면 추가적인 설정이 필요하다.
기존에는 로그인을 할 때 폼 방식 로그인으로 진행했었다.
폼 방식 로그인을 위한 설정을 통해, 권한이 필요한 페이지에 접근할 때마다 설정해둔 페이지를 자동으로 보여주고, 로그인 후에 리다이렉팅까지 해결됐었다.
Http Basic 방식의 로그인 설정을 하면, 폼 방식 로그인에서와 마찬가지로 권한이 필요한 페이지에 접근할 때마다 Http Basic 방식의 로그인 창을 보여주고, 로그인 후에 리다이렉팅까지 해결해준다.
폼 방식 로그인을 위해서 Config에 추가했던 formLogin과 관련된 설정을 지우고, 다음을 추가하여 http basic 방식 로그인으로 변경할 수 있다.
http
.httpBasic(Customizer.withDefaults());