Apache Shiro入门:核心组件与过滤器链解析

需积分: 0 1 下载量 151 浏览量 更新于2024-08-17 收藏 571KB PPT 举报
"本文主要介绍了Apache Shiro框架中的内置FilterChain以及Shiro的基本使用方法,包括核心组件和架构。" Apache Shiro是一个强大且易用的Java安全框架,提供了认证、授权、加密和会话管理功能,简化了企业级应用的安全实现。在Shiro中,FilterChain是过滤器链的概念,它定义了请求处理过程中的过滤规则。以下是对标题和描述中提到的Shiro内置FilterChain的详细解释: 1. **anon**: 匿名过滤器,允许未认证的用户访问资源,通常用于公共页面。 2. **authc**: 表单认证过滤器,处理基于表单的用户登录,验证用户提交的登录信息。 3. **authcBasic**: 基本HTTP认证过滤器,用于处理HTTP Basic认证。 4. **perms**: 权限授权过滤器,检查用户是否具有指定的权限来访问资源。 5. **port**: 端口过滤器,确保请求来自特定端口。 6. **rest**: HTTP方法权限过滤器,基于HTTP方法(如GET, POST等)进行授权。 7. **roles**: 角色授权过滤器,检查用户是否拥有指定的角色才能访问资源。 8. **ssl**: SSL过滤器,强制使用HTTPS协议。 9. **user**: 用户过滤器,表示用户已经通过了简单的身份验证,比如只需要记住我功能。 **Shiro的核心组件包括**: - **Subject**: 表示当前操作的主体,可以是用户、系统进程等,提供了与安全相关的操作接口。 - **SecurityManager**: 安全管理者,Shiro的中心,负责协调各个组件并管理Subject的生命周期。 - **Realms**: 是Shiro与应用安全数据的桥梁,每个Realm负责从特定的数据源获取用户的认证和授权信息。 **Shiro的其他主要组件**: - **Authenticator**: 认证器,负责验证用户的身份。 - **Authorizer**: 授权器,处理访问控制,决定用户是否有权访问资源。 - **SessionManager**: 会话管理器,处理用户会话的创建、维护和销毁。 - **CacheManager**: 缓存管理器,为Shiro的其他组件提供缓存支持。 **Shiro的认证过程**: 1. 应用程序创建AuthenticationToken并调用Subject的login方法。 2. Subject委托SecurityManager进行登录操作。 3. SecurityManager使用Authenticator,通常是一个ModularRealmAuthenticator,对 Realm 进行认证。 4. 如果有多个Realm,ModularRealmAuthenticator会根据AuthenticationStrategy处理多Realm的认证结果。 5. Realm验证用户信息,返回认证结果,SecurityManager再根据结果进行下一步操作。 Apache Shiro通过其灵活的FilterChain和核心组件,为开发者提供了一套简洁且强大的安全框架,使得应用的安全管理变得更加简单。