Autoconfigure 개요

import selector, 기본 플랫폼 구성, identity/core 와이어링을 통해 Contexa OSS 런타임 제어 플레인이 부트스트랩되는 방식을 설명합니다.

부트스트랩 체인

런타임 부트스트랩은 @EnableAISecurity에서 시작하고, 이 어노테이션이 AiSecurityImportSelector를 import합니다. 해당 selector는 autoconfigure 모듈의 AiSecurityConfiguration을 로드합니다.

기본 플랫폼 와이어링

AiSecurityConfiguration은 애플리케이션이 명시적 PlatformConfig를 정의하지 않을 때 IdentityDslRegistry를 통해 기본 구성을 제공합니다.

Identity/Core 통합

IdentitySecurityCoreAutoConfiguration은 identity bootstrap, zero trust 필터, audit/event 와이어링, OSS 런타임 경로에 필요한 보조 인프라를 조립합니다.

모듈별 Auto-Configuration

contexa-autoconfigure 모듈은 META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports를 통해 auto-configuration을 등록합니다. 아래 표는 모듈별 주요 진입점만 나열한 것이며, 전체 import 목록에는 기능별 구성(CoreLLMTieredAutoConfiguration, CoreAdvisorAutoConfiguration, CoreRAGAutoConfiguration, CoreStreamingAutoConfiguration), IAM XACML 체인(IamXacmlPap/Pdp/Pep/Pip/PrpAutoConfiguration), IAM Admin 콘솔, Identity StateMachine/MFA/WebAuthn/OAuth2 구성이 포함됩니다. AiSecurityConfiguration은 imports 파일에 등록되지 않고 @EnableAISecurityAiSecurityImportSelector를 활성화할 때만 로드됩니다.

Auto-Configuration패키지역할
AiSecurityConfigurationio.contexa.autoconfigure.aiAiSecurityImportSelector가 import. platformDslConfig()(@ConditionalOnMissingBean)로 기본 PlatformConfig 제공.
IdentitySecurityCoreAutoConfigurationio.contexa.autoconfigure.identityIdentity DSL, zero-trust 필터 체인, 인증 흐름, 세션 통합을 조립.
CoreInfrastructureAutoConfigurationio.contexa.autoconfigure.core.infracontexa.infrastructure.mode(STANDALONE/DISTRIBUTED)에 따라 인메모리 또는 분산 인프라 Bean을 프로비저닝.
CoreLLMAutoConfigurationio.contexa.autoconfigure.core.llmDynamicModelRegistry, UnifiedLLMOrchestrator, Ollama/OpenAI/Anthropic 프로바이더와 contexa.llm.* 런타임 와이어링.
CoreHCADAutoConfigurationio.contexa.autoconfigure.core.hcadHost & Context Anomaly Detection(HCAD) 필터, 기준선 학습, hot-path 임계값 구성.
IamInfrastructureAutoConfigurationio.contexa.autoconfigure.iam메서드 레벨 강제를 위한 AuthorizationManagerMethodInterceptor + ProtectableMethodAuthorizationManager 등록. XACML 체인(PAP/PDP/PEP/PIP/PRP)은 별도의 IamXacml*AutoConfiguration 클래스에 분리됨.
IamSecurityCoreAutoConfigurationio.contexa.autoconfigure.iamSessionIdResolver(인메모리 또는 Redis) 및 SecuritySessionProperties 바인딩 해석.
CoreAutonomousAutoConfigurationio.contexa.autoconfigure.core.autonomous비동기 이벤트 파이프라인 기동: 순서화된 핸들러 체인을 가진 SecurityEventProcessorSecurityPlaneAgent 등록. 동반 CoreAutonomousEventAutoConfigurationColdPathEventProcessor를 등록하고, CoreAutonomousStrategyAutoConfiguration이 Layer 1/2 전략을 와이어링함.

조건부 활성화

Auto-configuration은 @ConditionalOnProperty로 게이팅되어 standalone과 distributed 토폴로지가 동일 classpath를 공유합니다.

  • contexa.infrastructure.mode=standalone (기본값, matchIfMissing = true) — 인메모리 ZeroTrustActionRepository, 인메모리 캐시, 로컬 이벤트 버스 활성화.
  • contexa.infrastructure.mode=distributed — Redis 기반 action 저장소, Redis 캐시, Kafka 이벤트 스트리밍(분산 변형이 정의된 곳) 활성화.
  • contexa.enabled=false — 전체 플랫폼을 비활성화하는 마스터 스위치로, Spring Security를 기본 구성 상태로 유지.