인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

Inflearn Community Q&A

으흐으응's profile image
으흐으응

asked

Spring Security

2) Filter initialization and multi-security settings

질문 있습니다!

Written on

·

275

0

antMatcher("/admin/**")

.authorizeRequests()

.anyRequest().authenticated()

.and()

.httpBasic();

이라는 구문이 /admin 으로 들어온 모든 요청에 대해 인증된 사용자만 접근을 허용하고, 인증은 httpBasic() 방식 (request에 id, password를 받아 사용자 인증 처리)으로 수행한다 라고 해석해도 되나요??

그리고 최초 admin 접근 시에는 id, password 입력 요청창이 뜨는데, 인증 성공 이후 서버를 재시작하거나, 서버에게 발급받은 Jsession Id를 쿠키에서 지워보아도 별다른 인증 처리 없이 admin 화면으로 이동합니다..  제 생각대로라면 재시작된 서버의 시큐리티 컨텍스트에는 인증 정보가 없을 뿐더러, 클라이언트에서 온 JsessionID 또한 Null이니 당연히 재 인증을 받아야 한다고 생각해는데요..  왜 인증 절차 없이 넘어가는 건지 궁금합니다.

Spring Securityjavaspring-boot

Answer 2

8

leaven님의 프로필 이미지
leaven
Instructor

1. /admin 으로 들어온 모든 요청에 대해 인증된 사용자만 접근을 허용하고, 인증은 httpBasic() 방식 (request에 id, password를 받아 사용자 인증 처리)으로 수행한다 라고 해석해도 되나요??

네 맞습니다.

2. 서버를 재시작하거나, 서버에게 발급받은 Jsession Id를 쿠키에서 지워보아도 별다른 인증 처리 없이 admin 화면으로 이동합니다

httpBasic 인증은 세션을 이용한 방식이 아닌 토큰을 이용하는 방식입니다

그래서 서버를 재기동하거나 JSESSIONID 값이 없어도 빨간테두리의 헤더값이 존재하는 한 인증이 이루어집니다.

그러나 base64 인코딩 방식으로 토큰이 생성되기 때문에 보안에 매우 취약합니다. 

반드시 ssl 로 통신이 이루어져야 합니다.

1

으흐으응님의 프로필 이미지
으흐으응
Questioner

정말정말 감사합니다. 궁금증이 싹 해소되었습니다!

으흐으응's profile image
으흐으응

asked

Ask a question