#authentication
글
-
MariaDB 소스 파헤치기 4: 연결과 스레드 — 연결마다 스레드 하나, 그리고 스레드 풀
mariadbd 의 메인 스레드가 poll() 로 접속을 받아 CONNECT 를 만들고, thread_handling 이 고른 스케줄러(함수 포인터 묶음)에 넘기기까지를 소스로 따라갑니다. 연결마다 스레드 하나를 두는 기본 모드와 스레드 캐시, THD 를 만들고 인증하는 로그인 단계, 그리고 스레드 그룹·리스너·워커·timer_thread 로 이루어진 스레드 풀이 놀고 있는 연결을 스레드에서 떼어 내는 방법을 ps·information_schema·gdb 실행 결과로 확인하고, httpd 의 MPM·Tomcat 의 엔드포인트와 비교합니다.
-
Apache httpd 소스 파헤치기 13: 인증과 권한 — Require 한 줄은 어떻게 판정되나
httpd.conf 의 AuthType Basic, AuthUserFile, Require valid-user, <RequireAll> 이 소스에서 어떻게 움직이는지 따라갑니다. "누구인가"를 묻는 인증과 "들어와도 되는가"를 묻는 권한이 왜 다른 모듈로 나뉘었는지, 이름으로 갈아 끼우는 프로바이더, Require 트리와 GRANTED·DENIED·NEUTRAL 판정, 그리고 같은 판정을 두 번 돌리는 request.c 의 순서를 실제 소스와 예제 출력으로 확인합니다.
-
Tomcat 소스 파헤치기 14: 인증과 Realm — security-constraint는 어떻게 지켜지나
web.xml 의 security-constraint 와 login-config, server.xml 의 Realm, tomcat-users.xml 이 소스에서 어떻게 이어지는지 따라갑니다. 웹앱이 시작될 때 Authenticator 밸브가 끼워지는 자리, AuthenticatorBase.invoke() 의 검사 순서, URL 에 걸린 제약을 고르는 네 번의 검색, BASIC 과 FORM 의 차이, Realm 과 CredentialHandler 의 역할을 실제 소스와 401·403·303 응답으로 확인합니다.