shiro-web 软件分析
内容提要
shiro-web是shiro-core的包装器,通过Filter接口与Tomcat交互,实现请求级别的主体管理。它与shiro-core解耦,使用FilterChain管理过滤器,支持自定义过滤器,确保灵活性与可扩展性。
关键要点
-
shiro-web是shiro-core的包装器,通过Filter接口与Tomcat交互,实现请求级别的主体管理。
-
shiro-web与shiro-core解耦,使用FilterChain管理过滤器,支持自定义过滤器,确保灵活性与可扩展性。
-
shiro-web实现了Filter接口,使得Tomcat可以调用,同时ShiroFilter调用WebSubject进行验证和授权。
-
shiro-core与shiro-web之间不是完全单向的调用关系,某些情况下shiro-core会调用wrapper中的实现。
-
Session管理的选择需要考虑使用shiro提供的SessionManager还是Tomcat的Session管理。
-
shiro-web通过继承的方式与shiro-core解耦,直接依赖Webxxx类。
-
shiro-web的Filter主要是ShiroFilter,通过web.xml配置实现。
-
FilterChainManager管理Filter链的创建和修改,支持自定义filter。
-
FilterChainResolver根据请求的URL返回对应的FilterChain,使用PathMatchingFilterChainResolver实现。
-
ProxiedFilterChain用于包装原始的servlet容器中的过滤器链,确保过滤器的执行顺序。
延伸问答
shiro-web是什么?
shiro-web是shiro-core的包装器,通过Filter接口与Tomcat交互,实现请求级别的主体管理。
shiro-web如何与shiro-core解耦?
shiro-web通过继承的方式与shiro-core解耦,直接依赖Webxxx类,使用FilterChain管理过滤器。
shiro-web的Filter是如何工作的?
shiro-web的Filter主要是ShiroFilter,通过web.xml配置实现,负责请求的过滤和处理。
shiro-web支持哪些自定义功能?
shiro-web支持自定义过滤器,FilterChainManager可以管理过滤器链的创建和修改。
shiro-web如何处理Session管理?
shiro-web可以选择使用shiro提供的SessionManager或Tomcat的Session管理,具体选择需根据需求而定。
shiro-web的FilterChainResolver是如何工作的?
FilterChainResolver根据请求的URL返回对应的FilterChain,使用PathMatchingFilterChainResolver实现。