标签: apache-synapse

如何使用Synapse建立安全连接?

我正在测试Synapse并想知道如何建立安全连接.我注意到它支持SSL,但我不确定它是否适合我的需求.我没有CA的证书.我只想加密我的服务器程序和客户端程序之间的所有数据.当然,我可以在发送之前自己加密数据.但是如果SSL可以加密数据,也许我可以使用它.据我所知,SSL用于"加密"和"身份验证".我需要的只是"加密".Synapse有可能吗?

更新:

感谢daemon_x和Synapse的作者Lukas Gebauer的帮助,我想我终于让它发挥了作用.这是我做的:

服务器端:

1)在你的单元中使用ssl_openssl并将'libeay32.dll'和'ssleay32.dll'放到exe文件的同一目录中

2)接受连接后,为新创建的套接字添加以下代码行.

fclient.SSLAcceptConnection;
Run Code Online (Sandbox Code Playgroud)

客户方:

1)在你的单元中使用ssl_openssl并将'libeay32.dll'和'ssleay32.dll'放到exe文件的同一目录中

2)连接到服务器后,添加以下行.

fclient.SSLDoConnect;
Run Code Online (Sandbox Code Playgroud)

如果没有发生错误,则连接现在是安全的.但是当您运行代码时,如Synapse文档中所述,您可能会注意到SSLAcceptConnection需要一些时间才能返回.因此,如果您想加快速度,最好先预先创建证书文件和私钥文件.并在SSLAcceptConnection之前添加以下代码

  fclient.SSL.CertificateFile := 'bs-cert';
  fclient.SSL.PrivateKeyFile := 'bs-privatekey';
Run Code Online (Sandbox Code Playgroud)

如果您没有证书和私钥,请参阅ssl_openssl中的"CreateSelfSignedCert"以获取自签名证书和私钥.您可以通过WriteStrToStream将FCertificate和FPrivatekey保存到文件中,稍后再使用它们.

delphi ssl apache-synapse public-key-encryption

9
推荐指数
1
解决办法
5898
查看次数

Delphi + Synapse:如何检查我是否仍然连接

TTCPBlockSocket用于TCP/IP应用程序.问题是我无法确定何时连接丢失.

GetLastError返回0
Read返回0

但是,如果应用程序已连接,我会遇到这些值eaven所以我可以得到它如何在TCP/IP连接丢失时得到通知.

谢谢

delphi apache-synapse

7
推荐指数
1
解决办法
2593
查看次数

选择简单Apache Synapse Vs WSO2的标准

在评估各种ESB时,我遇到了Apache Synapse和WSO2.在WSO2中,提到WSO2完全使用Synapse并在其基础上构建.

但是我还不清楚WSO2在Synapse上提供了哪些附加功能?(除了商业支持).

我可以看到的一个区别是用于管理代理定义,序列创建等的Web UI.WSO2是否还提供了其他功能而不是Synapse?如果在Synpase和WSO2之间有任何指导可供选择,请分享

我只是想确定为什么要通过Synapse去WSO2.

谢谢,哈里什

wso2 apache-synapse wso2esb

6
推荐指数
1
解决办法
1119
查看次数

带突触的IMAP + TLS/SSL?

我目前正在尝试使用imap向软件添加在用户收件箱中列出未读电子邮件的功能.在使用indy10完全没有成功之后,我发现突触似乎更适合我需要的东西,但我找不到让它运转的方法.

我的问题是登录(因此我认为使用ssl配置),我无法找到"FullSSL","Sock.SSL.SSLType"和"AutoTLS"的工作组合,无论我做"登录()"功能失败.

为了测试,你是否有人能够使用synapse连接到gmail的imap服务器,如果是的话怎么样?

delphi ssl imap apache-synapse

5
推荐指数
1
解决办法
6229
查看次数

如何使用Synapse发送HTTP数据并获得响应(Delphi)

我认为标题很清楚.我想知道如何使用参数/参数发送HTTP POST请求并接收HTML响应 - 使用Delphi的Synapse库.

delphi http http-post request apache-synapse

5
推荐指数
1
解决办法
1万
查看次数

WSO2 ESB 4.8.1中支持的XPath函数

WSO2 ESB 4.8.1似乎不支持以下XPath函数:

  • 逃生HTML-URI()
  • IRI到URI()
  • 编码换URI()

有谁知道支持哪些XPath功能以及WSO2 ESB 4.8.1中不支持哪些功能?

xpath esb function wso2 apache-synapse

4
推荐指数
1
解决办法
3649
查看次数

Lazarus/FreePascal,Synapse将文件发送到TCPBlockSocket

我试图制作一个模拟nc(netcat)工具.打开文件并将其发送到TCP套接字.

客户(发件人)方

procedure TForm1.SpeedButton3Click(Sender: TObject);
var Client:TTCPBlockSocket;
    FS: TFileStream;
begin
  Client:=TTCPBlockSocket.Create;
  Client.RaiseExcept:=True;
  Client.Connect('192.168.1.95','9999');
  FS:=TFileStream.Create('/tmp/test_print.pdf',fmOpenRead);
  FS.Position:=0;
  Client.SendStream(FS);
  FS.Free;
  Client.CloseSocket;
  Client.Free;
end;        
Run Code Online (Sandbox Code Playgroud)

服务器(接收方)方面

nc -l 192.168.1.95 9999> test.pdf

运行后我得到test.pdf但md5sum无效

fe2e5d86acd267ca39a9c15c456e1be0  /tmp/test_print.pdf
34d755aa81d72f525a5e691e98bed283  test.pdf
Run Code Online (Sandbox Code Playgroud)

尺寸也不同

-rw-rw---- 1 user1 DomainUsers 46444 ???  8 17:11 /tmp/test_print.pdf
-rw-r--r-- 1 user1 DomainUsers 46448 ??? 11 15:40 test.pdf
Run Code Online (Sandbox Code Playgroud)

我做错了什么?我的错误在哪里?

ps test.pdf开头超出4个字节(6c,b5,00,00)

[user1@pandora6 /tmp]$ hexdump -C test.pdf | head -5
00000000  6c b5 00 00 25 50 44 46  2d 31 2e 34 0a 25 c7 …
Run Code Online (Sandbox Code Playgroud)

delphi freepascal apache-synapse netcat lazarus

3
推荐指数
1
解决办法
1061
查看次数

Synapse Delphi HTTPS SSL GET请求

只有对HTTP URL的GET请求才有效.如果我尝试请求HTTPS网址,则它不会返回任何内容.我几乎尝试了一切.感谢任何帮助.

这是我的代码:

 SynHttp.Sock.CreateWithSSL(TSSLOpenSSL);
 SynHttp.Sock.SSLDoConnect;
 SynHttp.HTTPMethod('GET', 'https://www.google.com/');
 Resp.LoadFromStream(SynHttp.Document);
 HtmlResponse := Resp.Text;
Run Code Online (Sandbox Code Playgroud)

SynHTTP是THTTPSend对象.

delphi ssl get request apache-synapse

3
推荐指数
1
解决办法
7360
查看次数

Delphi突触UDP客户端/服务器

我需要使用UDP协议创建带有synapse的服务器和客户端程序.

我创建了服务器程序来收听这样的任何消息

procedure TForm1.Timer1Timer(Sender: TObject);
var
 resive:string;
begin
  InitSocket;
  resive:=UDPResiveSocket.RecvPacket(1000);
  if resive<>'' then Memo1.Lines.Add('>' + resive);

  DeInitSocket;
end;

procedure TForm1.InitSocket;
begin
  if UDPResiveSocket <> nil then
    DeInitSocket;

  UDPResiveSocket := TUDPBlockSocket.Create;
  UDPResiveSocket.CreateSocket;
  UDPResiveSocket.Bind('0.0.0.0','22401');
  UDPResiveSocket.AddMulticast('234.5.6.7');
  UDPResiveSocket.MulticastTTL := 1;
end;

procedure TForm1.DeInitSocket;
begin
  UDPResiveSocket.CloseSocket;
  UDPResiveSocket.Free;
  UDPResiveSocket := nil;
end;
Run Code Online (Sandbox Code Playgroud)

所以我收到所有收到的消息.但我想从此消息的来源发送回复.

我怎样才能做到这一点?我的方法对服务器/客户端有用吗?

delphi client apache-synapse

2
推荐指数
1
解决办法
1万
查看次数

WSO2 ESB 4.6.0中Spring Mediator的工作示例

你好我工作的弹簧调解员WSO2 ESB 4.6.0,使用教程

我收到错误如下:

ERROR - SpringMediator Cannot look up Spring configuration conf/sample/resources/spring/springsample.xml

ERROR - SpringMediatorCannot reference application context with key : conf/sample/resources/spring/springsample.xml
Run Code Online (Sandbox Code Playgroud)

你能解释一下如何解决这个问题.

spring wso2 apache-synapse wso2esb wso2carbon

1
推荐指数
1
解决办法
1873
查看次数

标注调解员doe没有在WSO2 ESB 4.7.0中给出任何响应

当我在wso2 esb中使用call out mediator时,使用DSS Endpoint我只收到请求,我没有得到响应,即使我把登录按顺序排列.我在这里发送我的代理服务.

 <proxy xmlns="http://ws.apache.org/ns/synapse"
           name="Binaryformat"
           transports="https http"
           startOnLoad="true"
           trace="disable">
       <description/>
       <target>
          <inSequence>
    <property name="messageType" value="application/json" scope="axis2"/>
             <property name="ContentType" value="application/json" scope="axis2"/>
             <log level="full">
                <property name="M1" value="*************Callout  PROXY*************"/>
             </log>

             <callout serviceURL="http://192.168.1.201:9769/services/emp_DataService/">
                <source type="envelope"/>
                <target key="response"/>
             </callout>
             <log level="full">
                <property name="Status" expression="get-property('response')"/>
             </log>
             <header name="To" action="remove"/>
             <property name="RESPONSE" value="true"/>
             <!--<property name="OUT_ONLY" value="true"/>-->
             <send/>
          </inSequence>
          <outSequence>
            <log level="full">
                <property name="Status" expression="get-property('response')"/>
             </log>
    <payloadFactory media-type="xml">
                <format>
    <response>outonly</response>
                </format>
                <args/>
             </payloadFactory>
             <property name="OUT_ONLY" value="true"/>
             <send/>
          </outSequence>
       </target>
    </proxy>
Run Code Online (Sandbox Code Playgroud)

wso2 apache-synapse wso2esb wso2carbon

0
推荐指数
1
解决办法
2007
查看次数

Pascal Delphi - 未声明的标识符

我正在使用Delphi项目中的Synapse库来进行一些网络连接.

当我尝试使用外部单元中定义的类型之一时,即:'TTCPBlockSocket',它有红色下划线并显示"Undeclared Identifier'TTCPBlockSocket'".

这些文件都在正确的文件夹中,'uses'语句可以找到它们并显示没有错误.

奇怪的是,我在另一个项目中有相同的设置,并且该项目中没有错误.

注意:我无法安装/编辑软件/设置,因此我无法添加任何修复程序.

delphi pascal identifier apache-synapse

0
推荐指数
1
解决办法
3474
查看次数

如何下载更快?

将网页源下载到备忘录组件的最快方法是什么?我使用Indy和HttpCli组件.

问题是我有一个填充了100多个站点的列表框,我的程序将源代码下载到备忘录并解析该源文件的mp3文件.它类似于谷歌音乐搜索程序; 它使用Google查询来简化Google搜索.

我开始阅读导致我的问题的线程:我可以在具有解析功能的线程中创建一个IdHttp实例并告诉它解析列表框中的一半网站吗?

所以基本上当用户点击解析时,主线程应该这样做:

for i := 0 to listbox1.items.count div 2 do
    get and parse
Run Code Online (Sandbox Code Playgroud)

,另一个线程应该做:

for i := form1.listbox1.items.count div 2 to form1.listbox1.items.count - 1 do
    get and parse.
Run Code Online (Sandbox Code Playgroud)

,所以他们会form1.listbox2在同一时间添加解析的内容.或者在主线程中启动两个IdHttp实例可能更容易; 一个是上半部分,另一个是第二个?

为此:我应该使用Indy还是Synapse?

delphi indy apache-synapse

0
推荐指数
2
解决办法
1239
查看次数