Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 2A71D200CB1 for ; Fri, 9 Jun 2017 22:01:32 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 28E41160BB6; Fri, 9 Jun 2017 20:01:32 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id CAC35160BD4 for ; Fri, 9 Jun 2017 22:01:29 +0200 (CEST) Received: (qmail 21399 invoked by uid 500); 9 Jun 2017 20:01:29 -0000 Mailing-List: contact commits-help@geode.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@geode.apache.org Delivered-To: mailing list commits@geode.apache.org Received: (qmail 21255 invoked by uid 99); 9 Jun 2017 20:01:28 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 09 Jun 2017 20:01:28 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id B545BE0210; Fri, 9 Jun 2017 20:01:28 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: klund@apache.org To: commits@geode.apache.org Date: Fri, 09 Jun 2017 20:01:30 -0000 Message-Id: <93d76a62f83147faa7c38d5c7661d831@git.apache.org> In-Reply-To: <9d55d6520a7a4ac6a1e85e9efc8268ea@git.apache.org> References: <9d55d6520a7a4ac6a1e85e9efc8268ea@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [03/11] geode git commit: Revert "GEODE-2632: use immutable SecurityService impls to improve performance" archived-at: Fri, 09 Jun 2017 20:01:32 -0000 http://git-wip-us.apache.org/repos/asf/geode/blob/fd638d52/geode-core/src/test/java/org/apache/geode/internal/security/DisabledSecurityServiceTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/org/apache/geode/internal/security/DisabledSecurityServiceTest.java b/geode-core/src/test/java/org/apache/geode/internal/security/DisabledSecurityServiceTest.java deleted file mode 100644 index cacbeed..0000000 --- a/geode-core/src/test/java/org/apache/geode/internal/security/DisabledSecurityServiceTest.java +++ /dev/null @@ -1,164 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more contributor license - * agreements. See the NOTICE file distributed with this work for additional information regarding - * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance with the License. You may obtain a - * copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. - */ -package org.apache.geode.internal.security; - -import static org.assertj.core.api.Assertions.*; -import static org.mockito.Mockito.*; - -import org.apache.geode.security.PostProcessor; -import org.apache.geode.test.junit.categories.UnitTest; -import org.apache.shiro.subject.Subject; -import org.apache.shiro.subject.support.SubjectThreadState; -import org.apache.shiro.util.ThreadState; -import org.apache.geode.security.SecurityManager; -import org.junit.Before; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -import java.util.Properties; -import java.util.concurrent.Callable; - -@Category(UnitTest.class) -public class DisabledSecurityServiceTest { - - private DisabledSecurityService disabledSecurityService; - private Subject mockSubject; - - @Before - public void before() throws Exception { - this.disabledSecurityService = new DisabledSecurityService(); - this.mockSubject = mock(Subject.class); - } - - @Test - public void bindSubject_null() throws Exception { - ThreadState threadState = this.disabledSecurityService.bindSubject(null); - assertThat(threadState).isNull(); - } - - @Test - public void bindSubject_subject_shouldReturnThreadState() throws Exception { - ThreadState threadState = this.disabledSecurityService.bindSubject(this.mockSubject); - assertThat(threadState).isNotNull().isInstanceOf(SubjectThreadState.class); - } - - @Test - public void getSubject_beforeLogin_shouldReturnNull() throws Exception { - Subject subject = this.disabledSecurityService.getSubject(); - assertThat(subject).isNull(); - } - - @Test - public void login_null_shouldReturnNull() throws Exception { - Subject subject = this.disabledSecurityService.login(null); - assertThat(subject).isNull(); - } - - @Test - public void login_properties_shouldReturnNull() throws Exception { - Subject subject = this.disabledSecurityService.login(new Properties()); - assertThat(subject).isNull(); - } - - @Test - public void getSubject_afterLogin_shouldReturnNull() throws Exception { - this.disabledSecurityService.login(new Properties()); - Subject subject = this.disabledSecurityService.getSubject(); - assertThat(subject).isNull(); - } - - @Test - public void getSubject_afterLogout_shouldReturnNull() throws Exception { - this.disabledSecurityService.login(new Properties()); - this.disabledSecurityService.logout(); - Subject subject = this.disabledSecurityService.getSubject(); - assertThat(subject).isNull(); - } - - @Test - public void associateWith_callable_shouldReturnSameCallable() throws Exception { - Callable mockCallable = mock(Callable.class); - Callable callable = this.disabledSecurityService.associateWith(mockCallable); - assertThat(callable).isNotNull().isSameAs(mockCallable); - } - - @Test - public void associateWith_null_should() throws Exception { - Callable callable = this.disabledSecurityService.associateWith(null); - assertThat(callable).isNull(); - } - - @Test - public void needPostProcess_returnsFalse() throws Exception { - boolean needPostProcess = this.disabledSecurityService.needPostProcess(); - assertThat(needPostProcess).isFalse(); - } - - @Test - public void postProcess1_value_shouldReturnSameValue() throws Exception { - Object value = new Object(); - Object result = this.disabledSecurityService.postProcess(null, null, value, false); - assertThat(result).isNotNull().isSameAs(value); - } - - @Test - public void postProcess1_null_returnsNull() throws Exception { - Object result = this.disabledSecurityService.postProcess(null, null, null, false); - assertThat(result).isNull(); - } - - @Test - public void postProcess2_value_shouldReturnSameValue() throws Exception { - Object value = new Object(); - Object result = this.disabledSecurityService.postProcess(null, null, null, value, false); - assertThat(result).isNotNull().isSameAs(value); - } - - @Test - public void postProcess2_null_returnsNull() throws Exception { - Object result = this.disabledSecurityService.postProcess(null, null, null, null, false); - assertThat(result).isNull(); - } - - @Test - public void isClientSecurityRequired_returnsFalse() throws Exception { - boolean result = this.disabledSecurityService.isClientSecurityRequired(); - assertThat(result).isFalse(); - } - - @Test - public void isIntegratedSecurity_returnsFalse() throws Exception { - boolean result = this.disabledSecurityService.isIntegratedSecurity(); - assertThat(result).isFalse(); - } - - @Test - public void isPeerSecurityRequired_returnsFalse() throws Exception { - boolean result = this.disabledSecurityService.isPeerSecurityRequired(); - assertThat(result).isFalse(); - } - - @Test - public void getSecurityManager_returnsNull() throws Exception { - SecurityManager securityManager = this.disabledSecurityService.getSecurityManager(); - assertThat(securityManager).isNull(); - } - - @Test - public void getPostProcessor_returnsNull() throws Exception { - PostProcessor postProcessor = this.disabledSecurityService.getPostProcessor(); - assertThat(postProcessor).isNull(); - } -} http://git-wip-us.apache.org/repos/asf/geode/blob/fd638d52/geode-core/src/test/java/org/apache/geode/internal/security/EnabledSecurityServiceTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/org/apache/geode/internal/security/EnabledSecurityServiceTest.java b/geode-core/src/test/java/org/apache/geode/internal/security/EnabledSecurityServiceTest.java deleted file mode 100644 index fca7eae..0000000 --- a/geode-core/src/test/java/org/apache/geode/internal/security/EnabledSecurityServiceTest.java +++ /dev/null @@ -1,184 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more contributor license - * agreements. See the NOTICE file distributed with this work for additional information regarding - * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance with the License. You may obtain a - * copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. - */ -package org.apache.geode.internal.security; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.assertThatThrownBy; -import static org.mockito.Mockito.*; - -import org.apache.geode.internal.security.shiro.RealmInitializer; -import org.apache.geode.security.AuthenticationFailedException; -import org.apache.geode.security.GemFireSecurityException; -import org.apache.geode.security.PostProcessor; -import org.apache.geode.security.SecurityManager; -import org.apache.geode.test.junit.categories.UnitTest; -import org.apache.shiro.subject.Subject; -import org.apache.shiro.subject.support.SubjectThreadState; -import org.apache.shiro.util.ThreadState; -import org.junit.Before; -import org.junit.Ignore; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -import java.util.Properties; -import java.util.concurrent.Callable; - -@Category(UnitTest.class) -public class EnabledSecurityServiceTest { - - private SecurityManager mockSecurityManager; - private PostProcessor mockPostProcessor; - private RealmInitializer spyRealmInitializer; - private Subject mockSubject; - - private EnabledSecurityService securityService; - private EnabledSecurityService securityServiceWithPostProcessor; - - @Before - public void before() throws Exception { - this.mockSecurityManager = mock(SecurityManager.class); - this.mockPostProcessor = mock(PostProcessor.class); - this.spyRealmInitializer = spy(RealmInitializer.class); - this.mockSubject = mock(Subject.class); - - this.securityService = - new EnabledSecurityService(this.mockSecurityManager, null, this.spyRealmInitializer); - this.securityServiceWithPostProcessor = new EnabledSecurityService(this.mockSecurityManager, - this.mockPostProcessor, this.spyRealmInitializer); - } - - @Test - public void bindSubject_nullSubject_shouldReturn_null() throws Exception { - ThreadState threadState = this.securityService.bindSubject(null); - assertThat(threadState).isNull(); - } - - @Test - public void bindSubject_subject_shouldReturn_ThreadState() throws Exception { - ThreadState threadState = this.securityService.bindSubject(this.mockSubject); - assertThat(threadState).isNotNull().isInstanceOf(SubjectThreadState.class); - } - - @Test - public void getSubject_beforeLogin_shouldThrow_GemFireSecurityException() throws Exception { - assertThatThrownBy(() -> this.securityService.getSubject()) - .isInstanceOf(GemFireSecurityException.class).hasMessageContaining("Anonymous User"); - } - - @Test - public void login_nullProperties_shouldReturn_null() throws Exception { - Subject subject = this.securityService.login(null); - assertThat(subject).isNull(); - } - - @Test - public void login_emptyProperties_shouldThrow_AuthenticationFailedException() throws Exception { - assertThatThrownBy(() -> this.securityService.login(new Properties())) - .isInstanceOf(AuthenticationFailedException.class) - .hasMessageContaining("Please check your credentials"); - } - - @Ignore("Extract all shiro integration code out of EnabledSecurityService for mocking") - @Test - public void getSubject_afterLogin_shouldReturnNull() throws Exception { - this.securityService.login(new Properties()); - Subject subject = this.securityService.getSubject(); - assertThat(subject).isNull(); - } - - @Ignore("Extract all shiro integration code out of EnabledSecurityService for mocking") - @Test - public void getSubject_afterLogout_shouldReturnNull() throws Exception { - this.securityService.login(new Properties()); - this.securityService.logout(); - Subject subject = this.securityService.getSubject(); - assertThat(subject).isNull(); - } - - @Test - public void associateWith_callable_beforeLogin_shouldThrow_GemFireSecurityException() - throws Exception { - assertThatThrownBy(() -> this.securityService.associateWith(mock(Callable.class))) - .isInstanceOf(GemFireSecurityException.class).hasMessageContaining("Anonymous User"); - } - - @Test - public void associateWith_null_should() throws Exception { - assertThatThrownBy(() -> this.securityService.associateWith(null)) - .isInstanceOf(GemFireSecurityException.class).hasMessageContaining("Anonymous User"); - } - - @Test - public void needPostProcess_returnsFalse() throws Exception { - boolean needPostProcess = this.securityService.needPostProcess(); - assertThat(needPostProcess).isFalse(); - } - - @Test - public void postProcess1_value_shouldReturnSameValue() throws Exception { - Object value = new Object(); - Object result = this.securityService.postProcess(null, null, value, false); - assertThat(result).isNotNull().isSameAs(value); - } - - @Test - public void postProcess1_null_returnsNull() throws Exception { - Object result = this.securityService.postProcess(null, null, null, false); - assertThat(result).isNull(); - } - - @Test - public void postProcess2_value_shouldReturnSameValue() throws Exception { - Object value = new Object(); - Object result = this.securityService.postProcess(null, null, null, value, false); - assertThat(result).isNotNull().isSameAs(value); - } - - @Test - public void postProcess2_null_returnsNull() throws Exception { - Object result = this.securityService.postProcess(null, null, null, null, false); - assertThat(result).isNull(); - } - - @Test - public void isClientSecurityRequired_returnsTrue() throws Exception { - boolean result = this.securityService.isClientSecurityRequired(); - assertThat(result).isTrue(); - } - - @Test - public void isIntegratedSecurity_returnsTrue() throws Exception { - boolean result = this.securityService.isIntegratedSecurity(); - assertThat(result).isTrue(); - } - - @Test - public void isPeerSecurityRequired_returnsTrue() throws Exception { - boolean result = this.securityService.isPeerSecurityRequired(); - assertThat(result).isTrue(); - } - - @Test - public void getSecurityManager_returnsSecurityManager() throws Exception { - SecurityManager securityManager = this.securityService.getSecurityManager(); - assertThat(securityManager).isNotNull().isSameAs(this.mockSecurityManager); - } - - @Test - public void getPostProcessor_returnsNull() throws Exception { - PostProcessor postProcessor = this.securityService.getPostProcessor(); - assertThat(postProcessor).isNull(); - } -} http://git-wip-us.apache.org/repos/asf/geode/blob/fd638d52/geode-core/src/test/java/org/apache/geode/internal/security/FakePostProcessor.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/org/apache/geode/internal/security/FakePostProcessor.java b/geode-core/src/test/java/org/apache/geode/internal/security/FakePostProcessor.java deleted file mode 100644 index 7082344..0000000 --- a/geode-core/src/test/java/org/apache/geode/internal/security/FakePostProcessor.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more contributor license - * agreements. See the NOTICE file distributed with this work for additional information regarding - * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance with the License. You may obtain a - * copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. - */ -package org.apache.geode.internal.security; - -import java.util.Properties; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.concurrent.atomic.AtomicReference; - -import org.apache.geode.security.PostProcessor; - -public class FakePostProcessor implements PostProcessor { - - private final AtomicInteger initInvocations = new AtomicInteger(0); - private final AtomicInteger processRegionValueInvocations = new AtomicInteger(0); - private final AtomicInteger closeInvocations = new AtomicInteger(0); - - private final AtomicReference securityPropsRef = new AtomicReference<>(); - private final AtomicReference processRegionValueArgumentsRef = - new AtomicReference<>(); - - @Override - public void init(Properties securityProps) { - this.initInvocations.incrementAndGet(); - this.securityPropsRef.set(securityProps); - } - - @Override - public Object processRegionValue(final Object principal, final String regionName, - final Object key, final Object value) { - this.processRegionValueInvocations.incrementAndGet(); - this.processRegionValueArgumentsRef - .set(new ProcessRegionValueArguments(principal, regionName, key, value)); - return this.processRegionValueArgumentsRef.get(); - } - - @Override - public void close() { - this.closeInvocations.incrementAndGet(); - } - - public int getInitInvocations() { - return this.initInvocations.get(); - } - - public int getProcessRegionValueInvocations() { - return this.processRegionValueInvocations.get(); - } - - public int getCloseInvocations() { - return this.closeInvocations.get(); - } - - public Properties getSecurityProps() { - return this.securityPropsRef.get(); - } - - public ProcessRegionValueArguments getProcessRegionValueArguments() { - return this.processRegionValueArgumentsRef.get(); - } - - public static class ProcessRegionValueArguments { - private final Object principal; - private final String regionName; - private final Object key; - private final Object value; - - public ProcessRegionValueArguments(final Object principal, final String regionName, - final Object key, final Object value) { - this.principal = principal; - this.regionName = regionName; - this.key = key; - this.value = value; - } - - public Object getPrincipal() { - return this.principal; - } - - public String getRegionName() { - return this.regionName; - } - - public Object getKey() { - return this.key; - } - - public Object getValue() { - return this.value; - } - } -} http://git-wip-us.apache.org/repos/asf/geode/blob/fd638d52/geode-core/src/test/java/org/apache/geode/internal/security/FakeSecurityManager.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/org/apache/geode/internal/security/FakeSecurityManager.java b/geode-core/src/test/java/org/apache/geode/internal/security/FakeSecurityManager.java deleted file mode 100644 index ca4e6b7..0000000 --- a/geode-core/src/test/java/org/apache/geode/internal/security/FakeSecurityManager.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more contributor license - * agreements. See the NOTICE file distributed with this work for additional information regarding - * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance with the License. You may obtain a - * copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. - */ -package org.apache.geode.internal.security; - -import java.util.Properties; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.concurrent.atomic.AtomicReference; - -import org.apache.geode.security.AuthenticationFailedException; -import org.apache.geode.security.ResourcePermission; -import org.apache.geode.security.SecurityManager; - -public class FakeSecurityManager implements SecurityManager { - - private final AtomicInteger initInvocations = new AtomicInteger(0); - private final AtomicInteger authenticateInvocations = new AtomicInteger(0); - private final AtomicInteger authorizeInvocations = new AtomicInteger(0); - private final AtomicInteger closeInvocations = new AtomicInteger(0); - - private final AtomicReference securityPropsRef = new AtomicReference<>(); - private final AtomicReference credentialsRef = new AtomicReference<>(); - private final AtomicReference processAuthorizeArgumentsRef = - new AtomicReference<>(); - - @Override - public void init(final Properties securityProps) { - this.initInvocations.incrementAndGet(); - this.securityPropsRef.set(securityProps); - } - - @Override - public Object authenticate(final Properties credentials) throws AuthenticationFailedException { - this.authenticateInvocations.incrementAndGet(); - this.credentialsRef.set(credentials); - return credentials; - } - - @Override - public boolean authorize(final Object principal, final ResourcePermission permission) { - this.authorizeInvocations.incrementAndGet(); - this.processAuthorizeArgumentsRef.set(new AuthorizeArguments(principal, permission)); - return true; - } - - @Override - public void close() { - this.closeInvocations.incrementAndGet(); - } - - public int getInitInvocations() { - return this.initInvocations.get(); - } - - public int getAuthenticateInvocations() { - return this.authenticateInvocations.get(); - } - - public int getAuthorizeInvocations() { - return this.authorizeInvocations.get(); - } - - public int getCloseInvocations() { - return this.closeInvocations.get(); - } - - public Properties getSecurityProps() { - return this.securityPropsRef.get(); - } - - public AuthorizeArguments getAuthorizeArguments() { - return this.processAuthorizeArgumentsRef.get(); - } - - public static class AuthorizeArguments { - private final Object principal; - private final ResourcePermission permission; - - public AuthorizeArguments(final Object principal, final ResourcePermission permission) { - this.principal = principal; - this.permission = permission; - } - - public Object getPrincipal() { - return this.principal; - } - - public ResourcePermission getPermission() { - return this.permission; - } - } -} http://git-wip-us.apache.org/repos/asf/geode/blob/fd638d52/geode-core/src/test/java/org/apache/geode/internal/security/IntegratedSecurityServiceTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/org/apache/geode/internal/security/IntegratedSecurityServiceTest.java b/geode-core/src/test/java/org/apache/geode/internal/security/IntegratedSecurityServiceTest.java new file mode 100644 index 0000000..01782cf --- /dev/null +++ b/geode-core/src/test/java/org/apache/geode/internal/security/IntegratedSecurityServiceTest.java @@ -0,0 +1,222 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more contributor license + * agreements. See the NOTICE file distributed with this work for additional information regarding + * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. You may obtain a + * copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + */ +package org.apache.geode.internal.security; + +import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_CLIENT_AUTHENTICATOR; +import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_MANAGER; +import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_PEER_AUTHENTICATOR; +import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_SHIRO_INIT; +import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + +import org.apache.geode.security.GemFireSecurityException; +import org.apache.geode.security.TestPostProcessor; +import org.apache.geode.security.TestSecurityManager; +import org.apache.geode.security.SimpleTestSecurityManager; +import org.apache.geode.test.junit.categories.UnitTest; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.mgt.DefaultSecurityManager; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +import java.util.Properties; + +@Category(UnitTest.class) +public class IntegratedSecurityServiceTest { + + private Properties properties; + private SecurityService securityService; + + @Before + public void before() { + properties = new Properties(); + securityService = SecurityService.getSecurityService(); + securityService.initSecurity(properties); + } + + @Test + public void testGetObjectFromConstructor() { + String string = SecurityService.getObjectOfType(String.class.getName(), String.class); + assertNotNull(string); + + CharSequence charSequence = + SecurityService.getObjectOfType(String.class.getName(), CharSequence.class); + assertNotNull(charSequence); + + assertThatThrownBy(() -> SecurityService.getObjectOfType("com.abc.testString", String.class)) + .isInstanceOf(GemFireSecurityException.class); + + assertThatThrownBy(() -> SecurityService.getObjectOfType(String.class.getName(), Boolean.class)) + .isInstanceOf(GemFireSecurityException.class); + + assertThatThrownBy(() -> SecurityService.getObjectOfType("", String.class)) + .isInstanceOf(GemFireSecurityException.class); + + assertThatThrownBy(() -> SecurityService.getObjectOfType(null, String.class)) + .isInstanceOf(GemFireSecurityException.class); + + assertThatThrownBy(() -> SecurityService.getObjectOfType(" ", String.class)) + .isInstanceOf(GemFireSecurityException.class); + } + + @Test + public void testGetObjectFromFactoryMethod() { + String string = + SecurityService.getObjectOfType(Factories.class.getName() + ".getString", String.class); + assertNotNull(string); + + CharSequence charSequence = + SecurityService.getObjectOfType(Factories.class.getName() + ".getString", String.class); + assertNotNull(charSequence); + + assertThatThrownBy(() -> SecurityService + .getObjectOfType(Factories.class.getName() + ".getStringNonStatic", String.class)) + .isInstanceOf(GemFireSecurityException.class); + + assertThatThrownBy(() -> SecurityService + .getObjectOfType(Factories.class.getName() + ".getNullString", String.class)) + .isInstanceOf(GemFireSecurityException.class); + } + + @Test + public void testInitialSecurityFlags() { + // initial state of IntegratedSecurityService + assertFalse(securityService.isIntegratedSecurity()); + assertFalse(securityService.isClientSecurityRequired()); + assertFalse(securityService.isPeerSecurityRequired()); + } + + @Test + public void testInitWithSecurityManager() { + properties.setProperty(SECURITY_MANAGER, "org.apache.geode.security.TestSecurityManager"); + properties.setProperty(TestSecurityManager.SECURITY_JSON, + "org/apache/geode/security/templates/security.json"); + + securityService.initSecurity(properties); + + assertTrue(securityService.isIntegratedSecurity()); + assertTrue(securityService.isClientSecurityRequired()); + assertTrue(securityService.isPeerSecurityRequired()); + } + + @Test + public void testInitWithClientAuthenticator() { + properties.setProperty(SECURITY_CLIENT_AUTHENTICATOR, "org.abc.test"); + + securityService.initSecurity(properties); + assertFalse(securityService.isIntegratedSecurity()); + assertTrue(securityService.isClientSecurityRequired()); + assertFalse(securityService.isPeerSecurityRequired()); + } + + @Test + public void testInitWithPeerAuthenticator() { + properties.setProperty(SECURITY_PEER_AUTHENTICATOR, "org.abc.test"); + + securityService.initSecurity(properties); + + assertFalse(securityService.isIntegratedSecurity()); + assertFalse(securityService.isClientSecurityRequired()); + assertTrue(securityService.isPeerSecurityRequired()); + } + + @Test + public void testInitWithAuthenticators() { + properties.setProperty(SECURITY_CLIENT_AUTHENTICATOR, "org.abc.test"); + properties.setProperty(SECURITY_PEER_AUTHENTICATOR, "org.abc.test"); + + securityService.initSecurity(properties); + + assertFalse(securityService.isIntegratedSecurity()); + assertTrue(securityService.isClientSecurityRequired()); + assertTrue(securityService.isPeerSecurityRequired()); + } + + @Test + public void testInitWithShiroAuthenticator() { + properties.setProperty(SECURITY_SHIRO_INIT, "shiro.ini"); + + securityService.initSecurity(properties); + + assertTrue(securityService.isIntegratedSecurity()); + assertTrue(securityService.isClientSecurityRequired()); + assertTrue(securityService.isPeerSecurityRequired()); + } + + @Test + public void testNoInit() { + assertFalse(securityService.isIntegratedSecurity()); + } + + @Test + public void testInitWithOutsideShiroSecurityManager() { + SecurityUtils.setSecurityManager(new DefaultSecurityManager()); + securityService.initSecurity(properties); + assertTrue(securityService.isIntegratedSecurity()); + } + + @Test + public void testSetSecurityManager() { + // initially + assertFalse(securityService.isIntegratedSecurity()); + + // init with client authenticator + properties.setProperty(SECURITY_CLIENT_AUTHENTICATOR, "org.abc.test"); + securityService.initSecurity(properties); + assertFalse(securityService.isIntegratedSecurity()); + assertTrue(securityService.isClientSecurityRequired()); + assertFalse(securityService.isPeerSecurityRequired()); + + // set a security manager + securityService.setSecurityManager(new SimpleTestSecurityManager()); + assertTrue(securityService.isIntegratedSecurity()); + assertTrue(securityService.isClientSecurityRequired()); + assertTrue(securityService.isPeerSecurityRequired()); + assertFalse(securityService.needPostProcess()); + + // set a post processor + securityService.setPostProcessor(new TestPostProcessor()); + assertTrue(securityService.isIntegratedSecurity()); + assertTrue(securityService.needPostProcess()); + } + + @After + public void after() { + securityService.close(); + } + + private static class Factories { + + public static String getString() { + return new String(); + } + + public static String getNullString() { + return null; + } + + public String getStringNonStatic() { + return new String(); + } + + public static Boolean getBoolean() { + return Boolean.TRUE; + } + } +} http://git-wip-us.apache.org/repos/asf/geode/blob/fd638d52/geode-core/src/test/java/org/apache/geode/internal/security/SecurityServiceFactoryShiroIntegrationTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/org/apache/geode/internal/security/SecurityServiceFactoryShiroIntegrationTest.java b/geode-core/src/test/java/org/apache/geode/internal/security/SecurityServiceFactoryShiroIntegrationTest.java deleted file mode 100644 index 8907012..0000000 --- a/geode-core/src/test/java/org/apache/geode/internal/security/SecurityServiceFactoryShiroIntegrationTest.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more contributor license - * agreements. See the NOTICE file distributed with this work for additional information regarding - * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance with the License. You may obtain a - * copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. - */ -package org.apache.geode.internal.security; - -import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_CLIENT_AUTHENTICATOR; -import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_PEER_AUTHENTICATOR; -import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_SHIRO_INIT; -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.mock; - -import org.apache.geode.security.PostProcessor; -import org.apache.geode.security.SecurityManager; -import org.apache.geode.test.junit.categories.IntegrationTest; -import org.apache.geode.test.junit.categories.SecurityTest; -import org.apache.shiro.SecurityUtils; -import org.apache.shiro.util.ThreadContext; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.experimental.categories.Category; -import org.junit.rules.TemporaryFolder; - -import java.util.Properties; - -@Category({IntegrationTest.class, SecurityTest.class}) -public class SecurityServiceFactoryShiroIntegrationTest { - - private static final String SHIRO_INI_FILE = "SecurityServiceFactoryShiroIntegrationTest.ini"; - - private String shiroIniInClasspath; - - @Rule - public TemporaryFolder temporaryFolder = new TemporaryFolder(); - - @Before - public void before() throws Exception { - assertThat(getClass().getResource(SHIRO_INI_FILE)).isNotNull(); - this.shiroIniInClasspath = getResourcePackage(getClass()) + SHIRO_INI_FILE; - } - - @After - public void after() throws Exception { - ThreadContext.remove(); - SecurityUtils.setSecurityManager(null); - } - - @Test - public void getResourcePackage_shouldReturnPackageWithSlashes() throws Exception { - String expected = "org/apache/geode/internal/security/"; - assertThat(getResourcePackage(getClass())).isEqualTo(expected); - } - - @Test - public void create_shiro_createsCustomSecurityService() throws Exception { - Properties securityConfig = new Properties(); - securityConfig.setProperty(SECURITY_SHIRO_INIT, this.shiroIniInClasspath); - - assertThat(SecurityServiceFactory.create(securityConfig, null, null)) - .isInstanceOf(CustomSecurityService.class); - } - - @Test - public void create_all_createsCustomSecurityService() throws Exception { - Properties securityConfig = new Properties(); - securityConfig.setProperty(SECURITY_SHIRO_INIT, this.shiroIniInClasspath); - securityConfig.setProperty(SECURITY_CLIENT_AUTHENTICATOR, "value"); - securityConfig.setProperty(SECURITY_PEER_AUTHENTICATOR, "value"); - - SecurityManager mockSecurityManager = mock(SecurityManager.class); - PostProcessor mockPostProcessor = mock(PostProcessor.class); - - assertThat( - SecurityServiceFactory.create(securityConfig, mockSecurityManager, mockPostProcessor)) - .isInstanceOf(CustomSecurityService.class); - } - - private String getResourcePackage(Class classInPackage) { - return classInPackage.getName().replace(classInPackage.getSimpleName(), "").replace(".", "/"); - } -} http://git-wip-us.apache.org/repos/asf/geode/blob/fd638d52/geode-core/src/test/java/org/apache/geode/internal/security/SecurityServiceFactoryTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/org/apache/geode/internal/security/SecurityServiceFactoryTest.java b/geode-core/src/test/java/org/apache/geode/internal/security/SecurityServiceFactoryTest.java deleted file mode 100644 index f027a43..0000000 --- a/geode-core/src/test/java/org/apache/geode/internal/security/SecurityServiceFactoryTest.java +++ /dev/null @@ -1,280 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more contributor license - * agreements. See the NOTICE file distributed with this work for additional information regarding - * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance with the License. You may obtain a - * copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. - */ -package org.apache.geode.internal.security; - -import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_CLIENT_AUTHENTICATOR; -import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_MANAGER; -import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_PEER_AUTHENTICATOR; -import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_POST_PROCESSOR; -import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_SHIRO_INIT; -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.mock; - -import org.apache.geode.security.PostProcessor; -import org.apache.geode.security.SecurityManager; -import org.apache.geode.test.junit.categories.SecurityTest; -import org.apache.geode.test.junit.categories.UnitTest; -import org.apache.shiro.SecurityUtils; -import org.apache.shiro.util.ThreadContext; -import org.junit.After; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -import java.util.Properties; - -@Category({UnitTest.class, SecurityTest.class}) -public class SecurityServiceFactoryTest { - - @After - public void after() throws Exception { - ThreadContext.remove(); - SecurityUtils.setSecurityManager(null); - } - - @Test - public void getPostProcessor_null_returnsNull() throws Exception { - assertThat(SecurityServiceFactory.getPostProcessor(null, null)).isNull(); - } - - @Test - public void getPostProcessor_returnsPostProcessor() throws Exception { - PostProcessor mockPostProcessor = mock(PostProcessor.class); - - assertThat(SecurityServiceFactory.getPostProcessor(mockPostProcessor, null)) - .isSameAs(mockPostProcessor); - } - - @Test - public void getPostProcessor_SecurityConfig_createsPostProcessor() throws Exception { - Properties securityConfig = new Properties(); - securityConfig.setProperty(SECURITY_POST_PROCESSOR, FakePostProcessor.class.getName()); - - PostProcessor postProcessor = SecurityServiceFactory.getPostProcessor(null, securityConfig); - - assertThat(postProcessor).isInstanceOf(FakePostProcessor.class); - - FakePostProcessor fakePostProcessor = (FakePostProcessor) postProcessor; - - assertThat(fakePostProcessor.getInitInvocations()).isEqualTo(0); - assertThat(fakePostProcessor.getSecurityProps()).isNull(); - } - - @Test - public void getPostProcessor_prefersPostProcessorOverSecurityConfig() throws Exception { - PostProcessor mockPostProcessor = mock(PostProcessor.class); - Properties securityConfig = new Properties(); - securityConfig.setProperty(SECURITY_POST_PROCESSOR, FakePostProcessor.class.getName()); - - assertThat(SecurityServiceFactory.getPostProcessor(mockPostProcessor, securityConfig)) - .isSameAs(mockPostProcessor); - } - - @Test - public void getSecurityManager_null_returnsNull() throws Exception { - assertThat(SecurityServiceFactory.getSecurityManager(null, null)).isNull(); - } - - @Test - public void getSecurityManager_returnsSecurityManager() throws Exception { - SecurityManager mockSecurityManager = mock(SecurityManager.class); - - assertThat(SecurityServiceFactory.getSecurityManager(mockSecurityManager, null)) - .isSameAs(mockSecurityManager); - } - - @Test - public void getSecurityManager_SecurityConfig_createsSecurityManager() throws Exception { - Properties securityConfig = new Properties(); - securityConfig.setProperty(SECURITY_MANAGER, FakeSecurityManager.class.getName()); - - SecurityManager securityManager = - SecurityServiceFactory.getSecurityManager(null, securityConfig); - - assertThat(securityManager).isInstanceOf(FakeSecurityManager.class); - - FakeSecurityManager fakeSecurityManager = (FakeSecurityManager) securityManager; - - assertThat(fakeSecurityManager.getInitInvocations()).isEqualTo(0); - assertThat(fakeSecurityManager.getSecurityProps()).isNull(); - } - - @Test - public void getSecurityManager_prefersSecurityManagerOverSecurityConfig() throws Exception { - SecurityManager mockSecurityManager = mock(SecurityManager.class); - Properties securityConfig = new Properties(); - securityConfig.setProperty(SECURITY_MANAGER, FakePostProcessor.class.getName()); - - assertThat(SecurityServiceFactory.getSecurityManager(mockSecurityManager, securityConfig)) - .isSameAs(mockSecurityManager); - } - - @Test - public void determineType_null_returnsDISABLED() throws Exception { - assertThat(SecurityServiceFactory.determineType(null, null, null)) - .isSameAs(SecurityServiceType.DISABLED); - } - - @Test - public void determineType_shiro_returnsCUSTOM() throws Exception { - Properties securityConfig = new Properties(); - securityConfig.setProperty(SECURITY_SHIRO_INIT, "value"); - - assertThat(SecurityServiceFactory.determineType(securityConfig, null, null)) - .isSameAs(SecurityServiceType.CUSTOM); - } - - @Test - public void determineType_securityManager_returnsENABLED() throws Exception { - Properties securityConfig = new Properties(); - SecurityManager mockSecurityManager = mock(SecurityManager.class); - - assertThat(SecurityServiceFactory.determineType(securityConfig, mockSecurityManager, null)) - .isSameAs(SecurityServiceType.ENABLED); - } - - @Test - public void determineType_postProcessor_returnsDISABLED() throws Exception { - Properties securityConfig = new Properties(); - PostProcessor mockPostProcessor = mock(PostProcessor.class); - - assertThat(SecurityServiceFactory.determineType(securityConfig, null, mockPostProcessor)) - .isSameAs(SecurityServiceType.DISABLED); - } - - @Test - public void determineType_both_returnsENABLED() throws Exception { - Properties securityConfig = new Properties(); - SecurityManager mockSecurityManager = mock(SecurityManager.class); - PostProcessor mockPostProcessor = mock(PostProcessor.class); - - assertThat(SecurityServiceFactory.determineType(securityConfig, mockSecurityManager, - mockPostProcessor)).isSameAs(SecurityServiceType.ENABLED); - } - - @Test - public void determineType_prefersCUSTOM() throws Exception { - Properties securityConfig = new Properties(); - securityConfig.setProperty(SECURITY_SHIRO_INIT, "value"); - securityConfig.setProperty(SECURITY_CLIENT_AUTHENTICATOR, "value"); - securityConfig.setProperty(SECURITY_PEER_AUTHENTICATOR, "value"); - SecurityManager mockSecurityManager = mock(SecurityManager.class); - - assertThat(SecurityServiceFactory.determineType(securityConfig, mockSecurityManager, null)) - .isSameAs(SecurityServiceType.CUSTOM); - } - - @Test - public void determineType_clientAuthenticator_returnsLEGACY() throws Exception { - Properties securityConfig = new Properties(); - securityConfig.setProperty(SECURITY_CLIENT_AUTHENTICATOR, "value"); - - assertThat(SecurityServiceFactory.determineType(securityConfig, null, null)) - .isSameAs(SecurityServiceType.LEGACY); - } - - @Test - public void determineType_peerAuthenticator_returnsLEGACY() throws Exception { - Properties securityConfig = new Properties(); - securityConfig.setProperty(SECURITY_PEER_AUTHENTICATOR, "value"); - - assertThat(SecurityServiceFactory.determineType(securityConfig, null, null)) - .isSameAs(SecurityServiceType.LEGACY); - } - - @Test - public void determineType_authenticators_returnsLEGACY() throws Exception { - Properties securityConfig = new Properties(); - securityConfig.setProperty(SECURITY_CLIENT_AUTHENTICATOR, "value"); - securityConfig.setProperty(SECURITY_PEER_AUTHENTICATOR, "value"); - - assertThat(SecurityServiceFactory.determineType(securityConfig, null, null)) - .isSameAs(SecurityServiceType.LEGACY); - } - - @Test - public void determineType_empty_returnsDISABLED() throws Exception { - Properties securityConfig = new Properties(); - - assertThat(SecurityServiceFactory.determineType(securityConfig, null, null)) - .isSameAs(SecurityServiceType.DISABLED); - } - - @Test - public void create_clientAuthenticator_createsLegacySecurityService() throws Exception { - Properties securityConfig = new Properties(); - securityConfig.setProperty(SECURITY_CLIENT_AUTHENTICATOR, "value"); - - assertThat(SecurityServiceFactory.create(securityConfig, null, null)) - .isInstanceOf(LegacySecurityService.class); - } - - @Test - public void create_peerAuthenticator_createsLegacySecurityService() throws Exception { - Properties securityConfig = new Properties(); - securityConfig.setProperty(SECURITY_PEER_AUTHENTICATOR, "value"); - - assertThat(SecurityServiceFactory.create(securityConfig, null, null)) - .isInstanceOf(LegacySecurityService.class); - } - - @Test - public void create_authenticators_createsLegacySecurityService() throws Exception { - Properties securityConfig = new Properties(); - securityConfig.setProperty(SECURITY_CLIENT_AUTHENTICATOR, "value"); - securityConfig.setProperty(SECURITY_PEER_AUTHENTICATOR, "value"); - - assertThat(SecurityServiceFactory.create(securityConfig, null, null)) - .isInstanceOf(LegacySecurityService.class); - } - - @Test - public void create_none_createsDisabledSecurityService() throws Exception { - Properties securityConfig = new Properties(); - - assertThat(SecurityServiceFactory.create(securityConfig, null, null)) - .isInstanceOf(DisabledSecurityService.class); - } - - @Test - public void create_postProcessor_createsDisabledSecurityService() throws Exception { - Properties securityConfig = new Properties(); - PostProcessor mockPostProcessor = mock(PostProcessor.class); - - assertThat(SecurityServiceFactory.create(securityConfig, null, mockPostProcessor)) - .isInstanceOf(DisabledSecurityService.class); - } - - @Test - public void create_securityManager_createsEnabledSecurityService() throws Exception { - Properties securityConfig = new Properties(); - SecurityManager mockSecurityManager = mock(SecurityManager.class); - - assertThat(SecurityServiceFactory.create(securityConfig, mockSecurityManager, null)) - .isInstanceOf(EnabledSecurityService.class); - } - - @Test - public void create_securityManagerAndPostProcessor_createsEnabledSecurityService() - throws Exception { - Properties securityConfig = new Properties(); - SecurityManager mockSecurityManager = mock(SecurityManager.class); - PostProcessor mockPostProcessor = mock(PostProcessor.class); - - assertThat( - SecurityServiceFactory.create(securityConfig, mockSecurityManager, mockPostProcessor)) - .isInstanceOf(EnabledSecurityService.class); - } - -} http://git-wip-us.apache.org/repos/asf/geode/blob/fd638d52/geode-core/src/test/java/org/apache/geode/internal/security/SecurityServiceTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/org/apache/geode/internal/security/SecurityServiceTest.java b/geode-core/src/test/java/org/apache/geode/internal/security/SecurityServiceTest.java deleted file mode 100644 index 4489352..0000000 --- a/geode-core/src/test/java/org/apache/geode/internal/security/SecurityServiceTest.java +++ /dev/null @@ -1,136 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more contributor license - * agreements. See the NOTICE file distributed with this work for additional information regarding - * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance with the License. You may obtain a - * copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. - */ -package org.apache.geode.internal.security; - -import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_CLIENT_AUTHENTICATOR; -import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_MANAGER; -import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_PEER_AUTHENTICATOR; -import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_SHIRO_INIT; -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -import org.apache.geode.distributed.internal.DistributionConfig; -import org.apache.geode.security.TestSecurityManager; -import org.apache.geode.test.junit.categories.SecurityTest; -import org.apache.geode.test.junit.categories.UnitTest; -import org.apache.shiro.SecurityUtils; -import org.apache.shiro.mgt.DefaultSecurityManager; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -import java.util.Properties; - -@Category({UnitTest.class, SecurityTest.class}) -public class SecurityServiceTest { - - private Properties properties; - private DistributionConfig distributionConfig; - private SecurityService securityService; - - @Before - public void before() { - this.properties = new Properties(); - this.distributionConfig = mock(DistributionConfig.class); - when(this.distributionConfig.getSecurityProps()).thenReturn(this.properties); - this.securityService = SecurityServiceFactory.create(null, this.distributionConfig); - } - - @After - public void after() throws Exception { - this.securityService.close(); - SecurityUtils.setSecurityManager(null); - } - - @Test - public void testInitialSecurityFlags() { - // initial state of SecurityService - assertThat(this.securityService.isIntegratedSecurity()).isFalse(); - assertThat(this.securityService.isClientSecurityRequired()).isFalse(); - assertThat(this.securityService.isPeerSecurityRequired()).isFalse(); - } - - @Test - public void testInitWithSecurityManager() { - this.properties.setProperty(SECURITY_MANAGER, "org.apache.geode.security.TestSecurityManager"); - this.properties.setProperty(TestSecurityManager.SECURITY_JSON, - "org/apache/geode/security/templates/security.json"); - - this.securityService = SecurityServiceFactory.create(null, this.distributionConfig); - - assertThat(this.securityService.isIntegratedSecurity()).isTrue(); - assertThat(this.securityService.isClientSecurityRequired()).isTrue(); - assertThat(this.securityService.isPeerSecurityRequired()).isTrue(); - } - - @Test - public void testInitWithClientAuthenticator() { - this.properties.setProperty(SECURITY_CLIENT_AUTHENTICATOR, "org.abc.test"); - this.securityService = SecurityServiceFactory.create(null, this.distributionConfig); - - assertThat(this.securityService.isIntegratedSecurity()).isFalse(); - assertThat(this.securityService.isClientSecurityRequired()).isTrue(); - assertThat(this.securityService.isPeerSecurityRequired()).isFalse(); - } - - @Test - public void testInitWithPeerAuthenticator() { - this.properties.setProperty(SECURITY_PEER_AUTHENTICATOR, "org.abc.test"); - this.securityService = SecurityServiceFactory.create(null, this.distributionConfig); - - assertThat(this.securityService.isIntegratedSecurity()).isFalse(); - assertThat(this.securityService.isClientSecurityRequired()).isFalse(); - assertThat(this.securityService.isPeerSecurityRequired()).isTrue(); - } - - @Test - public void testInitWithAuthenticators() { - this.properties.setProperty(SECURITY_CLIENT_AUTHENTICATOR, "org.abc.test"); - this.properties.setProperty(SECURITY_PEER_AUTHENTICATOR, "org.abc.test"); - - this.securityService = SecurityServiceFactory.create(null, this.distributionConfig); - - assertThat(this.securityService.isIntegratedSecurity()).isFalse(); - assertThat(this.securityService.isClientSecurityRequired()).isTrue(); - assertThat(this.securityService.isPeerSecurityRequired()).isTrue(); - } - - @Test - public void testInitWithShiroAuthenticator() { - this.properties.setProperty(SECURITY_SHIRO_INIT, "shiro.ini"); - - this.securityService = SecurityServiceFactory.create(null, this.distributionConfig); - - assertThat(this.securityService.isIntegratedSecurity()).isTrue(); - assertThat(this.securityService.isClientSecurityRequired()).isTrue(); - assertThat(this.securityService.isPeerSecurityRequired()).isTrue(); - } - - @Test - public void testNoInit() { - assertThat(this.securityService.isIntegratedSecurity()).isFalse(); - } - - @Test - public void testInitWithOutsideShiroSecurityManager() { - SecurityUtils.setSecurityManager(new DefaultSecurityManager()); - this.securityService = SecurityServiceFactory.create(null, this.distributionConfig); - - assertThat(this.securityService.isIntegratedSecurity()).isTrue(); - } - -} http://git-wip-us.apache.org/repos/asf/geode/blob/fd638d52/geode-core/src/test/java/org/apache/geode/internal/security/shiro/ConfigInitializerIntegrationTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/org/apache/geode/internal/security/shiro/ConfigInitializerIntegrationTest.java b/geode-core/src/test/java/org/apache/geode/internal/security/shiro/ConfigInitializerIntegrationTest.java deleted file mode 100644 index 857c0be..0000000 --- a/geode-core/src/test/java/org/apache/geode/internal/security/shiro/ConfigInitializerIntegrationTest.java +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more contributor license - * agreements. See the NOTICE file distributed with this work for additional information regarding - * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance with the License. You may obtain a - * copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. - */ -package org.apache.geode.internal.security.shiro; - -import static org.assertj.core.api.Assertions.*; - -import org.apache.commons.io.FileUtils; -import org.apache.geode.test.junit.categories.UnitTest; -import org.apache.shiro.SecurityUtils; -import org.apache.shiro.UnavailableSecurityManagerException; -import org.apache.shiro.util.ThreadContext; -import org.apache.shiro.config.ConfigurationException; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.experimental.categories.Category; -import org.junit.rules.TemporaryFolder; - -import java.io.File; - -@Category(UnitTest.class) -public class ConfigInitializerIntegrationTest { - - private static final String SHIRO_INI_FILE = "ConfigInitializerIntegrationTest.ini"; - - private String shiroIniInClasspath; - private ConfigInitializer configInitializer; - private String shiroIniInFilesystem; - - @Rule - public TemporaryFolder temporaryFolder = new TemporaryFolder(); - - @Before - public void before() throws Exception { - assertThat(getClass().getResource(SHIRO_INI_FILE)).isNotNull(); - - this.configInitializer = new ConfigInitializer(); - - this.shiroIniInClasspath = getResourcePackage(getClass()) + SHIRO_INI_FILE; - - File shiroIniFile = this.temporaryFolder.newFile(SHIRO_INI_FILE); - FileUtils.copyURLToFile(getClass().getResource(SHIRO_INI_FILE), shiroIniFile); - this.shiroIniInFilesystem = shiroIniFile.getAbsolutePath(); - - assertThatThrownBy(() -> SecurityUtils.getSecurityManager()) - .isInstanceOf(UnavailableSecurityManagerException.class); - } - - @After - public void after() throws Exception { - ThreadContext.remove(); - SecurityUtils.setSecurityManager(null); - } - - @Test - public void initialize_fileInClasspath() throws Exception { - this.configInitializer.initialize(this.shiroIniInClasspath); - assertThat(SecurityUtils.getSecurityManager()).isNotNull(); - } - - @Test - public void initialize_null_throws_ConfigurationException() throws Exception { - assertThatThrownBy(() -> this.configInitializer.initialize(null)) - .isInstanceOf(ConfigurationException.class) - .hasMessageContaining("Resource [classpath:null] could not be found"); - } - - @Test - public void initialize_fileInFilesystem() throws Exception { - assertThatThrownBy(() -> this.configInitializer.initialize(this.shiroIniInFilesystem)) - .isInstanceOf(ConfigurationException.class).hasMessageContaining("Resource [classpath:") - .hasMessageContaining("ConfigInitializerIntegrationTest.ini] could not be found"); - } - - private String getResourcePackage(Class classInPackage) { - return classInPackage.getName().replace(classInPackage.getSimpleName(), "").replace(".", "/"); - } -} http://git-wip-us.apache.org/repos/asf/geode/blob/fd638d52/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CliCommandTestBase.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CliCommandTestBase.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CliCommandTestBase.java index bd5083c..b582e52 100644 --- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CliCommandTestBase.java +++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CliCommandTestBase.java @@ -20,8 +20,11 @@ import static org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER_B import static org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER_PORT; import static org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER_START; import static org.apache.geode.distributed.ConfigurationProperties.NAME; +import static org.apache.geode.test.dunit.Assert.assertEquals; +import static org.apache.geode.test.dunit.Assert.assertFalse; +import static org.apache.geode.test.dunit.Assert.assertNotNull; +import static org.apache.geode.test.dunit.Assert.assertTrue; import static org.apache.geode.test.dunit.LogWriterUtils.getLogWriter; -import static org.assertj.core.api.Assertions.assertThat; import org.apache.geode.cache.Cache; import org.apache.geode.internal.AvailablePortHelper; @@ -38,14 +41,12 @@ import org.apache.geode.test.dunit.Host; import org.apache.geode.test.dunit.IgnoredException; import org.apache.geode.test.dunit.cache.internal.JUnit4CacheTestCase; import org.apache.geode.test.dunit.rules.DistributedRestoreSystemProperties; -import org.apache.geode.test.junit.rules.serializable.SerializableTemporaryFolder; import org.junit.Rule; import org.junit.rules.TemporaryFolder; import org.springframework.shell.core.CommandMarker; import java.io.IOException; import java.io.PrintStream; -import java.io.Serializable; import java.net.InetAddress; import java.net.UnknownHostException; import java.util.List; @@ -59,26 +60,20 @@ import java.util.regex.Pattern; * * @deprecated use LocatorServerStartupRule and GfshShellConnectorRule instead. */ -@Deprecated public abstract class CliCommandTestBase extends JUnit4CacheTestCase { public static final String USE_HTTP_SYSTEM_PROPERTY = "useHTTP"; - @Rule - public DistributedRestoreSystemProperties restoreSystemProperties = + public transient DistributedRestoreSystemProperties restoreSystemProperties = new DistributedRestoreSystemProperties(); - @Rule - public SerializableTemporaryFolder temporaryFolder = new SerializableTemporaryFolder(); - - protected int httpPort; - protected int jmxPort; - protected String jmxHost; - protected String gfshDir; - - private final boolean useHttpOnConnect = Boolean.getBoolean(USE_HTTP_SYSTEM_PROPERTY); - - private transient ManagementService managementService; + public transient TemporaryFolder temporaryFolder = new TemporaryFolder(); + protected transient int httpPort; + protected transient int jmxPort; + protected transient String jmxHost; + protected transient String gfshDir; + private boolean useHttpOnConnect = Boolean.getBoolean(USE_HTTP_SYSTEM_PROPERTY); + private ManagementService managementService; private transient HeadlessGfsh shell; public static boolean checkIfCommandsAreLoadedOrNot() { @@ -89,7 +84,7 @@ public abstract class CliCommandTestBase extends JUnit4CacheTestCase { } protected static String commandResultToString(final CommandResult commandResult) { - assertThat(commandResult).isNotNull(); + assertNotNull(commandResult); commandResult.resetToFirstLine(); @@ -114,9 +109,7 @@ public abstract class CliCommandTestBase extends JUnit4CacheTestCase { this.gfshDir = this.temporaryFolder.newFolder("gfsh_files").getCanonicalPath(); } - protected void postSetUpCliCommandTestBase() throws Exception { - // nothing - } + protected void postSetUpCliCommandTestBase() throws Exception {} @Override public final void preTearDownCacheTestCase() throws Exception { @@ -125,9 +118,7 @@ public abstract class CliCommandTestBase extends JUnit4CacheTestCase { destroyDefaultSetup(); } - protected void preTearDownCliCommandTestBase() throws Exception { - // nothing - } + protected void preTearDownCliCommandTestBase() throws Exception {} /** * Create all of the components necessary for the default setup. The provided properties will be @@ -140,13 +131,14 @@ public abstract class CliCommandTestBase extends JUnit4CacheTestCase { * @param props the Properties used when creating the cache for this default setup. * @return the default testable GemFire shell. */ + @SuppressWarnings("serial") protected HeadlessGfsh setUpJmxManagerOnVm0ThenConnect(final Properties props) { Object[] result = setUpJMXManagerOnVM(0, props); this.jmxHost = (String) result[0]; this.jmxPort = (Integer) result[1]; this.httpPort = (Integer) result[2]; connect(this.jmxHost, this.jmxPort, this.httpPort, getDefaultShell()); - return this.shell; + return shell; } protected Object[] setUpJMXManagerOnVM(int vm, final Properties props) { @@ -163,9 +155,9 @@ public abstract class CliCommandTestBase extends JUnit4CacheTestCase { final Properties localProps = (props != null ? props : new Properties()); try { - this.jmxHost = InetAddress.getLocalHost().getHostName(); + jmxHost = InetAddress.getLocalHost().getHostName(); } catch (UnknownHostException ignore) { - this.jmxHost = "localhost"; + jmxHost = "localhost"; } if (!localProps.containsKey(NAME)) { @@ -178,14 +170,14 @@ public abstract class CliCommandTestBase extends JUnit4CacheTestCase { final int[] ports = AvailablePortHelper.getRandomAvailableTCPPorts(2); - this.jmxPort = ports[0]; - this.httpPort = ports[1]; + jmxPort = ports[0]; + httpPort = ports[1]; localProps.setProperty(JMX_MANAGER, "true"); localProps.setProperty(JMX_MANAGER_START, "true"); - localProps.setProperty(JMX_MANAGER_BIND_ADDRESS, String.valueOf(this.jmxHost)); - localProps.setProperty(JMX_MANAGER_PORT, String.valueOf(this.jmxPort)); - localProps.setProperty(HTTP_SERVICE_PORT, String.valueOf(this.httpPort)); + localProps.setProperty(JMX_MANAGER_BIND_ADDRESS, String.valueOf(jmxHost)); + localProps.setProperty(JMX_MANAGER_PORT, String.valueOf(jmxPort)); + localProps.setProperty(HTTP_SERVICE_PORT, String.valueOf(httpPort)); getSystem(localProps); verifyManagementServiceStarted(getCache()); @@ -193,9 +185,9 @@ public abstract class CliCommandTestBase extends JUnit4CacheTestCase { IgnoredException.addIgnoredException("org.eclipse.jetty.io.EofException"); IgnoredException.addIgnoredException("java.nio.channels.ClosedChannelException"); - results[0] = this.jmxHost; - results[1] = this.jmxPort; - results[2] = this.httpPort; + results[0] = jmxHost; + results[1] = jmxPort; + results[2] = httpPort; return results; }); @@ -207,7 +199,7 @@ public abstract class CliCommandTestBase extends JUnit4CacheTestCase { */ protected void destroyDefaultSetup() { if (this.shell != null) { - executeCommand(this.shell, "exit"); + executeCommand(shell, "exit"); this.shell.terminate(); this.shell = null; } @@ -224,12 +216,12 @@ public abstract class CliCommandTestBase extends JUnit4CacheTestCase { * @param cache Cache to use when creating the management service */ private void verifyManagementServiceStarted(Cache cache) { - assertThat(cache).isNotNull(); + assertTrue(cache != null); this.managementService = ManagementService.getExistingManagementService(cache); - assertThat(this.managementService).isNotNull(); - assertThat(this.managementService.isManager()).isTrue(); - assertThat(checkIfCommandsAreLoadedOrNot()).isTrue(); + assertNotNull(this.managementService); + assertTrue(this.managementService.isManager()); + assertTrue(checkIfCommandsAreLoadedOrNot()); } /** @@ -237,7 +229,7 @@ public abstract class CliCommandTestBase extends JUnit4CacheTestCase { */ private void verifyManagementServiceStopped() { if (this.managementService != null) { - assertThat(this.managementService.isManager()).isFalse(); + assertFalse(this.managementService.isManager()); this.managementService = null; } } @@ -252,7 +244,7 @@ public abstract class CliCommandTestBase extends JUnit4CacheTestCase { final CommandStringBuilder command = new CommandStringBuilder(CliStrings.CONNECT); String endpoint; - if (this.useHttpOnConnect) { + if (useHttpOnConnect) { endpoint = "http://" + host + ":" + httpPort + "/gemfire/v1"; command.addOption(CliStrings.CONNECT__USE_HTTP, Boolean.TRUE.toString()); command.addOption(CliStrings.CONNECT__URL, endpoint); @@ -271,13 +263,12 @@ public abstract class CliCommandTestBase extends JUnit4CacheTestCase { CommandResult result = executeCommand(shell, command.toString()); if (!shell.isConnectedAndReady()) { - throw new AssertionError("Execution of " + command + " failed to connect to manager " - + endpoint + " result=" + commandResultToString(result)); + throw new AssertionError("Connect command failed to connect to manager " + endpoint + + " result=" + commandResultToString(result)); } - info("Successfully connected to managing node using " - + (this.useHttpOnConnect ? "HTTP" : "JMX")); - assertThat(shell.isConnectedAndReady()).isTrue(); + info("Successfully connected to managing node using " + (useHttpOnConnect ? "HTTP" : "JMX")); + assertEquals(true, shell.isConnectedAndReady()); } /** @@ -298,7 +289,7 @@ public abstract class CliCommandTestBase extends JUnit4CacheTestCase { * * @return The created shell. */ - private HeadlessGfsh createShell() { + protected HeadlessGfsh createShell() { try { Gfsh.SUPPORT_MUTLIPLESHELL = true; String shellId = getClass().getSimpleName() + "_" + getName(); @@ -306,7 +297,9 @@ public abstract class CliCommandTestBase extends JUnit4CacheTestCase { // Added to avoid trimming of the columns info("Started testable shell: " + shell); return shell; - } catch (ClassNotFoundException | IOException e) { + } catch (ClassNotFoundException e) { + throw new AssertionError(e); + } catch (IOException e) { throw new AssertionError(e); } } @@ -318,7 +311,7 @@ public abstract class CliCommandTestBase extends JUnit4CacheTestCase { * @return The result of the command execution */ protected CommandResult executeCommand(String command) { - assertThat(command).isNotNull(); + assert (command != null); return executeCommand(getDefaultShell(), command); } @@ -331,8 +324,8 @@ public abstract class CliCommandTestBase extends JUnit4CacheTestCase { * @return The result of the command execution */ protected CommandResult executeCommand(HeadlessGfsh shell, String command) { - assertThat(shell).isNotNull(); - assertThat(command).isNotNull(); + assert (shell != null); + assert (command != null); CommandResult commandResult = executeCommandWithoutClear(shell, command); shell.clearEvents(); @@ -347,8 +340,9 @@ public abstract class CliCommandTestBase extends JUnit4CacheTestCase { * @param command Command to execute * @return The result of the command execution */ + @SuppressWarnings("unused") protected CommandResult executeCommandWithoutClear(String command) { - assertThat(command).isNotNull(); + assert (command != null); return executeCommandWithoutClear(getDefaultShell(), command); } @@ -363,20 +357,19 @@ public abstract class CliCommandTestBase extends JUnit4CacheTestCase { * @return The result of the command execution */ protected CommandResult executeCommandWithoutClear(HeadlessGfsh shell, String command) { - assertThat(shell).isNotNull(); - assertThat(command).isNotNull(); - + assert (shell != null); + assert (command != null); shell.executeCommand(command); if (shell.hasError()) { - throw new AssertionError(shell.getError()); + error("executeCommand completed with error : " + shell.getError()); } CommandResult result = null; try { - // TODO: this can result in ClassCastException if command resulted in error - result = (CommandResult) shell.getResult(); + result = (CommandResult) shell.getResult(); // TODO: this can result in ClassCastException if + // command resulted in error } catch (InterruptedException ex) { - throw new AssertionError(ex); + error("shell received InterruptedException"); } if (result != null) { @@ -393,8 +386,8 @@ public abstract class CliCommandTestBase extends JUnit4CacheTestCase { * @param printStream Stream to dump the results to */ protected void printResult(final CommandResult commandResult, PrintStream printStream) { - assertThat(commandResult).isNotNull(); - assertThat(printStream).isNotNull(); + assert (commandResult != null); + assert (printStream != null); commandResult.resetToFirstLine(); printStream.print(commandResultToString(commandResult)); @@ -407,7 +400,7 @@ public abstract class CliCommandTestBase extends JUnit4CacheTestCase { * @return The CommandResult object or null if not found. */ protected CommandResult extractCommandResult(Map commandOutput) { - assertThat(commandOutput).isNotNull(); + assert (commandOutput != null); for (Object resultObject : commandOutput.values()) { if (resultObject instanceof CommandResult) { @@ -429,8 +422,8 @@ public abstract class CliCommandTestBase extends JUnit4CacheTestCase { * @return The number of matches. */ protected int countMatchesInString(final String stringToSearch, final String stringToCount) { - assertThat(stringToSearch).isNotNull(); - assertThat(stringToCount).isNotNull(); + assert (stringToSearch != null); + assert (stringToCount != null); int length = stringToSearch.length(); int count = 0; @@ -452,8 +445,8 @@ public abstract class CliCommandTestBase extends JUnit4CacheTestCase { * @return True if a match is found, false otherwise */ protected boolean stringContainsLine(final String stringToSearch, final String stringPattern) { - assertThat(stringToSearch).isNotNull(); - assertThat(stringPattern).isNotNull(); + assert (stringToSearch != null); + assert (stringPattern != null); Pattern pattern = Pattern.compile("^\\s*" + stringPattern + "\\s*$", Pattern.MULTILINE); Matcher matcher = pattern.matcher(stringToSearch); @@ -468,7 +461,7 @@ public abstract class CliCommandTestBase extends JUnit4CacheTestCase { * @return The number of lines found. */ protected int countLinesInString(final String stringToSearch, final boolean countBlankLines) { - assertThat(stringToSearch).isNotNull(); + assert (stringToSearch != null); int length = stringToSearch.length(); int count = 0; @@ -510,8 +503,8 @@ public abstract class CliCommandTestBase extends JUnit4CacheTestCase { * @return The line */ protected String getLineFromString(final String stringToSearch, final int lineNumber) { - assertThat(stringToSearch != null).isNotNull(); - assertThat(lineNumber).isGreaterThan(0); + assert (stringToSearch != null); + assert (lineNumber > 0); int length = stringToSearch.length(); int count = 0; http://git-wip-us.apache.org/repos/asf/geode/blob/fd638d52/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java index 1aad49c..4b7ba9c 100644 --- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java +++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java @@ -58,6 +58,7 @@ import org.apache.geode.distributed.internal.ClusterConfigurationService; import org.apache.geode.distributed.internal.InternalLocator; import org.apache.geode.internal.AvailablePort; import org.apache.geode.internal.AvailablePortHelper; +import org.apache.geode.internal.cache.DiskStoreImpl; import org.apache.geode.internal.cache.GemFireCacheImpl; import org.apache.geode.internal.cache.InternalCache; import org.apache.geode.internal.cache.PartitionedRegion; @@ -106,7 +107,7 @@ import java.util.concurrent.TimeUnit; @SuppressWarnings("serial") public class DiskStoreCommandsDUnitTest extends CliCommandTestBase { - private final List filesToBeDeleted = new CopyOnWriteArrayList<>(); + final List filesToBeDeleted = new CopyOnWriteArrayList(); @Category(FlakyTest.class) // GEODE-2102 @Test http://git-wip-us.apache.org/repos/asf/geode/blob/fd638d52/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/MemberCommandsDUnitTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/MemberCommandsDUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/MemberCommandsDUnitTest.java index 22502c3..30ece5a 100644 --- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/MemberCommandsDUnitTest.java +++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/MemberCommandsDUnitTest.java @@ -52,9 +52,7 @@ import org.apache.geode.test.dunit.SerializableRunnable; import org.apache.geode.test.dunit.VM; import org.apache.geode.test.dunit.cache.internal.JUnit4CacheTestCase; import org.apache.geode.test.junit.categories.DistributedTest; -import org.junit.ClassRule; import org.junit.Test; -import org.junit.contrib.java.lang.system.ProvideSystemProperty; import org.junit.experimental.categories.Category; import java.io.File; @@ -80,10 +78,6 @@ public class MemberCommandsDUnitTest extends JUnit4CacheTestCase { private static final String PR1 = "PartitionedRegion1"; private static final String PR2 = "ParitionedRegion2"; - @ClassRule - public static ProvideSystemProperty provideSystemProperty = - new ProvideSystemProperty(CliCommandTestBase.USE_HTTP_SYSTEM_PROPERTY, "true"); - @Override public final void postSetUp() throws Exception { // This test does not require an actual Gfsh connection to work, however when run as part of a http://git-wip-us.apache.org/repos/asf/geode/blob/fd638d52/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/QueueCommandsDUnitTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/QueueCommandsDUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/QueueCommandsDUnitTest.java index a56febe..04a8c13 100644 --- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/QueueCommandsDUnitTest.java +++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/QueueCommandsDUnitTest.java @@ -77,7 +77,7 @@ public class QueueCommandsDUnitTest extends CliCommandTestBase { private static final long serialVersionUID = 1L; - private final List filesToBeDeleted = new CopyOnWriteArrayList<>(); + final List filesToBeDeleted = new CopyOnWriteArrayList(); @Override public final void preSetUp() throws Exception { http://git-wip-us.apache.org/repos/asf/geode/blob/fd638d52/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/RebalanceCommandDistributedTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/RebalanceCommandDistributedTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/RebalanceCommandDistributedTest.java deleted file mode 100644 index d8c3095..0000000 --- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/RebalanceCommandDistributedTest.java +++ /dev/null @@ -1,153 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more contributor license - * agreements. See the NOTICE file distributed with this work for additional information regarding - * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance with the License. You may obtain a - * copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. - */ -package org.apache.geode.management.internal.cli.commands; - -import static org.apache.geode.test.dunit.LogWriterUtils.getLogWriter; -import static org.apache.geode.test.dunit.Wait.waitForCriterion; -import static org.assertj.core.api.Assertions.assertThat; - -import org.apache.geode.cache.Cache; -import org.apache.geode.cache.Region; -import org.apache.geode.cache.RegionFactory; -import org.apache.geode.cache.RegionShortcut; -import org.apache.geode.management.DistributedRegionMXBean; -import org.apache.geode.management.ManagementService; -import org.apache.geode.management.cli.Result; -import org.apache.geode.management.internal.cli.result.CommandResult; -import org.apache.geode.test.dunit.Host; -import org.apache.geode.test.dunit.SerializableRunnable; -import org.apache.geode.test.dunit.VM; -import org.apache.geode.test.dunit.WaitCriterion; -import org.apache.geode.test.junit.categories.DistributedTest; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Test; -import org.junit.contrib.java.lang.system.ProvideSystemProperty; -import org.junit.experimental.categories.Category; - -@Category(DistributedTest.class) -public class RebalanceCommandDistributedTest extends CliCommandTestBase { - - private static final String REBALANCE_REGION_NAME = - RebalanceCommandDistributedTest.class.getSimpleName() + "Region"; - - @ClassRule - public static ProvideSystemProperty provideSystemProperty = - new ProvideSystemProperty(CliCommandTestBase.USE_HTTP_SYSTEM_PROPERTY, "false"); - - @Before - public void before() throws Exception { - setUpJmxManagerOnVm0ThenConnect(null); - setupTestRebalanceForEntireDS(); - } - - @Test - public void testSimulateForEntireDSWithTimeout() { - // check if DistributedRegionMXBean is available so that command will not fail - final VM manager = Host.getHost(0).getVM(0); - manager.invoke(() -> checkRegionMBeans()); - - getLogWriter().info("testSimulateForEntireDS verified MBean and executing command"); - - String command = "rebalance --simulate=true --time-out=-1"; - - CommandResult cmdResult = executeCommand(command); - - getLogWriter().info("testSimulateForEntireDS just after executing " + cmdResult); - - assertThat(cmdResult).isNotNull(); - - String stringResult = commandResultToString(cmdResult); - getLogWriter().info("testSimulateForEntireDS stringResult : " + stringResult); - assertThat(cmdResult.getStatus()).isEqualTo(Result.Status.OK); - } - - private void checkRegionMBeans() { - WaitCriterion waitForManagerMBean = new WaitCriterion() { - @Override - public boolean done() { - final ManagementService service = ManagementService.getManagementService(getCache()); - final DistributedRegionMXBean bean = - service.getDistributedRegionMXBean(Region.SEPARATOR + REBALANCE_REGION_NAME); - if (bean == null) { - getLogWriter().info("Still probing for checkRegionMBeans ManagerMBean"); - return false; - } else { - // verify that bean is proper before executing tests - return bean.getMembers() != null && bean.getMembers().length > 1 - && bean.getMemberCount() > 0 - && service.getDistributedSystemMXBean().listRegions().length >= 2; - } - } - - @Override - public String description() { - return "Probing for testRebalanceCommandForSimulateWithNoMember ManagerMBean"; - } - }; - - waitForCriterion(waitForManagerMBean, 2 * 60 * 1000, 2000, true); - - DistributedRegionMXBean bean = ManagementService.getManagementService(getCache()) - .getDistributedRegionMXBean("/" + REBALANCE_REGION_NAME); - assertThat(bean).isNotNull(); - } - - private void setupTestRebalanceForEntireDS() { - VM vm1 = Host.getHost(0).getVM(1); - VM vm2 = Host.getHost(0).getVM(2); - - vm1.invoke(new SerializableRunnable() { - @Override - public void run() { - - // no need to close cache as it will be closed as part of teardown2 - Cache cache = getCache(); - - RegionFactory dataRegionFactory = - cache.createRegionFactory(RegionShortcut.PARTITION); - Region region = dataRegionFactory.create(REBALANCE_REGION_NAME); - for (int i = 0; i < 10; i++) { - region.put("key" + (i + 200), "value" + (i + 200)); - } - region = dataRegionFactory.create(REBALANCE_REGION_NAME + "Another1"); - for (int i = 0; i < 100; i++) { - region.put("key" + (i + 200), "value" + (i + 200)); - } - } - }); - - vm2.invoke(new SerializableRunnable() { - @Override - public void run() { - - // no need to close cache as it will be closed as part of teardown2 - Cache cache = getCache(); - - RegionFactory dataRegionFactory = - cache.createRegionFactory(RegionShortcut.PARTITION); - Region region = dataRegionFactory.create(REBALANCE_REGION_NAME); - for (int i = 0; i < 100; i++) { - region.put("key" + (i + 400), "value" + (i + 400)); - } - region = dataRegionFactory.create(REBALANCE_REGION_NAME + "Another2"); - for (int i = 0; i < 10; i++) { - region.put("key" + (i + 200), "value" + (i + 200)); - } - } - }); - } - -} http://git-wip-us.apache.org/repos/asf/geode/blob/fd638d52/geode-core/src/test/java/org/apache/geode/management/internal/security/AccessControlMBeanJUnitTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/security/AccessControlMBeanJUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/security/AccessControlMBeanJUnitTest.java index 49b8347..626ca45 100644 --- a/geode-core/src/test/java/org/apache/geode/management/internal/security/AccessControlMBeanJUnitTest.java +++ b/geode-core/src/test/java/org/apache/geode/management/internal/security/AccessControlMBeanJUnitTest.java @@ -31,7 +31,6 @@ import org.junit.experimental.categories.Category; @Category({IntegrationTest.class, SecurityTest.class}) public class AccessControlMBeanJUnitTest { - private AccessControlMXBean bean; @ClassRule