You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by bs...@apache.org on 2018/01/31 00:18:48 UTC
[geode] 03/03: wip - tests are failing
This is an automated email from the ASF dual-hosted git repository.
bschuchardt pushed a commit to branch feature/GEODE-4439
in repository https://gitbox.apache.org/repos/asf/geode.git
commit fbefe7d7ca484cca781fff1b953d23d69a763b7d
Author: Bruce Schuchardt <bs...@pivotal.io>
AuthorDate: Tue Jan 30 15:56:43 2018 -0800
wip - tests are failing
---
.../client/internal/ClientSideHandshakeImpl.java | 4 +++-
.../internal/cache/tier/ClientSideHandshake.java | 2 +-
.../internal/cache/tier/ServerSideHandshake.java | 2 +-
.../internal/cache/tier/sockets/EncryptorImpl.java | 28 ++++++----------------
.../internal/cache/tier/sockets/Handshake.java | 20 +++++++++++++++-
.../cache/tier/sockets/ServerConnection.java | 10 ++++----
.../tier/sockets/ServerSideHandshakeImpl.java | 3 ++-
.../cache/tier/sockets/ServerConnectionTest.java | 2 +-
8 files changed, 39 insertions(+), 32 deletions(-)
diff --git a/geode-core/src/main/java/org/apache/geode/cache/client/internal/ClientSideHandshakeImpl.java b/geode-core/src/main/java/org/apache/geode/cache/client/internal/ClientSideHandshakeImpl.java
index ea2a80a..8db79a3 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/client/internal/ClientSideHandshakeImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/client/internal/ClientSideHandshakeImpl.java
@@ -57,6 +57,7 @@ import org.apache.geode.internal.cache.tier.ClientSideHandshake;
import org.apache.geode.internal.cache.tier.CommunicationMode;
import org.apache.geode.internal.cache.tier.Encryptor;
import org.apache.geode.internal.cache.tier.sockets.ClientProxyMembershipID;
+import org.apache.geode.internal.cache.tier.sockets.EncryptorImpl;
import org.apache.geode.internal.cache.tier.sockets.Handshake;
import org.apache.geode.internal.cache.tier.sockets.ServerQueueStatus;
import org.apache.geode.internal.i18n.LocalizedStrings;
@@ -98,6 +99,7 @@ public class ClientSideHandshakeImpl extends Handshake implements ClientSideHand
this.replyCode = REPLY_OK;
setOverrides();
this.credentials = null;
+ this.encryptor = new EncryptorImpl(distributedSystem.getSecurityLogWriter());
}
/**
@@ -454,6 +456,6 @@ public class ClientSideHandshakeImpl extends Handshake implements ClientSideHand
* @return
*/
public Encryptor getEncryptor() {
- return this;
+ return encryptor;
}
}
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/ClientSideHandshake.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/ClientSideHandshake.java
index c472fcd..14877b4 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/ClientSideHandshake.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/ClientSideHandshake.java
@@ -25,7 +25,7 @@ import org.apache.geode.internal.cache.tier.sockets.ServerQueueStatus;
import org.apache.geode.security.AuthenticationFailedException;
import org.apache.geode.security.AuthenticationRequiredException;
-public interface ClientSideHandshake extends Encryptor {
+public interface ClientSideHandshake {
Encryptor getEncryptor();
ClientProxyMembershipID getMembershipId();
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/ServerSideHandshake.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/ServerSideHandshake.java
index f382609..ce8aa8f 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/ServerSideHandshake.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/ServerSideHandshake.java
@@ -27,7 +27,7 @@ import org.apache.geode.internal.cache.tier.sockets.ClientProxyMembershipID;
* <code>ClientHandShake</code> represents a handshake from the client.
*
*/
-public interface ServerSideHandshake extends Encryptor {
+public interface ServerSideHandshake {
boolean isOK();
ClientProxyMembershipID getMembershipId();
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/EncryptorImpl.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/EncryptorImpl.java
index c6e73bf..323c09f 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/EncryptorImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/EncryptorImpl.java
@@ -130,7 +130,7 @@ public class EncryptorImpl implements Encryptor{
this.appSecureMode = encryptor.appSecureMode;
}
- EncryptorImpl(LogWriter logWriter) {
+ public EncryptorImpl(LogWriter logWriter) {
this.logWriter = logWriter;
}
@@ -384,15 +384,7 @@ public class EncryptorImpl implements Encryptor{
// Expect the alias and signature in the reply
acceptanceCode = dis.readByte();
- if (acceptanceCode != REPLY_OK && acceptanceCode != REPLY_AUTH_NOT_REQUIRED) {
- // Ignore the useless data
- dis.readByte();
- dis.readInt();
- if (!isNotification) {
- DataSerializer.readByteArray(dis);
- }
- readMessage(dis, dos, acceptanceCode, member);
- } else if (acceptanceCode == REPLY_OK) {
+ if (acceptanceCode == REPLY_OK) {
// Get the public key of the other side
keyBytes = DataSerializer.readByteArray(dis);
if (requireAuthentication) {
@@ -448,10 +440,11 @@ public class EncryptorImpl implements Encryptor{
return acceptanceCode;
}
- void writeEncryptedCredentials(DataOutputStream dos, DataInputStream dis,
+ byte writeEncryptedCredentials(DataOutputStream dos, DataInputStream dis,
Properties p_credentials,
boolean isNotification, DistributedMember member,
HeapDataOutputStream heapdos) throws IOException {
+ byte acceptanceCode;
try {
logWriter.fine("HandShake: using Diffie-Hellman key exchange with algo " + dhSKAlgo);
boolean requireAuthentication =
@@ -481,16 +474,8 @@ public class EncryptorImpl implements Encryptor{
dos.flush();
// Expect the alias and signature in the reply
- byte acceptanceCode = dis.readByte();
- if (acceptanceCode != REPLY_OK && acceptanceCode != REPLY_AUTH_NOT_REQUIRED) {
- // Ignore the useless data
- dis.readByte();
- dis.readInt();
- if (!isNotification) {
- DataSerializer.readByteArray(dis);
- }
- readMessage(dis, dos, acceptanceCode, member);
- } else if (acceptanceCode == REPLY_OK) {
+ acceptanceCode = dis.readByte();
+ if (acceptanceCode == REPLY_OK) {
// Get the public key of the other side
keyBytes = DataSerializer.readByteArray(dis);
if (requireAuthentication) {
@@ -546,6 +531,7 @@ public class EncryptorImpl implements Encryptor{
throw new AuthenticationFailedException("HandShake failed in Diffie-Hellman key exchange",
ex);
}
+ return acceptanceCode;
}
void readEncryptedCredentials(DataInputStream dis, DataOutputStream dos,
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/Handshake.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/Handshake.java
index 37412c4..e76ef7f 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/Handshake.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/Handshake.java
@@ -205,6 +205,15 @@ public abstract class Handshake {
}
byte acceptanceCode = -1;
acceptanceCode = encryptor.writeEncryptedCredential(dos, dis, isNotification, member, heapdos);
+ if (acceptanceCode != REPLY_OK && acceptanceCode != REPLY_AUTH_NOT_REQUIRED) {
+ // Ignore the useless data
+ dis.readByte();
+ dis.readInt();
+ if (!isNotification) {
+ DataSerializer.readByteArray(dis);
+ }
+ readMessage(dis, dos, acceptanceCode, member);
+ }
dos.flush();
return acceptanceCode;
}
@@ -246,7 +255,16 @@ public abstract class Handshake {
return;
}
- encryptor.writeEncryptedCredentials(dos, dis, p_credentials, isNotification, member, heapdos);
+ byte acceptanceCode = encryptor.writeEncryptedCredentials(dos, dis, p_credentials, isNotification, member, heapdos);
+ if (acceptanceCode != REPLY_OK && acceptanceCode != REPLY_AUTH_NOT_REQUIRED) {
+ // Ignore the useless data
+ dis.readByte();
+ dis.readInt();
+ if (!isNotification) {
+ DataSerializer.readByteArray(dis);
+ }
+ readMessage(dis, dos, acceptanceCode, member);
+ }
dos.flush();
}
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerConnection.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerConnection.java
index 4e86396..56b18a0 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerConnection.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerConnection.java
@@ -620,7 +620,7 @@ public abstract class ServerConnection implements Runnable {
try {
byte[] secureBytes = this.requestMsg.getSecureBytes();
- secureBytes = ((Handshake) this.handshake).decryptBytes(secureBytes);
+ secureBytes = this.handshake.getEncryptor().decryptBytes(secureBytes);
AuthIds aIds = new AuthIds(secureBytes);
long uniqueId = aIds.getUniqueId();
@@ -951,7 +951,7 @@ public abstract class ServerConnection implements Runnable {
try {
byte[] secureBytes = msg.getSecureBytes();
- secureBytes = ((Handshake) this.handshake).decryptBytes(secureBytes);
+ secureBytes = this.handshake.getEncryptor().decryptBytes(secureBytes);
// need to decrypt it first then get connectionid
AuthIds aIds = new AuthIds(secureBytes);
@@ -1013,7 +1013,7 @@ public abstract class ServerConnection implements Runnable {
byte[] secureBytes = msg.getSecureBytes();
- secureBytes = ((Handshake) this.handshake).decryptBytes(secureBytes);
+ secureBytes = this.handshake.getEncryptor().decryptBytes(secureBytes);
// need to decrypt it first then get connectionid
AuthIds aIds = new AuthIds(secureBytes);
@@ -1026,7 +1026,7 @@ public abstract class ServerConnection implements Runnable {
byte[] credBytes = msg.getPart(0).getSerializedForm();
- credBytes = ((Handshake) this.handshake).decryptBytes(credBytes);
+ credBytes = this.handshake.getEncryptor().decryptBytes(credBytes);
ByteArrayInputStream bis = new ByteArrayInputStream(credBytes);
DataInputStream dinp = new DataInputStream(bis);
@@ -1727,7 +1727,7 @@ public abstract class ServerConnection implements Runnable {
hdos.writeLong(id);
- return ((Handshake) this.handshake).encryptBytes(hdos.toByteArray());
+ return this.handshake.getEncryptor().encryptBytes(hdos.toByteArray());
} finally {
hdos.close();
}
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerSideHandshakeImpl.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerSideHandshakeImpl.java
index 8d2f77a..dea11e7 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerSideHandshakeImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerSideHandshakeImpl.java
@@ -51,6 +51,7 @@ public class ServerSideHandshakeImpl extends Handshake implements ServerSideHand
this.clientVersion = clientVersion;
this.system = sys;
this.securityService = securityService;
+ this.encryptor = new EncryptorImpl(sys.getSecurityLogWriter());
{
int soTimeout = -1;
@@ -185,7 +186,7 @@ public class ServerSideHandshakeImpl extends Handshake implements ServerSideHand
@Override
public Encryptor getEncryptor() {
- return this;
+ return encryptor;
}
private void sendCredentialsForWan(OutputStream out, InputStream in) {
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/ServerConnectionTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/ServerConnectionTest.java
index d5f8baf..fa08df8 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/ServerConnectionTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/ServerConnectionTest.java
@@ -231,7 +231,7 @@ public class ServerConnectionTest {
long fakeId = -1;
MessageIdExtractor extractor = mock(MessageIdExtractor.class);
- when(extractor.getUniqueIdFromMessage(getRequestMessage(), handshake,
+ when(extractor.getUniqueIdFromMessage(getRequestMessage(), handshake.getEncryptor(),
Connection.DEFAULT_CONNECTION_ID)).thenReturn(fakeId);
setMessageIdExtractor(extractor);
}
--
To stop receiving notification emails like this one, please contact
bschuchardt@apache.org.