五、Chain链的作用

Chain是一个链,是Handler的链。也就是说一次请求可能要执行多个Handler。

1、下面我们就编写一个Handler,让它用chain的方法执行。

   

 

上面的HandlerChain继承了SimpleChain,在构造器中创建了RequestHandler、ResponseHandler, 然后用addHandler添加到chain的handler中。特别说明下,这里的chain其实也是一个handler,为什么这样说?我们继承的 SimpleChain就继承了BsaicHandler这个抽象类,所以chain也是一个handler。有人想既然是handler那它的配置也应 该和handler差不多,没错chain的配置可以引用handler的配置。

 

2、配置chain的wsdd文件

先看配置方式1:

 

 

 

在chain元素中配置了一个handler标签,这个标签的type就是classpath类路径,然后在requestFlow标签中配置chain元素标签,用type引用上面的chain即可。

 

配置方式2:

 

上面先配置了handler,刚才说过chain也是一种特别的handler。所以用handler标签配置chain,然后在chain标签中 用handler的type引用hchain,最好在responseFlow标签中用chain引用上面配置好的chain。

注意:chain标签中只能配置handler、chain这2种元素,chain里面可以嵌套配置chain;

 

3、发布wsdd配置过chain的WebService

java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient -lhttp://localhost:8080/AxisWebService/services/AdminService deployChain.wsdd

在浏览器中请求:http://localhost:8080/AxisWebService/servlet/AxisServlet

就可以看到发布的服务了。

 

4、编写客户端代码,请求刚才发布的WebService。客户端的代码和上面的HelloWorldWSDDClient几乎引用,只是请求的服务换成刚才我们发布的那个服务路径就可以了。运行后服务器端控制台效果如下:

state: null, count: 1, requestCount: 1

state: null, count: 1, RESPONSE_COUNT: 1

state: null, count: 2, requestCount: 2

state: null, count: 2, RESPONSE_COUNT: 2

作者:hoojo
出处: http://www.cnblogs.com/hoojo/archive/2010/12/20/1911375.html
blog:http://blog.youkuaiyun.com/IBM_hoojo

`Chain forward_auth` 是一个 **自定义(custom chain)**,不是 `iptables` 内置的条标准(如 `INPUT`、`FORWARD`、`PREROUTING` 等),通常是由用户或某些应用程序(如防火墙脚本、透明代理、认证系统)创建的,用于实现特定功能。 --- ### 🔍 1. `forward_auth` 的可能用途 从命名来看: - **`forward`**:说明它与 `FORWARD` 有关,即处理**转发流量**(经过本机的流量); - **`auth`**:是 "authentication" 的缩写,表示这条可能用于**认证控制**,例如: - 用户认证(如网页登录认证后放行); - MAC/IP 白名单验证; - 透明代理的认证流程; - 802.1x 或 Captive Portal(强制门户)控制。 --- ### 🧩 2. 常见使用场景 #### ✅ 场景一:认证网关(Captive Portal) 在热点、校园网、企业网关中,用户首次访问网页时会被重定向到登录页面。这个流程中: - 所有 `FORWARD` 流量被跳转到 `forward_auth` ; - 在 `forward_auth` 中判断用户是否已认证; - 未认证则 `DROP` 或重定向; - 已认证则 `ACCEPT`。 #### ✅ 场景二:透明代理 + 用户识别 某些代理系统(如 Squid + iptables)会使用自定义来判断流量是否来自已认证用户。 --- ### 🧪 3. 示例:`forward_auth` 的使用方式 ```bash # 创建自定义 iptables -N forward_auth # 所有 FORWARD 流量跳转到 forward_auth iptables -A FORWARD -j forward_auth # 在 forward_auth 中添加规则 iptables -A forward_auth -m mac --mac-source 00:11:22:33:44:55 -j ACCEPT iptables -A forward_auth -d 192.168.1.100 -j ACCEPT iptables -A forward_auth -j DROP ``` > 上述规则表示:只有特定 MAC 地址或目标地址的流量才能通过认证,其余被丢弃。 --- ### 🔎 4. 如何查看 `forward_auth` 的规则? ```bash sudo iptables -L forward_auth -n -v ``` 如果你使用的是 `filter` 表(默认表),可以直接查看;如果它属于其他表(如 `mangle`),需加 `-t` 指定: ```bash sudo iptables -t filter -L forward_auth -n -v ``` --- ### ✅ 总结 | 项目 | 说明 | |------|------| | 类型 | 自定义 | | 所属表 | 通常是 `filter` 表 | | 作用 | 用于对转发流量进行认证控制 | | 典型场景 | Captive Portal、透明代理、MAC/IP 白名单 | --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值