인프런 커뮤니티 질문&답변

개발중님의 프로필 이미지
개발중

작성한 질문수

스프링 시큐리티

2) 사용자 정의 보안 기능 구현

httpBasic() 설정

작성

·

4.2K

1

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
안녕하세요.
http.httpBasic(); 있고 없고의 차이는 무엇이고 어떻게 확인할 수 있는지 궁금합니다.
설정이 있던 없던 http header에 Authorization: Basic dXNlcjoxMTEx 는 나옵니다.
그리고 restful api 인증 경우에 http기본 인증을 사용하지 않는지도 추가로 문의드립니다.

답변 1

3

정수원님의 프로필 이미지
정수원
지식공유자

http.httpBasic() 을 설정하게 되면 HttpBasic 인증을 할 수 있는 기능이 활성화 됩니다.

다만 http.formLogin() 과 같이 설정을 할 경우 formLogin 이 우선적으로 적용이 되니 formLogin 설정을 하지 않고 테스트 해 보시면 HttpBasic 인증을 받아야만 접근이 가능한 리소스 일 경우 브라우저에 프롬프트 인증창이 나타나게 됩니다.

인증창에 직접 아이디와 비밀번호를 입력해서 인증을 받을 수 있고 만약 request header 에 Authorization: Basic dXNlcjoxMTEx 와 같은 값을 설정한 상태에서 서버로 요청하게 되면 프롬프트 창이 나타나지 않고 바로 인증이 가능하게 됩니다

주의 하실 점은 HttpBasic 인증 방식은 인코딩된 아이디와 패스워드 문자열이 암호화가 안되어 있기 때문에 반드시 ssl 과 같은 보안 프로토콜로 통신해야 안전합니다.

그리고 HttpBasic 을 커스트마이징 해서 rest api 로 사용하셔도 됩니다.
다만 위에서 말씀드린 것 처럼 보안에 안전하도록 구현하셔야 됩니다.

그래서 rest api 는 상대적으로 보안에 안전한 OAuth2 인증이나 Jwt 인증방식을 사용하는 추세입니다.

개발중님의 프로필 이미지
개발중

작성한 질문수

질문하기