ssl

2012-02-19 31 views
9

ile çalışan bir java stomp istemci kitaplığına ihtiyacım var java (gozirra, stompj, activemq) için birkaç stomp kitaplığı deniyorum. Tüm bu kitaplıklar, yalnızca bir örnek olması gibi kötü belgelere sahiptir ve ciddi bir sorunum var:ssl

SSL desteğine ihtiyacım var.

Stomp + ssl protokolü var ve activemq tarafından destekleniyor ancak bunu destekleyen bir Java istemcisi bulamıyorum.

+0

Sadece merak ... neden Stomp kullanarak? –

+0

Uygulama bir Android uygulamasıdır ve JMS veya openwire'i (bildiğim kadarıyla) kullanamıyorum. – mgiammarco

+0

Çalışan bir stomp + ssl istemcisi buldunuz mu? – alexvetter

cevap

2

yapmak bu şekilde: müşteri Java ise

   System.setProperty("javax.net.ssl.keyStore", 
      "/home/foo/.keystore/client.ks"); 
    System.setProperty("javax.net.ssl.keyStorePassword", "changeme"); 
    System.setProperty("javax.net.ssl.trustStore", 
      "/home/foo/.keystore/client.ts"); 

    StompConnection connection = new StompConnection(); 
    SSLSocketFactory factory = (SSLSocketFactory) SSLSocketFactory 
      .getDefault(); 
    SSLSocket sslsocket = (SSLSocket) factory.createSocket("127.0.0.1", 
      61612); 
    connection.open(sslsocket); 
3

I ActiveMQ 5.2 ve aynı zamanda sözü edilen

REST API durumu muhafaza edilmesi için izin mobil cihazlar için daha iyi bir uyum olabilir o kadar artar (aşağıdaki kopyalanan örneğin) dahil the experimental Stomp API başvuran robot üzerinde JMS yaklaşık this forum discussion bulunan sadece komisyoncuya.

StompConnection connection = new StompConnection(); 
connection.open("localhost", 61613); 

connection.connect("system", "manager"); 
StompFrame connect = connection.receive(); 
if (!connect.getAction().equals(Stomp.Responses.CONNECTED)) { 
    throw new Exception ("Not connected"); 
} 

connection.begin("tx1"); 
connection.send("/queue/test", "message1", "tx1", null); 
connection.send("/queue/test", "message2", "tx1", null); 
connection.commit("tx1"); 

connection.subscribe("/queue/test", Subscribe.AckModeValues.CLIENT); 

connection.begin("tx2"); 

StompFrame message = connection.receive(); 
System.out.println(message.getBody()); 
connection.ack(message, "tx2"); 

message = connection.receive(); 
System.out.println(message.getBody()); 
connection.ack(message, "tx2"); 

connection.commit("tx2"); 
connection.disconnect(); 
+0

Teşekkür ederim ama en az üç java stomp istemcisini bulduk (ve denedim) ve çalışıyorlar. Ne yazık ki SSL yok ve buna çok ihtiyacım var. REST fikri için teşekkürler ama ben tüm stomp girişimleri başarısız sonra deneyeceğim. – mgiammarco

+0

SSL belgelerinizin çalıştığından emin misiniz? Herhangi bir STOMP + SSL istemcisiyle (Java dışı) başarı elde ettiniz mi? –

+0

Stomp + ssl protokolünü kullanmak için activemq sunucusunu başarıyla yapılandırdığımı söyleyebilirim. Telnet ile çalıştı, bir ssl görüşmesi başlattı. Henüz herhangi bir müşteri ile (java veya java olmayan) denemedim. – mgiammarco

2

değil o Android'de çalıştığından emin ama bir cami Github geçerli FuseSource StompJMS istemcisidir. Her iki standart TCP ve SSL aktarımına sahip olan hwatdispatch kütüphanesini kullanır. ActiveMQ gelen kütüphanesi ile

+0

Önerinizi izledikten sonra denedim, ssl'yi desteklediğini gördüm, ancak örnek ve hiçbir belgenin olmaması nedeniyle, anahtar deposunu yapılandıramıyor ve böylece ssl bağlantısı başarısız oluyor. Herhangi bir fikir? – mgiammarco

+0

Tamam, FuseSource Stomp uygulamasının ssl ile çalıştığını ancak belgelerin eksik olduğunu onaylıyorum ... – mgiammarco

+0

Bu, korkunç bir lisansa sahiptir - bunu kullanırsanız uygulama kaynak kodunuzu serbestçe kullanmanız gerekir, yani ticari olarak kullanılamaz. – tentimes