# apache/shiro

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/apache-shiro).**

4,432 stars · 2,298 forks · Java · Apache-2.0

## Links

- GitHub: https://github.com/apache/shiro
- Homepage: https://shiro.apache.org/
- awesome-repositories: https://awesome-repositories.com/repository/apache-shiro.md

## Topics

`java` `library` `shiro` `web-framework`

## Description

Shiro is a Java security framework that provides an identity and access manager for implementing authentication, authorization, cryptography, and session management. It serves as a security layer to verify user identities and enforce role-based access control for protected system resources.

The project features a pluggable realm architecture that decouples security logic from identity data and a standalone session management system that tracks user state independently of the underlying servlet container. It includes an integrator for external identity providers using federation protocols such as OAuth 2.0 and SAML to enable single sign-on.

The framework covers a broad capability surface including request interception through filter chains, declarative security enforcement via annotations, and the protection of sensitive data using symmetric and asymmetric cryptographic wrappers. It also provides utilities for caching security lookups and managing distributed session lifecycles across enterprise environments.

## Tags

### Security & Cryptography

- [Java Security Frameworks](https://awesome-repositories.com/f/security-cryptography/java-security-frameworks.md) — Provides a comprehensive security framework for authentication, authorization, and session management in Java applications.
- [Annotation-Based Security](https://awesome-repositories.com/f/security-cryptography/annotation-based-security.md) — Enforces access control by checking user permissions against roles defined via Java annotations. ([source](https://shiro.apache.org/security-model.html))
- [Pluggable Realm Architectures](https://awesome-repositories.com/f/security-cryptography/domain-based-access-controls/security-realms/pluggable-realm-architectures.md) — Features a pluggable realm architecture that decouples security logic from identity data sources.
- [HTTP Request Filtering](https://awesome-repositories.com/f/security-cryptography/http-request-filtering.md) — Filters HTTP requests to protect URL paths and endpoints by requiring specific authentication levels.
- [Identity and Access Management](https://awesome-repositories.com/f/security-cryptography/identity-access-management.md) — Acts as a security layer that verifies user identities and enforces role-based access control.
- [Generic Resource Authorization](https://awesome-repositories.com/f/security-cryptography/identity-access-management/authentication-strategies/authorization-and-user-administration/access-control-authorization/rest-resource-authorizers/generic-resource-authorization.md) — Evaluates permissions and roles to determine if a user is authorized to perform specific actions. ([source](https://cdn.jsdelivr.net/gh/apache/shiro@main/README.md))
- [User Identity Verification](https://awesome-repositories.com/f/security-cryptography/identity-authentication/user-identity-verification.md) — Verifies user identities by matching credentials against pluggable data sources such as LDAP or JDBC. ([source](https://shiro.apache.org/index.html))
- [Path-Based Access Rules](https://awesome-repositories.com/f/security-cryptography/network-infrastructure-security/web-network-security/network-security/network-routing-access-control/network-access-controls/path-based-access-rules.md) — Uses URL-based filter chains and path matching to intercept requests and enforce security constraints. ([source](https://shiro.apache.org/security-model.html))
- [SAML Integrations](https://awesome-repositories.com/f/security-cryptography/oidc-identity-integrations/saml-integrations.md) — Integrates with external identity providers using SAML and OAuth 2.0 for single sign-on capabilities.
- [User](https://awesome-repositories.com/f/security-cryptography/permission-systems/permission-request-workflows/observable-request-flows/request-state-tracking/session-state-tracking/user.md) — Tracks user state and interaction across multiple requests regardless of the storage mechanism. ([source](https://cdn.jsdelivr.net/gh/apache/shiro@main/README.md))
- [Role-Based Access Control](https://awesome-repositories.com/f/security-cryptography/role-based-access-control.md) — Implements role-based access control to grant or deny resource access based on assigned roles and permissions. ([source](https://shiro.apache.org/security-model.html))
- [URL Security Policy Enforcement](https://awesome-repositories.com/f/security-cryptography/security/policies/host-resource-access/file-system-access-controls/path-access-restrictions/path-access-restrictions/url-path-restrictions/url-security-policy-enforcement.md) — Restricts access to specific URL patterns in web applications using filters to enforce security policies. ([source](https://shiro.apache.org/reference.html))
- [Session Lifecycle Management](https://awesome-repositories.com/f/security-cryptography/session-lifecycle-management.md) — Manages the lifecycle, expiration, and rotation of user sessions independently of the web container. ([source](https://shiro.apache.org/security-model.html))
- [Web Session Management](https://awesome-repositories.com/f/security-cryptography/web-session-management.md) — Implements a standalone session management system that tracks user state independently of the servlet container.
- [Application Data Security](https://awesome-repositories.com/f/security-cryptography/application-data-security.md) — Secures application data and passwords using symmetric/asymmetric encryption and salted hashing.
- [Symmetric and Asymmetric Ciphers](https://awesome-repositories.com/f/security-cryptography/asymmetric-encryption/symmetric-and-asymmetric-ciphers.md) — Provides unified API wrappers for symmetric and asymmetric ciphers to encrypt sensitive data and hash passwords.
- [Cryptographic Operations](https://awesome-repositories.com/f/security-cryptography/cryptographic-operations.md) — Provides an SDK for performing symmetric and asymmetric encryption and signing operations. ([source](https://cdn.jsdelivr.net/gh/apache/shiro@main/README.md))
- [Java](https://awesome-repositories.com/f/security-cryptography/cryptography-libraries/java.md) — Ships a set of Java-based tools for symmetric/asymmetric encryption and secure password hashing.
- [Data Protection](https://awesome-repositories.com/f/security-cryptography/data-protection.md) — Protects sensitive information using cryptographic hashing with salts and symmetric encryption. ([source](https://shiro.apache.org/security-model.html))
- [Enterprise Identity Providers](https://awesome-repositories.com/f/security-cryptography/enterprise-identity-providers.md) — Connects applications to enterprise identity providers using LDAP, OAuth 2.0, and SAML.
- [External Identity Provider Integration](https://awesome-repositories.com/f/security-cryptography/external-identity-provider-integration.md) — Integrates with external identity providers using standard protocols like OAuth 2.0 and SAML. ([source](https://shiro.apache.org/integration.html))
- [Distributed Session Storage](https://awesome-repositories.com/f/security-cryptography/identity-access-management/session-management/server-side-session-stores/distributed-session-storage.md) — Manages user session lifecycles across distributed server nodes to maintain a consistent user experience.
- [Annotation-Based Authorization](https://awesome-repositories.com/f/security-cryptography/security/policies/capability-authorization/capability-based-security/annotation-based-authorization.md) — Provides annotations to declaratively enforce role-based access control on Java methods and classes.
- [Single Sign-On Solutions](https://awesome-repositories.com/f/security-cryptography/single-sign-on-solutions.md) — Enables single sign-on by sharing authentication state across federated applications. ([source](https://shiro.apache.org/features.html))
- [Identity Context Management](https://awesome-repositories.com/f/security-cryptography/user-identity-management/identity-context-management.md) — Establishes and persists a security context for users to maintain identity across requests. ([source](https://shiro.apache.org/security-model.html))
- [Web Access Management](https://awesome-repositories.com/f/security-cryptography/web-access-management.md) — Protects URLs through automated login, logout, and remember-me services with minimal configuration. ([source](https://shiro.apache.org/features.html))

### Software Engineering & Architecture

- [Application Session Management](https://awesome-repositories.com/f/software-engineering-architecture/application-session-management.md) — Provides a standalone session API to track user state independently of the servlet container.
- [Security Filter Chains](https://awesome-repositories.com/f/software-engineering-architecture/request-interception-control/identity-request-interception/security-filter-chains.md) — Uses sequenced filter chains to intercept web requests and enforce security constraints before they reach the application.
- [Security](https://awesome-repositories.com/f/software-engineering-architecture/framework-integrations/security.md) — Connects security logic and access control into existing Java software frameworks. ([source](https://shiro.apache.org/integration.html))
- [Security Context Propagators](https://awesome-repositories.com/f/software-engineering-architecture/thread-local-context-management/security-context-propagators.md) — Maintains a thread-local security context representing the current user and their associated permissions.

### Data & Databases

- [Security Lookup Caching](https://awesome-repositories.com/f/data-databases/data-caching/security-lookup-caching.md) — Stores security lookups in memory to reduce data retrieval time and enhance performance. ([source](https://shiro.apache.org/features.html))
- [Security Data Caches](https://awesome-repositories.com/f/data-databases/in-memory-caches/pluggable-cache-stores/security-data-caches.md) — Implements pluggable memory and distributed caching for authentication and authorization lookups to optimize performance.

### DevOps & Infrastructure

- [Distributed Session Managers](https://awesome-repositories.com/f/devops-infrastructure/distributed-session-managers.md) — Provides distributed session management to synchronize user state across enterprise environments. ([source](https://shiro.apache.org/features.html))
