WSO2:trp.vfs 变量最终出现在请求 headers 中(无论如何)
WSO2: trp.vfs variables end up in request headers (no matter what)
我在分析以下处理中的 http headers 时遇到了一些奇怪的行为
| sftp folder | ==vfs=> | ESB processing | ===http===> REST endpoint
输入
从具有以下入站端点的文件夹中读取文件:
<inboundEndpoint name="aaa2bbb-aaaFolder" onError="aaa2bbb-errors" protocol="file" sequence="aaa2bbb-processFiles" statistics="enable" suspend="false" trace="enable" xmlns="http://ws.apache.org/ns/synapse">
<parameters>
<parameter name="interval">5000</parameter>
<parameter name="sequential">true</parameter>
<parameter name="coordination">true</parameter>
<parameter name="transport.vfs.ContentType">text/plain</parameter>
<parameter name="transport.vfs.LockReleaseSameNode">false</parameter>
<parameter name="transport.vfs.AutoLockRelease">false</parameter>
<parameter name="transport.vfs.ActionAfterFailure">MOVE</parameter>
<parameter name="transport.vfs.FailedRecordsFileName">vfs-move-failed-records.properties</parameter>
<parameter name="transport.vfs.FailedRecordsFileDestination">repository/conf/</parameter>
<parameter name="transport.vfs.MoveFailedRecordTimestampFormat">dd-MM-yyyy HH:mm:ss</parameter>
<parameter name="transport.vfs.FailedRecordNextRetryDuration">3000</parameter>
<parameter name="transport.vfs.ActionAfterProcess">MOVE</parameter>
<parameter key="gov:/filesystem/fromAAA.txt" name="transport.vfs.FileURI"/>
<parameter name="transport.vfs.ReplyFileURI">${registry:gov:/filesystem/fromAAA.txt}/success</parameter>
<parameter name="transport.vfs.ReplyFileName">response.xml</parameter>
<parameter name="transport.vfs.DistributedLock">false</parameter>
<parameter name="transport.vfs.FileNamePattern">^CMDE.*\.zip|^(?!tmp).*\.xml</parameter>
<parameter name="transport.vfs.Locking">disable</parameter>
<parameter name="transport.vfs.FileSortAttribute">none</parameter>
<parameter name="transport.vfs.FileSortAscending">true</parameter>
<parameter name="transport.vfs.CreateFolder">true</parameter>
<parameter name="transport.vfs.Streaming">false</parameter>
<parameter name="transport.vfs.Build">false</parameter>
</parameters>
</inboundEndpoint>
输出
问题是:
vfs variables such as File-Uri
, File-Path
or Last-Modified
systematically end up in the Headers of the requests sent to the REST endpoint
不仅这不是很优雅,而且它引发了一个真正的安全问题,对于 sftp File-Uri
包括 用户名和 密码:
sftp://${user}:${password}@some_domain.com/somePath
尝试次数
我尝试了几个变量名来删除序列中的这个特定 header:
fileURI
file-uri
File-Uri
FILE-URI
transport.vfs.fileURI
<header name="${some-name}" scope="transport" action="remove"/>
但是那些变量总是在header中结束。我该如何解决?是否需要适当调整 inbound-endpoint 以从 call?
的传输变量中封装其传输变量?
[环境]
- wso2ei 6.5.0
- fileconnector-2.0.20
不确定是否有帮助,但我使用以下方法删除了所有传输 headers。
<property name="TRANSPORT_HEADERS" action="remove" scope="axis2"/>
或使用以下删除 headers。
<property name="<name of the header to be removed>" scope="transport" action="remove"/>
也许值得一试。
我在分析以下处理中的 http headers 时遇到了一些奇怪的行为
| sftp folder | ==vfs=> | ESB processing | ===http===> REST endpoint
输入
从具有以下入站端点的文件夹中读取文件:
<inboundEndpoint name="aaa2bbb-aaaFolder" onError="aaa2bbb-errors" protocol="file" sequence="aaa2bbb-processFiles" statistics="enable" suspend="false" trace="enable" xmlns="http://ws.apache.org/ns/synapse">
<parameters>
<parameter name="interval">5000</parameter>
<parameter name="sequential">true</parameter>
<parameter name="coordination">true</parameter>
<parameter name="transport.vfs.ContentType">text/plain</parameter>
<parameter name="transport.vfs.LockReleaseSameNode">false</parameter>
<parameter name="transport.vfs.AutoLockRelease">false</parameter>
<parameter name="transport.vfs.ActionAfterFailure">MOVE</parameter>
<parameter name="transport.vfs.FailedRecordsFileName">vfs-move-failed-records.properties</parameter>
<parameter name="transport.vfs.FailedRecordsFileDestination">repository/conf/</parameter>
<parameter name="transport.vfs.MoveFailedRecordTimestampFormat">dd-MM-yyyy HH:mm:ss</parameter>
<parameter name="transport.vfs.FailedRecordNextRetryDuration">3000</parameter>
<parameter name="transport.vfs.ActionAfterProcess">MOVE</parameter>
<parameter key="gov:/filesystem/fromAAA.txt" name="transport.vfs.FileURI"/>
<parameter name="transport.vfs.ReplyFileURI">${registry:gov:/filesystem/fromAAA.txt}/success</parameter>
<parameter name="transport.vfs.ReplyFileName">response.xml</parameter>
<parameter name="transport.vfs.DistributedLock">false</parameter>
<parameter name="transport.vfs.FileNamePattern">^CMDE.*\.zip|^(?!tmp).*\.xml</parameter>
<parameter name="transport.vfs.Locking">disable</parameter>
<parameter name="transport.vfs.FileSortAttribute">none</parameter>
<parameter name="transport.vfs.FileSortAscending">true</parameter>
<parameter name="transport.vfs.CreateFolder">true</parameter>
<parameter name="transport.vfs.Streaming">false</parameter>
<parameter name="transport.vfs.Build">false</parameter>
</parameters>
</inboundEndpoint>
输出
问题是:
vfs variables such as
File-Uri
,File-Path
orLast-Modified
systematically end up in the Headers of the requests sent to the REST endpoint
不仅这不是很优雅,而且它引发了一个真正的安全问题,对于 sftp File-Uri
包括 用户名和 密码:
sftp://${user}:${password}@some_domain.com/somePath
尝试次数
我尝试了几个变量名来删除序列中的这个特定 header:
fileURI
file-uri
File-Uri
FILE-URI
transport.vfs.fileURI
<header name="${some-name}" scope="transport" action="remove"/>
但是那些变量总是在header中结束。我该如何解决?是否需要适当调整 inbound-endpoint 以从 call?
的传输变量中封装其传输变量?[环境]
- wso2ei 6.5.0
- fileconnector-2.0.20
不确定是否有帮助,但我使用以下方法删除了所有传输 headers。
<property name="TRANSPORT_HEADERS" action="remove" scope="axis2"/>
或使用以下删除 headers。
<property name="<name of the header to be removed>" scope="transport" action="remove"/>
也许值得一试。