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/11/20 22:10:41 UTC
[geode] 01/01: GEODE-6034 Protobuf clients should not access or
modify internal regions
This is an automated email from the ASF dual-hosted git repository.
bschuchardt pushed a commit to branch feature/GEODE-6034
in repository https://gitbox.apache.org/repos/asf/geode.git
commit 37233365ee11fb5042a9c57cf817ca0ff155056e
Author: Bruce Schuchardt <bs...@pivotal.io>
AuthorDate: Tue Nov 20 08:51:19 2018 -0800
GEODE-6034 Protobuf clients should not access or modify internal regions
The Protobuf API now disallows access to internal cache regions
---
.../experimental/driver/AuthenticationTest.java | 15 ++++-
...henticationTest.java => AuthorizationTest.java} | 65 ++++++++++++++--------
.../protobuf/v1/AuthenticationIntegrationTest.java | 2 +-
.../protobuf/v1/AuthorizationIntegrationTest.java | 2 +-
.../protobuf/security/SecureCacheImpl.java | 2 +-
.../protobuf/v1/ServerMessageExecutionContext.java | 4 +-
.../OutputCapturingServerConnectionTest.java | 4 +-
.../tier/sockets/ProtobufServerConnectionTest.java | 4 +-
.../protobuf/ProtobufStreamProcessorTest.java | 5 +-
.../protobuf/security/SecureCacheImplTest.java | 4 +-
.../security/SecureFunctionServiceImplTest.java | 4 +-
...ionOnGroupRequestOperationHandlerJUnitTest.java | 4 +-
...onOnMemberRequestOperationHandlerJUnitTest.java | 4 +-
...onOnRegionRequestOperationHandlerJUnitTest.java | 4 +-
...egionNamesRequestOperationHandlerJUnitTest.java | 4 +-
.../GetSizeRequestOperationHandlerJUnitTest.java | 4 +-
.../v1/operations/OperationHandlerJUnitTest.java | 5 +-
17 files changed, 97 insertions(+), 39 deletions(-)
diff --git a/geode-experimental-driver/src/integrationTest/java/org/apache/geode/experimental/driver/AuthenticationTest.java b/geode-experimental-driver/src/integrationTest/java/org/apache/geode/experimental/driver/AuthenticationTest.java
index bcf72e6..f4d11e9 100644
--- a/geode-experimental-driver/src/integrationTest/java/org/apache/geode/experimental/driver/AuthenticationTest.java
+++ b/geode-experimental-driver/src/integrationTest/java/org/apache/geode/experimental/driver/AuthenticationTest.java
@@ -15,6 +15,7 @@
package org.apache.geode.experimental.driver;
import static org.apache.geode.internal.Assert.assertTrue;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
import java.io.IOException;
import java.util.Properties;
@@ -39,7 +40,7 @@ public class AuthenticationTest {
@Rule
public RestoreSystemProperties restoreSystemProperties = new RestoreSystemProperties();
- private static final String TEST_USERNAME = "cluster";
+ private static final String TEST_USERNAME = "";
private static final String TEST_PASSWORD = TEST_USERNAME;
private Locator locator;
private Cache cache;
@@ -89,4 +90,16 @@ public class AuthenticationTest {
.setPassword(TEST_PASSWORD).create();
assertTrue(driver.isConnected());
}
+
+ @Test
+ public void driverWithBadPasswordIsRejected() throws Exception {
+ CacheServer server = cache.addCacheServer();
+ server.setPort(0);
+ server.start();
+ DriverFactory factory =
+ new DriverFactory().addLocator("localhost", locatorPort).setUsername(TEST_USERNAME)
+ .setPassword("my my my");
+ assertThatThrownBy(() -> factory.create()).isInstanceOf(IOException.class);
+ }
+
}
diff --git a/geode-experimental-driver/src/integrationTest/java/org/apache/geode/experimental/driver/AuthenticationTest.java b/geode-experimental-driver/src/integrationTest/java/org/apache/geode/experimental/driver/AuthorizationTest.java
similarity index 50%
copy from geode-experimental-driver/src/integrationTest/java/org/apache/geode/experimental/driver/AuthenticationTest.java
copy to geode-experimental-driver/src/integrationTest/java/org/apache/geode/experimental/driver/AuthorizationTest.java
index bcf72e6..641c108 100644
--- a/geode-experimental-driver/src/integrationTest/java/org/apache/geode/experimental/driver/AuthenticationTest.java
+++ b/geode-experimental-driver/src/integrationTest/java/org/apache/geode/experimental/driver/AuthorizationTest.java
@@ -14,38 +14,42 @@
*/
package org.apache.geode.experimental.driver;
-import static org.apache.geode.internal.Assert.assertTrue;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
import java.io.IOException;
+import java.util.Collections;
import java.util.Properties;
+import org.assertj.core.api.ThrowableAssert;
import org.junit.After;
import org.junit.Before;
-import org.junit.Rule;
import org.junit.Test;
-import org.junit.contrib.java.lang.system.RestoreSystemProperties;
import org.junit.experimental.categories.Category;
import org.apache.geode.cache.Cache;
import org.apache.geode.cache.CacheFactory;
+import org.apache.geode.cache.RegionAttributes;
+import org.apache.geode.cache.RegionShortcut;
import org.apache.geode.cache.server.CacheServer;
import org.apache.geode.distributed.ConfigurationProperties;
import org.apache.geode.distributed.Locator;
+import org.apache.geode.internal.cache.GemFireCacheImpl;
+import org.apache.geode.internal.cache.InternalRegionArguments;
+import org.apache.geode.internal.cache.LocalRegion;
import org.apache.geode.security.SimpleTestSecurityManager;
import org.apache.geode.test.junit.categories.ClientServerTest;
@Category({ClientServerTest.class})
-public class AuthenticationTest {
- @Rule
- public RestoreSystemProperties restoreSystemProperties = new RestoreSystemProperties();
-
- private static final String TEST_USERNAME = "cluster";
+public class AuthorizationTest {
+ private static final String TEST_USERNAME = "";
private static final String TEST_PASSWORD = TEST_USERNAME;
private Locator locator;
private Cache cache;
private Driver driver;
private int locatorPort;
+
@Before
public void createServer() throws Exception {
System.setProperty("geode.feature-protobuf-protocol", "true");
@@ -70,23 +74,40 @@ public class AuthenticationTest {
}
@Test
- public void driverFailsToConnectWhenThereAreNoServers() throws Exception {
- try {
- driver = new DriverFactory().addLocator("localhost", locatorPort).create();
- } catch (IOException e) {
- // success
- return;
- }
- throw new AssertionError("expected an IOException");
- }
+ public void performOperationsOnInternalRegion() throws Exception {
+ // we need to use internal APIs to create an "internal" region
+ GemFireCacheImpl serverCache = (GemFireCacheImpl) cache;
+ InternalRegionArguments internalRegionArguments = new InternalRegionArguments();
+ internalRegionArguments.setIsUsedForPartitionedRegionAdmin(true);
+ RegionAttributes<String, String> attributes =
+ serverCache.getRegionAttributes(RegionShortcut.REPLICATE.toString());
+ LocalRegion serverRegion =
+ (LocalRegion) serverCache.createVMRegion("internalRegion", attributes,
+ internalRegionArguments);
+ assertThat(serverRegion.isInternalRegion()).isTrue();
- @Test
- public void driverCanConnectWhenThereAreServers() throws Exception {
CacheServer server = cache.addCacheServer();
server.setPort(0);
server.start();
- driver = new DriverFactory().addLocator("localhost", locatorPort).setUsername(TEST_USERNAME)
- .setPassword(TEST_PASSWORD).create();
- assertTrue(driver.isConnected());
+ Driver driver =
+ new DriverFactory().addLocator("localhost", locatorPort).setUsername(TEST_USERNAME)
+ .setPassword(TEST_PASSWORD).create();
+ Region region = driver.getRegion("internalRegion");
+ assertThat(region).isNotNull();
+ assertFailure(() -> region.clear());
+ assertFailure(() -> region.get("some key"));
+ assertFailure(() -> region.getAll(Collections.singleton("some key")));
+ assertFailure(() -> region.keySet());
+ assertFailure(() -> region.put("some key", "some value"));
+ assertFailure(() -> region.putAll(Collections.singletonMap("some key", "some value")));
+ assertFailure(() -> region.putIfAbsent("some key", "some value"));
+ assertFailure(() -> region.remove("some key"));
+ assertFailure(() -> region.size());
+ }
+
+ private void assertFailure(final ThrowableAssert.ThrowingCallable callable) {
+ assertThatExceptionOfType(IOException.class).isThrownBy(callable)
+ .withMessageContaining(
+ "Not authorized");
}
}
diff --git a/geode-protobuf/src/integrationTest/java/org/apache/geode/internal/protocol/protobuf/v1/AuthenticationIntegrationTest.java b/geode-protobuf/src/integrationTest/java/org/apache/geode/internal/protocol/protobuf/v1/AuthenticationIntegrationTest.java
index d1be0cb..a18ac07 100644
--- a/geode-protobuf/src/integrationTest/java/org/apache/geode/internal/protocol/protobuf/v1/AuthenticationIntegrationTest.java
+++ b/geode-protobuf/src/integrationTest/java/org/apache/geode/internal/protocol/protobuf/v1/AuthenticationIntegrationTest.java
@@ -112,7 +112,7 @@ public class AuthenticationIntegrationTest {
@Override
public boolean authorize(Object principal, ResourcePermission permission) {
- return principal == authorizedPrincipal;
+ return principal.equals(authorizedPrincipal);
}
}
diff --git a/geode-protobuf/src/integrationTest/java/org/apache/geode/internal/protocol/protobuf/v1/AuthorizationIntegrationTest.java b/geode-protobuf/src/integrationTest/java/org/apache/geode/internal/protocol/protobuf/v1/AuthorizationIntegrationTest.java
index 2d37880..b98557e 100644
--- a/geode-protobuf/src/integrationTest/java/org/apache/geode/internal/protocol/protobuf/v1/AuthorizationIntegrationTest.java
+++ b/geode-protobuf/src/integrationTest/java/org/apache/geode/internal/protocol/protobuf/v1/AuthorizationIntegrationTest.java
@@ -100,7 +100,7 @@ public class AuthorizationIntegrationTest {
@Override
public boolean authorize(Object principal, ResourcePermission permission) {
// Only allow data operations and only from the expected principal
- if (principal != securityPrincipal
+ if (!principal.equals(securityPrincipal)
|| permission.getResource() != ResourcePermission.Resource.DATA) {
return false;
}
diff --git a/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/security/SecureCacheImpl.java b/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/security/SecureCacheImpl.java
index 815e3dd..c7f781e 100644
--- a/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/security/SecureCacheImpl.java
+++ b/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/security/SecureCacheImpl.java
@@ -52,7 +52,7 @@ public class SecureCacheImpl implements SecureCache {
private final SecureFunctionService functionService;
public SecureCacheImpl(InternalCache cache, Security security) {
- this.cache = cache;
+ this.cache = cache.getCacheForProcessingClientRequests();
this.security = security;
this.functionService = new SecureFunctionServiceImpl(cache, security);
}
diff --git a/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/ServerMessageExecutionContext.java b/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/ServerMessageExecutionContext.java
index df71e22..6b00a38 100644
--- a/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/ServerMessageExecutionContext.java
+++ b/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/ServerMessageExecutionContext.java
@@ -41,10 +41,10 @@ public class ServerMessageExecutionContext extends MessageExecutionContext {
public ServerMessageExecutionContext(InternalCache cache, ClientStatistics statistics,
SecurityService securityService) {
super(statistics, securityService);
- this.cache = cache;
+ this.cache = cache.getCacheForProcessingClientRequests();
Security security =
securityService.isIntegratedSecurity() ? new NotLoggedInSecurity() : new NoSecurity();
- this.secureCache = new SecureCacheImpl(cache, security);
+ this.secureCache = new SecureCacheImpl(this.cache, security);
}
@Override
diff --git a/geode-protobuf/src/test/java/org/apache/geode/internal/cache/tier/sockets/OutputCapturingServerConnectionTest.java b/geode-protobuf/src/test/java/org/apache/geode/internal/cache/tier/sockets/OutputCapturingServerConnectionTest.java
index 0ed68a9..085f050 100644
--- a/geode-protobuf/src/test/java/org/apache/geode/internal/cache/tier/sockets/OutputCapturingServerConnectionTest.java
+++ b/geode-protobuf/src/test/java/org/apache/geode/internal/cache/tier/sockets/OutputCapturingServerConnectionTest.java
@@ -34,6 +34,7 @@ import org.junit.experimental.categories.Category;
import org.apache.geode.cache.IncompatibleVersionException;
import org.apache.geode.internal.cache.InternalCache;
+import org.apache.geode.internal.cache.InternalCacheForClientAccess;
import org.apache.geode.internal.cache.client.protocol.ClientProtocolProcessor;
import org.apache.geode.internal.cache.tier.CachedRegionHelper;
import org.apache.geode.internal.cache.tier.CommunicationMode;
@@ -87,7 +88,8 @@ public class OutputCapturingServerConnectionTest {
when(socketMock.getRemoteSocketAddress()).thenReturn(inetSocketAddressStub);
when(socketMock.getInetAddress()).thenReturn(inetAddressStub);
- InternalCache cache = mock(InternalCache.class);
+ InternalCache cache = mock(InternalCacheForClientAccess.class);
+ when(cache.getCacheForProcessingClientRequests()).thenReturn(cache);
CachedRegionHelper cachedRegionHelper = mock(CachedRegionHelper.class);
when(cachedRegionHelper.getCache()).thenReturn(cache);
return new ProtobufServerConnection(socketMock, cache, cachedRegionHelper,
diff --git a/geode-protobuf/src/test/java/org/apache/geode/internal/cache/tier/sockets/ProtobufServerConnectionTest.java b/geode-protobuf/src/test/java/org/apache/geode/internal/cache/tier/sockets/ProtobufServerConnectionTest.java
index d365fad..279b317 100644
--- a/geode-protobuf/src/test/java/org/apache/geode/internal/cache/tier/sockets/ProtobufServerConnectionTest.java
+++ b/geode-protobuf/src/test/java/org/apache/geode/internal/cache/tier/sockets/ProtobufServerConnectionTest.java
@@ -36,6 +36,7 @@ import org.mockito.Mockito;
import org.apache.geode.cache.IncompatibleVersionException;
import org.apache.geode.internal.Assert;
import org.apache.geode.internal.cache.InternalCache;
+import org.apache.geode.internal.cache.InternalCacheForClientAccess;
import org.apache.geode.internal.cache.client.protocol.ClientProtocolProcessor;
import org.apache.geode.internal.cache.tier.CachedRegionHelper;
import org.apache.geode.internal.cache.tier.CommunicationMode;
@@ -126,7 +127,8 @@ public class ProtobufServerConnectionTest {
when(socketMock.getRemoteSocketAddress()).thenReturn(inetSocketAddressStub);
when(socketMock.getInetAddress()).thenReturn(inetAddressStub);
- InternalCache cache = mock(InternalCache.class);
+ InternalCache cache = mock(InternalCacheForClientAccess.class);
+ when(cache.getCacheForProcessingClientRequests()).thenReturn(cache);
CachedRegionHelper cachedRegionHelper = mock(CachedRegionHelper.class);
when(cachedRegionHelper.getCache()).thenReturn(cache);
return new ProtobufServerConnection(socketMock, cache, cachedRegionHelper,
diff --git a/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/ProtobufStreamProcessorTest.java b/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/ProtobufStreamProcessorTest.java
index d889a83..0f95930 100644
--- a/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/ProtobufStreamProcessorTest.java
+++ b/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/ProtobufStreamProcessorTest.java
@@ -15,6 +15,7 @@
package org.apache.geode.internal.protocol.protobuf;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@@ -26,6 +27,7 @@ import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.apache.geode.internal.cache.InternalCache;
+import org.apache.geode.internal.cache.InternalCacheForClientAccess;
import org.apache.geode.internal.protocol.TestExecutionContext;
import org.apache.geode.internal.protocol.protobuf.v1.ProtobufStreamProcessor;
import org.apache.geode.test.junit.categories.ClientServerTest;
@@ -38,7 +40,8 @@ public class ProtobufStreamProcessorTest {
OutputStream outputStream = new ByteArrayOutputStream(2);
ProtobufStreamProcessor protobufStreamProcessor = new ProtobufStreamProcessor();
- InternalCache mockInternalCache = mock(InternalCache.class);
+ InternalCache mockInternalCache = mock(InternalCacheForClientAccess.class);
+ when(mockInternalCache.getCacheForProcessingClientRequests()).thenReturn(mockInternalCache);
protobufStreamProcessor.receiveMessage(inputStream, outputStream,
TestExecutionContext.getNoAuthCacheExecutionContext(mockInternalCache));
}
diff --git a/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/security/SecureCacheImplTest.java b/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/security/SecureCacheImplTest.java
index 3318fb3..1974144 100644
--- a/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/security/SecureCacheImplTest.java
+++ b/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/security/SecureCacheImplTest.java
@@ -53,6 +53,7 @@ import org.apache.geode.cache.query.internal.StructImpl;
import org.apache.geode.cache.query.internal.types.ObjectTypeImpl;
import org.apache.geode.cache.query.internal.types.StructTypeImpl;
import org.apache.geode.internal.cache.InternalCache;
+import org.apache.geode.internal.cache.InternalCacheForClientAccess;
import org.apache.geode.security.NotAuthorizedException;
import org.apache.geode.security.ResourcePermission;
import org.apache.geode.test.junit.categories.ClientServerTest;
@@ -68,7 +69,8 @@ public class SecureCacheImplTest {
@Before
public void setUp() {
- cache = mock(InternalCache.class);
+ cache = mock(InternalCacheForClientAccess.class);
+ when(cache.getCacheForProcessingClientRequests()).thenReturn(cache);
region = mock(Region.class);
when(cache.getRegion(REGION)).thenReturn(region);
security = mock(Security.class);
diff --git a/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/security/SecureFunctionServiceImplTest.java b/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/security/SecureFunctionServiceImplTest.java
index a36c114..1cd1966 100644
--- a/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/security/SecureFunctionServiceImplTest.java
+++ b/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/security/SecureFunctionServiceImplTest.java
@@ -36,6 +36,7 @@ import org.apache.geode.cache.Region;
import org.apache.geode.cache.execute.Function;
import org.apache.geode.cache.execute.FunctionService;
import org.apache.geode.internal.cache.InternalCache;
+import org.apache.geode.internal.cache.InternalCacheForClientAccess;
import org.apache.geode.security.NotAuthorizedException;
import org.apache.geode.security.ResourcePermission;
import org.apache.geode.test.junit.categories.ClientServerTest;
@@ -52,7 +53,8 @@ public class SecureFunctionServiceImplTest {
@Before
public void setUp() {
- cache = mock(InternalCache.class);
+ cache = mock(InternalCacheForClientAccess.class);
+ when(cache.getCacheForProcessingClientRequests()).thenReturn(cache);
region = mock(Region.class);
when(cache.getRegion(REGION)).thenReturn(region);
security = mock(Security.class);
diff --git a/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/ExecuteFunctionOnGroupRequestOperationHandlerJUnitTest.java b/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/ExecuteFunctionOnGroupRequestOperationHandlerJUnitTest.java
index f2331f0..cd4915c 100644
--- a/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/ExecuteFunctionOnGroupRequestOperationHandlerJUnitTest.java
+++ b/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/ExecuteFunctionOnGroupRequestOperationHandlerJUnitTest.java
@@ -40,6 +40,7 @@ import org.apache.geode.distributed.internal.DistributionManager;
import org.apache.geode.distributed.internal.InternalDistributedSystem;
import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
import org.apache.geode.internal.cache.InternalCache;
+import org.apache.geode.internal.cache.InternalCacheForClientAccess;
import org.apache.geode.internal.protocol.protobuf.statistics.ProtobufClientStatistics;
import org.apache.geode.internal.protocol.protobuf.v1.FunctionAPI;
import org.apache.geode.internal.protocol.protobuf.v1.ProtobufSerializationService;
@@ -88,7 +89,8 @@ public class ExecuteFunctionOnGroupRequestOperationHandlerJUnitTest {
@Before
public void setUp() throws Exception {
- cacheStub = mock(InternalCache.class);
+ cacheStub = mock(InternalCacheForClientAccess.class);
+ when(cacheStub.getCacheForProcessingClientRequests()).thenReturn(cacheStub);
serializationService = new ProtobufSerializationService();
when(cacheStub.getSecurityService()).thenReturn(mock(SecurityService.class));
diff --git a/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/ExecuteFunctionOnMemberRequestOperationHandlerJUnitTest.java b/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/ExecuteFunctionOnMemberRequestOperationHandlerJUnitTest.java
index 1bb5fcf..af4343d 100644
--- a/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/ExecuteFunctionOnMemberRequestOperationHandlerJUnitTest.java
+++ b/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/ExecuteFunctionOnMemberRequestOperationHandlerJUnitTest.java
@@ -36,6 +36,7 @@ import org.apache.geode.distributed.DistributedSystemDisconnectedException;
import org.apache.geode.distributed.internal.DistributionManager;
import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
import org.apache.geode.internal.cache.InternalCache;
+import org.apache.geode.internal.cache.InternalCacheForClientAccess;
import org.apache.geode.internal.protocol.protobuf.statistics.ProtobufClientStatistics;
import org.apache.geode.internal.protocol.protobuf.v1.FunctionAPI;
import org.apache.geode.internal.protocol.protobuf.v1.ProtobufSerializationService;
@@ -83,7 +84,8 @@ public class ExecuteFunctionOnMemberRequestOperationHandlerJUnitTest {
@Before
public void setUp() throws Exception {
- cacheStub = mock(InternalCache.class);
+ cacheStub = mock(InternalCacheForClientAccess.class);
+ when(cacheStub.getCacheForProcessingClientRequests()).thenReturn(cacheStub);
serializationService = new ProtobufSerializationService();
when(cacheStub.getSecurityService()).thenReturn(mock(SecurityService.class));
diff --git a/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/ExecuteFunctionOnRegionRequestOperationHandlerJUnitTest.java b/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/ExecuteFunctionOnRegionRequestOperationHandlerJUnitTest.java
index 744c8a1..ae870b8 100644
--- a/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/ExecuteFunctionOnRegionRequestOperationHandlerJUnitTest.java
+++ b/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/ExecuteFunctionOnRegionRequestOperationHandlerJUnitTest.java
@@ -35,6 +35,7 @@ import org.apache.geode.cache.execute.Function;
import org.apache.geode.cache.execute.FunctionContext;
import org.apache.geode.cache.execute.FunctionService;
import org.apache.geode.internal.cache.InternalCache;
+import org.apache.geode.internal.cache.InternalCacheForClientAccess;
import org.apache.geode.internal.cache.LocalRegion;
import org.apache.geode.internal.protocol.protobuf.statistics.ProtobufClientStatistics;
import org.apache.geode.internal.protocol.protobuf.v1.FunctionAPI;
@@ -87,7 +88,8 @@ public class ExecuteFunctionOnRegionRequestOperationHandlerJUnitTest {
@Before
public void setUp() {
regionStub = mock(LocalRegion.class);
- cacheStub = mock(InternalCache.class);
+ cacheStub = mock(InternalCacheForClientAccess.class);
+ when(cacheStub.getCacheForProcessingClientRequests()).thenReturn(cacheStub);
serializationService = new ProtobufSerializationService();
when(cacheStub.getRegion(TEST_REGION)).thenReturn(regionStub);
diff --git a/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/GetRegionNamesRequestOperationHandlerJUnitTest.java b/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/GetRegionNamesRequestOperationHandlerJUnitTest.java
index 8db6cd5..b7e3a04 100644
--- a/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/GetRegionNamesRequestOperationHandlerJUnitTest.java
+++ b/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/GetRegionNamesRequestOperationHandlerJUnitTest.java
@@ -31,6 +31,7 @@ import org.junit.experimental.categories.Category;
import org.apache.geode.cache.Region;
import org.apache.geode.internal.cache.InternalCache;
+import org.apache.geode.internal.cache.InternalCacheForClientAccess;
import org.apache.geode.internal.protocol.protobuf.v1.ProtobufRequestUtilities;
import org.apache.geode.internal.protocol.protobuf.v1.RegionAPI;
import org.apache.geode.internal.protocol.protobuf.v1.Result;
@@ -86,7 +87,8 @@ public class GetRegionNamesRequestOperationHandlerJUnitTest extends OperationHan
@Test
public void processReturnsNoCacheRegions() throws Exception {
- InternalCache emptyCache = mock(InternalCache.class);
+ InternalCache emptyCache = mock(InternalCacheForClientAccess.class);
+ when(emptyCache.getCacheForProcessingClientRequests()).thenReturn(emptyCache);
when(emptyCache.rootRegions())
.thenReturn(Collections.unmodifiableSet(new HashSet<Region<String, String>>()));
Result result = operationHandler.process(serializationService,
diff --git a/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/GetSizeRequestOperationHandlerJUnitTest.java b/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/GetSizeRequestOperationHandlerJUnitTest.java
index 845ced1..3cac346 100644
--- a/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/GetSizeRequestOperationHandlerJUnitTest.java
+++ b/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/GetSizeRequestOperationHandlerJUnitTest.java
@@ -34,6 +34,7 @@ import org.apache.geode.cache.RegionAttributes;
import org.apache.geode.cache.RegionDestroyedException;
import org.apache.geode.cache.Scope;
import org.apache.geode.internal.cache.InternalCache;
+import org.apache.geode.internal.cache.InternalCacheForClientAccess;
import org.apache.geode.internal.protocol.protobuf.v1.MessageUtil;
import org.apache.geode.internal.protocol.protobuf.v1.RegionAPI;
import org.apache.geode.internal.protocol.protobuf.v1.Result;
@@ -77,7 +78,8 @@ public class GetSizeRequestOperationHandlerJUnitTest extends OperationHandlerJUn
@Test
public void processReturnsNoCacheRegions() throws Exception {
- InternalCache emptyCache = mock(InternalCache.class);
+ InternalCache emptyCache = mock(InternalCacheForClientAccess.class);
+ when(emptyCache.getCacheForProcessingClientRequests()).thenReturn(emptyCache);
when(emptyCache.rootRegions())
.thenReturn(Collections.unmodifiableSet(new HashSet<Region<String, String>>()));
String unknownRegionName = "UNKNOWN_REGION";
diff --git a/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/OperationHandlerJUnitTest.java b/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/OperationHandlerJUnitTest.java
index f629295..975b122 100644
--- a/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/OperationHandlerJUnitTest.java
+++ b/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/OperationHandlerJUnitTest.java
@@ -15,11 +15,13 @@
package org.apache.geode.internal.protocol.protobuf.v1.operations;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
import org.junit.Before;
import org.junit.experimental.categories.Category;
import org.apache.geode.internal.cache.InternalCache;
+import org.apache.geode.internal.cache.InternalCacheForClientAccess;
import org.apache.geode.internal.protocol.operations.ProtobufOperationHandler;
import org.apache.geode.internal.protocol.protobuf.v1.ProtobufSerializationService;
import org.apache.geode.test.junit.categories.ClientServerTest;
@@ -33,7 +35,8 @@ public class OperationHandlerJUnitTest {
// if we name this setUp, then our children override, which is all kinds of annoying.
@Before
public void setUpForChildJUnitTests() throws Exception {
- cacheStub = mock(InternalCache.class);
+ cacheStub = mock(InternalCacheForClientAccess.class);
+ when(cacheStub.getCacheForProcessingClientRequests()).thenReturn(cacheStub);
serializationService = new ProtobufSerializationService();
}
}