# hapx **Repository Path**: hermitfate/hapx ## Basic Information - **Project Name**: hapx - **Description**: 具有服务代理(http/https socket ftp sftp ... proxy)、数据劫持及转换(data hijack、data convert)等功能。系统具有透传和非透传特性,非透传可以验证数据的合法性,防止服务器被攻击。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://gitee.com/hermitfate/hapx - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2024-07-20 - **Last Updated**: 2025-12-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 系统架构图 ![输入图片说明](documents/%E6%9E%B6%E6%9E%84%E5%9B%BE.png) # 核心配置 ``` { "bizNames": "自定义的 业务编码 列表,一个业务对应一个业务编码,用英文逗号分割。必填", "handlerCoreCount": "处理器线程最小个数", "handlerMaxCount": "处理器线程最大个数", "executors": { "协议名称": "执行器全路径名,必填。", ... }, "业务编码": { "comment": "注释,必填。说明本业务详情,注意:各业务分析模版所需个性化数据通过metaData内配置", "schema": "协议名称,必填。常用的有:Socket、HTTP(HTTPS)", "status": "是否启用,必填。0-禁止,1-启用", "isInterceptable": "是否放行,【status为1-启用】时必填。0-拦截,1-放行", "isTranslatable": "第三方请求报文是否需要转换,在【isInterceptable为0-拦截】时必填。0-不需要,1-需要。服务端是否接收由解析模版引擎根据第三方请求报文转换后的报文作为请求报文", "msgType": "第三方的请求报文类型,在【isInterceptable为0-拦截】时必填。常用的有:json、xml、fixed、tag、mixed", "convertedMsgType": "通过模版分析引擎转换后的报文,选填。如果unpackMode.mode为1,并且isTranslatable也为1,则必填。常用的有:json、xml、fixed、tag、mixed", "timeout": "连接服务端请求的超时时间,选填。单位是毫秒。默认30000毫秒", "timeWait": "等待客户端或服务器端的I/O操作的最大时间,单位是毫秒。默认60000毫秒", "maxConnections": "以Socket协议连接服务端请求失败次数,选填。默认0次", "charset": "字符编码,选填,默认为utf-8", "unpackMode": { "mode": "数据分析模式,在【isInterceptable为0-拦截】时必填。1-可配置化,2-自定义类实现化", "template": "分析引擎模版编码,选填。如果mode为1,则必填。", "proccessor": "自定义的数据分析处理器实现类全路径名,选填。如果mode为2,必填。" } "local": { "reusableFrom":"复用对象,选填。如果是在同一台服务器上,必须采取复用策略。本配置如果存在并且不为空串,则此处填复用的业务编码。如果满足同源策略,则addr、port依赖local复用对象", "host": "本地监听地址。如果reusableFrom不存在或为空串,必填", "port": "本地监听端口。如果reusableFrom不存在或为空串,必填" }, "remote": { "isChanged": "是否需要访问路径转换,必填。0-不切换,1-切换,如果值为1-切换,则path必填;如果为0-不切换,path不填,取第三方原访问服务端的路径", "url": { "host": "服务器地址,必填", "port": "端口号,选填", "path": "路径,选填" } }, "metaData": { "errReply": "当前业务统一错误回复报文,选填", "tmpDir":"针对schema为http或https并且在【isInterceptable为0-拦截】时有效,用来以文件临时存储请求端的请求数据,选填。如果没配置,则取操作系统的临时目录", "logMessage": "原报文和转换后的报文是否记录在日志里,在【isInterceptable为0-拦截】时有效,选填。true-记录,false-不记录,默认是:false-不记录", 其它自定义参数, .... } } } ``` # 插件注册器配置 ``` #注意: ##1、业务编码务必与核心配置中的业务编码一一对应 ##2、插件实现类务必实现ReadablePlugin接口 业务编码=插件实现类 ... ``` --- --- # 版权声明 使用 [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0) 协议 # hapx可以用于学习研究、生产系统使用。 # 加入QQ群: 12472573 # 交流技术问题,咨询系统相关组件问题等,加微信进群:QQ_734007503