第5章 途中的关卡:管道上的组件


文档摘要

第 5 章 · 途中的关卡:管道上的组件 章节摘要:请求在容器里穿行时,一路要过好几道关卡、见几位后勤官。本章讲四位角色:Valve 是容器层的阀门,Filter 是应用层的过滤器,两者像管道上的两道闸,位置与作用域不同;Realm 是身份档案库,负责认证与授权的裁决;Listener 是事件广播员,JNDI 则是资源调度台,把连接池这类资源登记在容器里供应用按名取用。学完本章,请求从进容器到抵终点之间"被谁检查过、被谁服务过"你都能说得一清二楚。 学习目标 能说出 Valve 与 Filter 的四个差异:挂载层、作用域、配置位置、能否访问应用类。 能配置 AccessLogValve 与 RemoteIpValve,并编写一个最小自定义阀门。

第 5 章 · 途中的关卡:管道上的组件

章节摘要:请求在容器里穿行时,一路要过好几道关卡、见几位后勤官。本章讲四位角色:Valve 是容器层的阀门,Filter 是应用层的过滤器,两者像管道上的两道闸,位置与作用域不同;Realm 是身份档案库,负责认证与授权的裁决;Listener 是事件广播员,JNDI 则是资源调度台,把连接池这类资源登记在容器里供应用按名取用。学完本章,请求从进容器到抵终点之间"被谁检查过、被谁服务过"你都能说得一清二楚。

学习目标

  1. 能说出 Valve 与 Filter 的四个差异:挂载层、作用域、配置位置、能否访问应用类。
  2. 能配置 AccessLogValve 与 RemoteIpValve,并编写一个最小自定义阀门。
  3. 能完成"tomcat-users 配账号加 web.xml 声明约束"的完整认证配置,并用 curl 验证 BASIC 与 FORM 两种方式。
  4. 能列出常用生命周期监听器事件,并写一个监听启动与销毁的类。
  5. 能定义 JNDI 数据源(全局与应用级)并在应用侧正确查找使用。

核心概念速览

金句:Valve 管的是城里的规矩,Filter 管的是店里的规矩——城规写在 server.xml,店规写在应用里,两者叠加才是请求被检查的全貌。

子章节导航

  • 5.1 Valve 与 Filter:管道上的两道闸——从一次重复日志的故障反例切入,讲清两道闸的位置、执行顺序与配置差异,配一张位置对比图与自定义阀门的完整实现。
  • 5.2 Realm 安全域:认证与授权——身份档案库的裁决流程,tomcat-users 与 web.xml 安全约束的配合实录,BASIC 与 FORM 两种登录方式及验证方法。
  • 5.3 Listener 与 JNDI:事件与资源——监听器监听什么事件、能干什么事;JNDI 的全局与应用级两种资源定义及查找代码。

子章节之间的逻辑关系

5.1 把"关卡"这个概念立在容器与应用两个层面,5.2 是关卡中最重的一类(身份裁决)展开,5.3 转向"不拦请求但服务请求"的两位后勤。三节合起来覆盖管道上全部非业务组件,第 6 章的过滤器链执行细节是 5.1 的续篇。

5.1 两道闸的位置 5.2 身份裁决 5.3 后勤系统 ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ Valve 容器层 │ │ Realm 档案库│ │ Listener 事件│ │ Filter 应用层│ ────> │ BASIC FORM │ ────> │ JNDI 资源台 │ │ 顺序与作用域 │ │ 约束与角色 │ │ 定义与查找 │ └─────────────┘ └─────────────┘ └─────────────┘ 拦截类组件 身份特例 服务类组件

前置知识与后续延伸

前置:第 4 章的容器嵌套图(阀门挂点靠它)、web.xml 与 context.xml 两份登记表(本章大量配置落在这两份文件)。

后续延伸:第 6 章首节把 Filter 链的执行机制讲到方法级;Realm 的生产替代方案(数据源 Realm、LDAP)在第 7 章安全加固中作为检查项出现。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U