2017-02-08 22 views
0

私はRedis Cloud Memcachedに接続しようとしていますが、エラーが発生します(下記参照)。私は、ユーザー名、パスワード、ホスト、およびポートがapps.redislabs.comインターフェイスで正しいことを確認しました。 SASLを無効にして認証されていない場合は、接続できます。SpyemcachedからRedis Cloud Memcachedへの認証方法は?

どうすれば診断できますか? (。spymemcached 2.11.6を使用して)

import net.spy.memcached.auth.*; 
import net.spy.memcached.*; 
... 
List<InetSocketAddress> addresses = Collections.singletonList(addr); 
AuthDescriptor ad = new AuthDescriptor(new String[] { "CRAM-MD5", "PLAIN" }, 
     new PlainCallbackHandler(user, password)); 
MemcachedClient mc = new MemcachedClient(new ConnectionFactoryBuilder() 
     .setProtocol(ConnectionFactoryBuilder.Protocol.BINARY) 
     .setAuthDescriptor(ad).build(), 
AddrUtil.getAddresses(host + ":" + port)); 

スタックトレース:

net.spy.memcached.MemcachedConnection: Added {QA sa=pub-memcache-14154.us-central1-1-1.gce.garantiadata.com/104.197.191.74:14514, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0} to connect queue 
net.spy.memcached.protocol.binary.BinaryMemcachedNodeImpl: Discarding partially completed op: SASL auth operation 
net.spy.memcached.MemcachedConnection: Reconnecting due to exception on {QA sa=pub-memcache-14154.us-central1-1-1.gce.garantiadata.com/104.197.191.74:14514, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=1} 
java.io.IOException: An existing connection was forcibly closed by the remote host 
    at sun.nio.ch.SocketDispatcher.read0(Native Method) 
    at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43) 
    at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) 
    at sun.nio.ch.IOUtil.read(IOUtil.java:192) 
    at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380) 
    at net.spy.memcached.MemcachedConnection.handleReads(MemcachedConnection.java:820) 
    at net.spy.memcached.MemcachedConnection.handleReadsAndWrites(MemcachedConnection.java:720) 
    at net.spy.memcached.MemcachedConnection.handleIO(MemcachedConnection.java:683) 
    at net.spy.memcached.MemcachedConnection.handleIO(MemcachedConnection.java:436) 
    at net.spy.memcached.MemcachedConnection.run(MemcachedConnection.java:1446) 
net.spy.memcached.MemcachedConnection: Closing, and reopening {QA sa=pub-memcache-14154.us-central1-1-1.gce.garantiadata.com/104.197.191.74:14514, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=1}, attempt 0. 
net.spy.memcached.MemcachedConnection: Could not redistribute to another node, retrying primary node for foo. 

答えて

3

は、あなたのAuthDescriptior宣言で"CRAM-MD5"を失います。

私のテストでは、次の作品:(ユーザー、パス、およびURL削除)

AuthDescriptor ad = new AuthDescriptor(new String[] {"PLAIN"}, new PlainCallbackHandler(user, pass)); 
MemcachedClient mc = null; 
    try { 
     mc = new MemcachedClient(
     new ConnectionFactoryBuilder() 
      .setProtocol(ConnectionFactoryBuilder.Protocol.BINARY) 
      .setAuthDescriptor(ad).build(), 
     AddrUtil.getAddresses(host + ":" + port)); 
    } catch (IOException e) { 
     // handle exception 
    } 
mc.set("foo", 0, "bar"); 
String value = (String) mc.get("foo"); 
System.out.println(value); 
+0

OPはRedisのLabsのサポートに連絡している必要があります...ああ、私は誰もが、とにかくここにある参照;) –

+0

んでしたそれ! PLAINを使用するとセキュリティが低下しますか? –

関連する問題