Apache Shiro는 자바 기반의 강력한 보안 및 인증/인가 프레임워크입니다. Shiro는 다양한 구성 요소로 구성되어 있어 강력한 보안 기능을 제공합니다.
Subject
Subject는 Shiro의 핵심 개념 중 하나로, 애플리케이션에 접근하는 주체를 나타냅니다. 주체는 현재 사용자, 프로세스, 기계 등 어떤 것이든 될 수 있습니다. Shiro는 주체의 상태, 세션 정보 등을 관리하고 인증 및 인가를 수행하는데 사용됩니다.
Realm
Realm은 Shiro에서 인증 및 인가를 처리하는 구성 요소입니다. Realm은 주체와 애플리케이션의 보안 데이터베이스 또는 데이터 저장소와 상호 작용하여 인증 및 인가를 수행합니다. 사용자 정보, 로그인 정보, 역할, 권한 등의 데이터를 Realm에서 가져와 주체의 인증 및 인가를 수행할 수 있습니다.
Authenticator
Authenticator는 주체의 인증을 처리하는 Shiro 구성 요소입니다. 주체의 신원을 확인하고 인증을 성공 또는 실패로 처리합니다. Authenticator는 주체의 자격 증명을 확인하는 방법을 결정하고, 주체와 Realm 간의 상호 작용을 관리합니다.
Authorizer
Authorizer는 Shiro의 인가를 처리하는 구성 요소입니다. 주체가 특정 작업, 리소스 또는 기능에 대한 액세스 권한이 있는지 확인합니다. Authorizer는 주체의 역할과 권한을 기반으로 인가 결정을 수행하며, 인가가 거부된 경우 애플리케이션에 맞는 실패 응답을 생성합니다.
Session Manager
Session Manager는 Shiro에서 세션 관리를 처리하는 구성 요소입니다. 세션은 주체의 상태 정보를 유지하고, 주체의 인증 및 인가를 지속적으로 유지하는 데 사용됩니다. Session Manager는 세션의 생성, 소멸, 유효성 검사 등을 수행하며, 필요한 경우 세션 저장소와 상호 작용하여 세션 데이터를 유지합니다.
Session Store
Session Store는 Shiro에서 세션 데이터를 유지하는 역할을 담당하는 구성 요소입니다. 세션 데이터는 일반적으로 메모리, 파일, 데이터베이스 등에 저장됩니다. Shiro는 다양한 세션 저장소를 지원하므로 애플리케이션의 요구 사항에 맞는 적절한 저장소를 선택할 수 있습니다.
Conclusion
Apache Shiro는 주체의 인증 및 인가를 처리하기 위해 다양한 구성 요소를 제공합니다. 주체, Realm, Authenticator, Authorizer, Session Manager, Session Store는 Shiro의 핵심 구성 요소 중 일부입니다. 이러한 구성 요소를 적절하게 구성하면 안전하고 보안적인 자바 기반 애플리케이션을 개발할 수 있습니다.
참고:
- Apache Shiro 공식 문서: https://shiro.apache.org/documentation.html