import org.apache.mina.core.buffer.IoBuffer;
import org.apache.mina.core.filterchain.IoFilterAdapter;
import org.apache.mina.core.session.IoSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* 策略文件过滤器
*/
public class PolicyFilter extends IoFilterAdapter {
private final static Logger logger = LoggerFactory.getLogger(PolicyFilter.class);
private final static byte[] policyResponse = "<?xml version=\"1.0\"?><cross-domain-policy><site-control permitted-cross-domain-policies=\"all\"/><allow-access-from domain=\"*\" to-ports=\"*\"/></cross-domain-policy>\0"
.getBytes();
private final static byte[] policyRequest = "<policy-file-request/>\0".getBytes();
@Override
public void messageReceived(NextFilter nextFilter, IoSession session, Object message) throws Exception {
if (message instanceof IoBuffer) {
IoBuffer buff = (IoBuffer) message;
int len = policyRequest.length;
if (buff.remaining() == len) {
byte[] arr = buff.array();
boolean equal = true;
for (int i = 0; i < len; i++) {
if (arr[i] != policyRequest[i]) {
equal = false;
break;
}
}
if (equal) {
session.write(policyResponse);
if (logger.isDebugEnabled()) {
logger.debug("向会话[{}]返回策略文件", session.getId());
}
}
}
}
super.messageReceived(nextFilter, session, message);
}
}
分享到:
相关推荐
协议解码过滤器(ProtocolDecoderFilter)就是这样的一个过滤器,它的主要任务是从接收到的原始字节流中解析出有意义的数据结构,比如网络协议的消息。 具体来说,`ProtocolDecoderFilter`是MINA框架中处理数据解码...
在Mina与Socket通信的实现中,服务端通常使用Mina来创建一个Acceptor,监听特定端口,等待客户端的连接请求。一旦有连接建立,Mina会自动触发相应的事件处理器,开发者可以在其中处理数据读写。以下是一个基本的...
Apache Mina是一个开源的网络通信应用框架,主要应用于Java平台,它为高性能、高可用性的网络应用程序提供了基础架构。在本文中,我们将深入探讨Mina的高级使用,特别是在文件图片传送、文件发送、XML和JSON报文处理...
标题中的“mina简单通信需要的包”指的是Apache Mina框架,这是一个用于构建高性能、异步网络应用程序的Java框架。在本文中,我们将深入探讨Mina的核心概念和它在通信中的应用,以及与之相关的库SLF4J。 Apache ...
在处理安全套接层(SSL)通信时,Mina提供了一个名为`SslFilter`的组件,它是实现加密和身份验证的关键部分。在本教程中,我们将深入探讨如何使用Mina的`SslFilter`来构建安全的网络应用。 **1. SSL/TLS协议概述** ...
这个“MINA加jar打包文件”包含了MINA框架的一个特定版本——2.0.0-M4,以及相关的beans整合模块。 mina-integration-beans-2.0.0-M4.jar是MINA框架与Spring框架集成的模块,它允许开发者利用Spring的IoC...
- Filter链:MINA采用过滤器链模式,允许开发者插入自定义的过滤器来处理数据,如编码、解码、安全等。 - IoSession:表示网络连接,包含与连接相关的状态信息和操作。 - IoProcessor:负责实际的I/O操作,如读写...
mina-filter-compression-2.0.7.jar,mina 过滤器jar包,核心包之一
5. **过滤器(Filter)**:MINA2中的过滤器是处理输入和输出数据的组件,可以添加多个过滤器形成过滤器链,每个过滤器执行特定的任务,如解码、加密、日志记录等。 6. **Echo服务器**:Echo服务器是一种简单的...
- **Filter Chain**:Mina采用过滤器链模式处理网络通信,每个过滤器执行特定任务,如数据编码解码、身份验证等。过滤器之间按照顺序传递消息,使得系统更灵活可扩展。 - **Session**:Mina中的Session代表了客户端...
1. 初始化IoAcceptor:Mina服务端首先需要创建一个IoAcceptor实例,用于监听特定端口的连接请求。通常使用NioSocketAcceptor,它基于Java的非阻塞I/O(NIO)模型,可以高效地处理大量并发连接。 2. 创建...
Mina通信框架是Apache软件基金会的一个项目,主要应用于开发高性能、高可靠性的网络应用程序,尤其在Java平台上。它提供了一套全面的事件驱动、异步I/O的服务端和客户端API,使得开发者能够更容易地构建网络服务,如...
在实现加密通信时,我们需要创建一个包含SSLFilter的过滤器链,这个过滤器负责处理SSL/TLS相关的任务,如握手、加密和解密数据。 4. **证书管理**:为了启用SSL/TLS,服务器和客户端都需要各自的数字证书。服务器端...
本项目提供了一个完整的Mina双向通信示例,允许客户端和服务端互相发送消息。该demo的核心功能是接收用户输入的字符串并进行传输,适用于学习和理解Mina框架的通信机制。 **Mina框架** Mina采用事件驱动模型和非...
2. **过滤器链**:MINA 的过滤器链是其设计的一个亮点,它提供了一种可插拔的架构,允许开发者插入自定义的过滤器来处理数据。这些过滤器可以实现数据编码、解码、认证、加密等功能,增加了系统的灵活性和可扩展性。...
3. **MINA API**:MINA提供了一系列接口,如`IoSession`代表一个连接,`IoHandler`处理网络事件,`Filter`进行数据过滤和处理等,简化了开发者的工作。 4. **测试与部署**:MINA项目包含丰富的示例和测试用例,方便...
Apache Mina是一个高度可扩展的网络通信框架,它允许开发者创建高性能、高可用性的网络应用程序。在Java开发中,Mina常被用于实现各种网络协议,包括TCP/IP和UDP/IP,以及FTP、SSH等。本篇文章将深入探讨如何利用...
Apache MINA是一个强大的网络通信框架,专为构建高性能和高可扩展性的网络应用程序设计。它基于事件驱动和异步模型,支持多种传输协议,如TCP/IP、UDP/IP、串口通信以及虚拟机内部的管道。MINA的核心理念是将网络...
在IT行业中,网络通信是核心领域之一,而Mina(Mindterm In Action Network Application)是一个高性能、跨平台的Java框架,常用于构建网络应用程序,如服务器和客户端。本示例聚焦于Mina中的自定义协议通信,这允许...
Mina(Java Foundation for Network Applications)是一个开源的网络通信框架,它提供了一种高性能、高灵活性的网络应用开发方式。集成Spring框架后,可以利用Spring的依赖注入和管理能力,使Mina服务更加易于配置和...