Apache Shiro is a security framework that provides authentication, authorization, cryptography and session management. It uses a SecurityManager to centrally manage security operations. A Realm acts as a bridge to connect Shiro to the application's security data source. Shiro supports user login via tokens, role-based authorization checks and permission-based authorization checks. It also provides hashing functions for cryptography and remembers user sessions.