[jira] [Commented] (GEODE-3117) Gateway authentication throws NullPointerException
[ https://issues.apache.org/jira/browse/GEODE-3117?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16077024#comment-16077024 ] ASF subversion and git services commented on GEODE-3117: Commit 9d5cf8ea6058d1d069309c6a6128b4614e31074e in geode's branch refs/heads/feature/GEODE-1279 from [~apa...@the9muses.net] [ https://git-wip-us.apache.org/repos/asf?p=geode.git;h=9d5cf8e ] GEODE-3117: fix Gateway authentication with legacy security * add GatewayLegacyAuthenticationRegressionTest to reproduce bug * fix authentication of Gateway sender/receiver with SECURITY_CLIENT_AUTHENTICATOR This closes #601 > Gateway authentication throws NullPointerException > -- > > Key: GEODE-3117 > URL: https://issues.apache.org/jira/browse/GEODE-3117 > Project: Geode > Issue Type: Bug > Components: security, wan >Reporter: Kirk Lund >Assignee: Kirk Lund > Fix For: 1.3.0 > > Attachments: geode-3117.tar > > > {noformat} > java.lang.NullPointerException > at > org.apache.geode.security.templates.DummyAuthenticator.authenticate(DummyAuthenticator.java:50) > at > org.apache.geode.internal.cache.tier.sockets.HandShake.verifyCredentials(HandShake.java:1699) > at > org.apache.geode.internal.cache.tier.sockets.HandShake.checkIfAuthenticWanSite(HandShake.java:1746) > at > org.apache.geode.internal.cache.tier.sockets.HandShake.readMessage(HandShake.java:1409) > at > org.apache.geode.internal.cache.tier.sockets.HandShake.handshakeWithServer(HandShake.java:1258) > at > org.apache.geode.cache.client.internal.ConnectionImpl.connect(ConnectionImpl.java:117) > at > org.apache.geode.cache.client.internal.ConnectionFactoryImpl.createClientToServerConnection(ConnectionFactoryImpl.java:136) > at > org.apache.geode.cache.client.internal.ConnectionFactoryImpl.createClientToServerConnection(ConnectionFactoryImpl.java:259) > at > org.apache.geode.cache.client.internal.pooling.ConnectionManagerImpl.borrowConnection(ConnectionManagerImpl.java:206) > at > org.apache.geode.cache.client.internal.PoolImpl.acquireConnection(PoolImpl.java:898) > at > org.apache.geode.internal.cache.wan.GatewaySenderEventRemoteDispatcher.initializeConnection(GatewaySenderEventRemoteDispatcher.java:402) > at > org.apache.geode.internal.cache.wan.GatewaySenderEventRemoteDispatcher.getConnection(GatewaySenderEventRemoteDispatcher.java:317) > at > org.apache.geode.internal.cache.wan.GatewaySenderEventRemoteDispatcher._dispatchBatch(GatewaySenderEventRemoteDispatcher.java:199) > at > org.apache.geode.internal.cache.wan.GatewaySenderEventRemoteDispatcher.dispatchBatch(GatewaySenderEventRemoteDispatcher.java:148) > at > org.apache.geode.internal.cache.wan.AbstractGatewaySenderEventProcessor.processQueue(AbstractGatewaySenderEventProcessor.java:609) > at > org.apache.geode.internal.cache.wan.serial.SerialGatewaySenderEventProcessor.run(SerialGatewaySenderEventProcessor.java:223) > {noformat} -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3117) Gateway authentication throws NullPointerException
[ https://issues.apache.org/jira/browse/GEODE-3117?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16076908#comment-16076908 ] ASF GitHub Bot commented on GEODE-3117: --- Github user asfgit closed the pull request at: https://github.com/apache/geode/pull/601 > Gateway authentication throws NullPointerException > -- > > Key: GEODE-3117 > URL: https://issues.apache.org/jira/browse/GEODE-3117 > Project: Geode > Issue Type: Bug > Components: security, wan >Reporter: Kirk Lund >Assignee: Kirk Lund > Attachments: geode-3117.tar > > > {noformat} > java.lang.NullPointerException > at > org.apache.geode.security.templates.DummyAuthenticator.authenticate(DummyAuthenticator.java:50) > at > org.apache.geode.internal.cache.tier.sockets.HandShake.verifyCredentials(HandShake.java:1699) > at > org.apache.geode.internal.cache.tier.sockets.HandShake.checkIfAuthenticWanSite(HandShake.java:1746) > at > org.apache.geode.internal.cache.tier.sockets.HandShake.readMessage(HandShake.java:1409) > at > org.apache.geode.internal.cache.tier.sockets.HandShake.handshakeWithServer(HandShake.java:1258) > at > org.apache.geode.cache.client.internal.ConnectionImpl.connect(ConnectionImpl.java:117) > at > org.apache.geode.cache.client.internal.ConnectionFactoryImpl.createClientToServerConnection(ConnectionFactoryImpl.java:136) > at > org.apache.geode.cache.client.internal.ConnectionFactoryImpl.createClientToServerConnection(ConnectionFactoryImpl.java:259) > at > org.apache.geode.cache.client.internal.pooling.ConnectionManagerImpl.borrowConnection(ConnectionManagerImpl.java:206) > at > org.apache.geode.cache.client.internal.PoolImpl.acquireConnection(PoolImpl.java:898) > at > org.apache.geode.internal.cache.wan.GatewaySenderEventRemoteDispatcher.initializeConnection(GatewaySenderEventRemoteDispatcher.java:402) > at > org.apache.geode.internal.cache.wan.GatewaySenderEventRemoteDispatcher.getConnection(GatewaySenderEventRemoteDispatcher.java:317) > at > org.apache.geode.internal.cache.wan.GatewaySenderEventRemoteDispatcher._dispatchBatch(GatewaySenderEventRemoteDispatcher.java:199) > at > org.apache.geode.internal.cache.wan.GatewaySenderEventRemoteDispatcher.dispatchBatch(GatewaySenderEventRemoteDispatcher.java:148) > at > org.apache.geode.internal.cache.wan.AbstractGatewaySenderEventProcessor.processQueue(AbstractGatewaySenderEventProcessor.java:609) > at > org.apache.geode.internal.cache.wan.serial.SerialGatewaySenderEventProcessor.run(SerialGatewaySenderEventProcessor.java:223) > {noformat} -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3117) Gateway authentication throws NullPointerException
[ https://issues.apache.org/jira/browse/GEODE-3117?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16076905#comment-16076905 ] ASF subversion and git services commented on GEODE-3117: Commit 9d5cf8ea6058d1d069309c6a6128b4614e31074e in geode's branch refs/heads/develop from [~apa...@the9muses.net] [ https://git-wip-us.apache.org/repos/asf?p=geode.git;h=9d5cf8e ] GEODE-3117: fix Gateway authentication with legacy security * add GatewayLegacyAuthenticationRegressionTest to reproduce bug * fix authentication of Gateway sender/receiver with SECURITY_CLIENT_AUTHENTICATOR This closes #601 > Gateway authentication throws NullPointerException > -- > > Key: GEODE-3117 > URL: https://issues.apache.org/jira/browse/GEODE-3117 > Project: Geode > Issue Type: Bug > Components: security, wan >Reporter: Kirk Lund >Assignee: Kirk Lund > Attachments: geode-3117.tar > > > {noformat} > java.lang.NullPointerException > at > org.apache.geode.security.templates.DummyAuthenticator.authenticate(DummyAuthenticator.java:50) > at > org.apache.geode.internal.cache.tier.sockets.HandShake.verifyCredentials(HandShake.java:1699) > at > org.apache.geode.internal.cache.tier.sockets.HandShake.checkIfAuthenticWanSite(HandShake.java:1746) > at > org.apache.geode.internal.cache.tier.sockets.HandShake.readMessage(HandShake.java:1409) > at > org.apache.geode.internal.cache.tier.sockets.HandShake.handshakeWithServer(HandShake.java:1258) > at > org.apache.geode.cache.client.internal.ConnectionImpl.connect(ConnectionImpl.java:117) > at > org.apache.geode.cache.client.internal.ConnectionFactoryImpl.createClientToServerConnection(ConnectionFactoryImpl.java:136) > at > org.apache.geode.cache.client.internal.ConnectionFactoryImpl.createClientToServerConnection(ConnectionFactoryImpl.java:259) > at > org.apache.geode.cache.client.internal.pooling.ConnectionManagerImpl.borrowConnection(ConnectionManagerImpl.java:206) > at > org.apache.geode.cache.client.internal.PoolImpl.acquireConnection(PoolImpl.java:898) > at > org.apache.geode.internal.cache.wan.GatewaySenderEventRemoteDispatcher.initializeConnection(GatewaySenderEventRemoteDispatcher.java:402) > at > org.apache.geode.internal.cache.wan.GatewaySenderEventRemoteDispatcher.getConnection(GatewaySenderEventRemoteDispatcher.java:317) > at > org.apache.geode.internal.cache.wan.GatewaySenderEventRemoteDispatcher._dispatchBatch(GatewaySenderEventRemoteDispatcher.java:199) > at > org.apache.geode.internal.cache.wan.GatewaySenderEventRemoteDispatcher.dispatchBatch(GatewaySenderEventRemoteDispatcher.java:148) > at > org.apache.geode.internal.cache.wan.AbstractGatewaySenderEventProcessor.processQueue(AbstractGatewaySenderEventProcessor.java:609) > at > org.apache.geode.internal.cache.wan.serial.SerialGatewaySenderEventProcessor.run(SerialGatewaySenderEventProcessor.java:223) > {noformat} -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3117) Gateway authentication throws NullPointerException
[ https://issues.apache.org/jira/browse/GEODE-3117?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16068706#comment-16068706 ] ASF GitHub Bot commented on GEODE-3117: --- Github user kirklund commented on the issue: https://github.com/apache/geode/pull/601 @pdxrunner thanks for finding the commented out code! I fixed it. > Gateway authentication throws NullPointerException > -- > > Key: GEODE-3117 > URL: https://issues.apache.org/jira/browse/GEODE-3117 > Project: Geode > Issue Type: Bug > Components: security, wan >Reporter: Kirk Lund >Assignee: Kirk Lund > Attachments: geode-3117.tar > > > {noformat} > java.lang.NullPointerException > at > org.apache.geode.security.templates.DummyAuthenticator.authenticate(DummyAuthenticator.java:50) > at > org.apache.geode.internal.cache.tier.sockets.HandShake.verifyCredentials(HandShake.java:1699) > at > org.apache.geode.internal.cache.tier.sockets.HandShake.checkIfAuthenticWanSite(HandShake.java:1746) > at > org.apache.geode.internal.cache.tier.sockets.HandShake.readMessage(HandShake.java:1409) > at > org.apache.geode.internal.cache.tier.sockets.HandShake.handshakeWithServer(HandShake.java:1258) > at > org.apache.geode.cache.client.internal.ConnectionImpl.connect(ConnectionImpl.java:117) > at > org.apache.geode.cache.client.internal.ConnectionFactoryImpl.createClientToServerConnection(ConnectionFactoryImpl.java:136) > at > org.apache.geode.cache.client.internal.ConnectionFactoryImpl.createClientToServerConnection(ConnectionFactoryImpl.java:259) > at > org.apache.geode.cache.client.internal.pooling.ConnectionManagerImpl.borrowConnection(ConnectionManagerImpl.java:206) > at > org.apache.geode.cache.client.internal.PoolImpl.acquireConnection(PoolImpl.java:898) > at > org.apache.geode.internal.cache.wan.GatewaySenderEventRemoteDispatcher.initializeConnection(GatewaySenderEventRemoteDispatcher.java:402) > at > org.apache.geode.internal.cache.wan.GatewaySenderEventRemoteDispatcher.getConnection(GatewaySenderEventRemoteDispatcher.java:317) > at > org.apache.geode.internal.cache.wan.GatewaySenderEventRemoteDispatcher._dispatchBatch(GatewaySenderEventRemoteDispatcher.java:199) > at > org.apache.geode.internal.cache.wan.GatewaySenderEventRemoteDispatcher.dispatchBatch(GatewaySenderEventRemoteDispatcher.java:148) > at > org.apache.geode.internal.cache.wan.AbstractGatewaySenderEventProcessor.processQueue(AbstractGatewaySenderEventProcessor.java:609) > at > org.apache.geode.internal.cache.wan.serial.SerialGatewaySenderEventProcessor.run(SerialGatewaySenderEventProcessor.java:223) > {noformat} -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3117) Gateway authentication throws NullPointerException
[ https://issues.apache.org/jira/browse/GEODE-3117?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16065350#comment-16065350 ] ASF GitHub Bot commented on GEODE-3117: --- Github user PurelyApplied commented on the issue: https://github.com/apache/geode/pull/601 +1. Huzzah for more test coverage. > Gateway authentication throws NullPointerException > -- > > Key: GEODE-3117 > URL: https://issues.apache.org/jira/browse/GEODE-3117 > Project: Geode > Issue Type: Bug > Components: security, wan >Reporter: Kirk Lund >Assignee: Kirk Lund > Attachments: geode-3117.tar > > > {noformat} > java.lang.NullPointerException > at > org.apache.geode.security.templates.DummyAuthenticator.authenticate(DummyAuthenticator.java:50) > at > org.apache.geode.internal.cache.tier.sockets.HandShake.verifyCredentials(HandShake.java:1699) > at > org.apache.geode.internal.cache.tier.sockets.HandShake.checkIfAuthenticWanSite(HandShake.java:1746) > at > org.apache.geode.internal.cache.tier.sockets.HandShake.readMessage(HandShake.java:1409) > at > org.apache.geode.internal.cache.tier.sockets.HandShake.handshakeWithServer(HandShake.java:1258) > at > org.apache.geode.cache.client.internal.ConnectionImpl.connect(ConnectionImpl.java:117) > at > org.apache.geode.cache.client.internal.ConnectionFactoryImpl.createClientToServerConnection(ConnectionFactoryImpl.java:136) > at > org.apache.geode.cache.client.internal.ConnectionFactoryImpl.createClientToServerConnection(ConnectionFactoryImpl.java:259) > at > org.apache.geode.cache.client.internal.pooling.ConnectionManagerImpl.borrowConnection(ConnectionManagerImpl.java:206) > at > org.apache.geode.cache.client.internal.PoolImpl.acquireConnection(PoolImpl.java:898) > at > org.apache.geode.internal.cache.wan.GatewaySenderEventRemoteDispatcher.initializeConnection(GatewaySenderEventRemoteDispatcher.java:402) > at > org.apache.geode.internal.cache.wan.GatewaySenderEventRemoteDispatcher.getConnection(GatewaySenderEventRemoteDispatcher.java:317) > at > org.apache.geode.internal.cache.wan.GatewaySenderEventRemoteDispatcher._dispatchBatch(GatewaySenderEventRemoteDispatcher.java:199) > at > org.apache.geode.internal.cache.wan.GatewaySenderEventRemoteDispatcher.dispatchBatch(GatewaySenderEventRemoteDispatcher.java:148) > at > org.apache.geode.internal.cache.wan.AbstractGatewaySenderEventProcessor.processQueue(AbstractGatewaySenderEventProcessor.java:609) > at > org.apache.geode.internal.cache.wan.serial.SerialGatewaySenderEventProcessor.run(SerialGatewaySenderEventProcessor.java:223) > {noformat} -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3117) Gateway authentication throws NullPointerException
[ https://issues.apache.org/jira/browse/GEODE-3117?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16065365#comment-16065365 ] ASF GitHub Bot commented on GEODE-3117: --- Github user pdxrunner commented on a diff in the pull request: https://github.com/apache/geode/pull/601#discussion_r124376469 --- Diff: geode-wan/src/test/java/org/apache/geode/internal/cache/wan/misc/GatewayLegacyAuthenticationRegressionTest.java --- @@ -0,0 +1,429 @@ +/* + * 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.cache.wan.misc; + +import static java.util.concurrent.TimeUnit.MINUTES; +import static org.apache.geode.distributed.ConfigurationProperties.DISTRIBUTED_SYSTEM_ID; +import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS; +import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT; +import static org.apache.geode.distributed.ConfigurationProperties.REMOTE_LOCATORS; +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_PEER_AUTH_INIT; +import static org.apache.geode.distributed.ConfigurationProperties.START_LOCATOR; +import static org.apache.geode.test.dunit.Host.getHost; +import static org.assertj.core.api.Assertions.assertThat; +import static org.awaitility.Awaitility.await; +import static org.awaitility.Awaitility.waitAtMost; + +import java.io.File; +import java.io.IOException; +import java.io.Serializable; +import java.security.Principal; +import java.util.Properties; +import java.util.UUID; +import java.util.concurrent.atomic.AtomicInteger; + +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +import org.apache.geode.LogWriter; +import org.apache.geode.cache.AttributesFactory; +import org.apache.geode.cache.Cache; +import org.apache.geode.cache.CacheFactory; +import org.apache.geode.cache.DataPolicy; +import org.apache.geode.cache.DiskStore; +import org.apache.geode.cache.DiskStoreFactory; +import org.apache.geode.cache.Region; +import org.apache.geode.cache.Scope; +import org.apache.geode.cache.wan.GatewayReceiver; +import org.apache.geode.cache.wan.GatewayReceiverFactory; +import org.apache.geode.cache.wan.GatewaySender; +import org.apache.geode.cache.wan.GatewaySenderFactory; +import org.apache.geode.distributed.DistributedMember; +import org.apache.geode.distributed.DistributedSystem; +import org.apache.geode.internal.AvailablePortHelper; +import org.apache.geode.internal.cache.wan.InternalGatewaySenderFactory; +import org.apache.geode.security.AuthInitialize; +import org.apache.geode.security.AuthenticationFailedException; +import org.apache.geode.security.Authenticator; +import org.apache.geode.test.dunit.DistributedTestCase; +import org.apache.geode.test.dunit.VM; +import org.apache.geode.test.junit.categories.DistributedTest; +import org.apache.geode.test.junit.categories.SecurityTest; +import org.apache.geode.test.junit.categories.WanTest; +import org.apache.geode.test.junit.rules.serializable.SerializableTemporaryFolder; + +/** + * Reproduces bug GEODE-3117: "Gateway authentication throws NullPointerException" and validates the + * fix. + */ +@Category({DistributedTest.class, SecurityTest.class, WanTest.class}) +public class GatewayLegacyAuthenticationRegressionTest extends DistributedTestCase { + + private static final String USER_NAME = "security-username"; + private static final String PASSWORD = "security-password"; + + private static final AtomicInteger invokeAuthenticateCount = new AtomicInteger(); + + private static Cache cache; + private static GatewaySender