WSO2:trp.vfs变量最终出现在请求标头中(无论如何)

问题描述 投票:0回答:1

在以下处理中分析HTTP标头时遇到一些奇怪的行为

| sftp folder | ==vfs=> | ESB processing | ===http===> REST endpoint

IN

使用以下入站端点从文件夹中读取文件:

<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>

OUT

问题是:

vfs变量,例如File-UriFile-PathLast-Modified,系统地结束于发送给REST的请求的Headers中。endpoint

不仅这不是很优雅,而且提出了一个真正的安全问题,因为sftp File-Uri包括用户名密码

sftp://${user}:${password}@some_domain.com/somePath

尝试

我尝试了几个变量名以删除序列中的此特定标头:

  • fileURI
  • file-uri
  • File-Uri
  • FILE-URI
  • transport.vfs.fileURI
<header name="${some-name}" scope="transport" action="remove"/>

但是那些变量总是最终出现在标题中。我该如何解决?适当地调整inbound-endpoint以封装其与call的传输变量有关的问题吗?

[环境]

  • wso2ei 6.5.0
  • fileconnector-2.0.20
security http-headers wso2esb vfs
1个回答
0
投票

不确定是否有帮助,但是我使用以下内容删除了所有传输头。

<property name="TRANSPORT_HEADERS" action="remove" scope="axis2"/>

或使用以下命令删除标题。

<property name="<name of the header to be removed>" scope="transport" action="remove"/>

也许值得一试。

© www.soinside.com 2019 - 2024. All rights reserved.