YahooAuthenticator

Yahoo Finance API 인증을 관리하는 주요 클래스입니다.

이 클래스는 다음 책임을 가집니다:

  1. 인증 전략 관리 및 실행

  2. 인증 결과 캐싱 및 재사용

  3. 동시성 제어 (Mutex를 사용한 스레드 안전성)

  4. 인증 유효성 검증 및 자동 갱신

동시성 제어:

Mutex를 사용하여 다중 코루틴이 동시에 인증을 수행하는 것을 방지합니다. 이를 통해 불필요한 네트워크 요청을 줄이고 안정성을 향상시킵니다.

캐싱 전략:

  • authResult는 @Volatile로 선언되어 메모리 가시성을 보장합니다

  • 캐시된 인증이 유효하면 재사용

  • 캐시된 인증이 만료되었으면 재인증

Constructors

Link copied to clipboard
constructor(httpClient: HttpClient)

Functions

Link copied to clipboard
suspend fun applyAuth(builder: HttpRequestBuilder)

HttpRequestBuilder에 CRUMB을 쿼리 파라미터로 추가합니다.

Link copied to clipboard
suspend fun authenticate(): AuthResult

Yahoo Finance API 인증을 수행합니다.

Link copied to clipboard
suspend fun getCachedAuth(): AuthResult?

현재 캐시된 인증 상태를 반환합니다.

Link copied to clipboard
suspend fun getCrumb(): String

캐시된 CRUMB 토큰을 획득합니다.

Link copied to clipboard
suspend fun reset()

캐시된 인증 결과를 초기화합니다.