[ https://issues.apache.org/jira/browse/GEODE-2573?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andrei Biketov updated GEODE-2573: ---------------------------------- Hi Nilkanth, Is this code correct, that is where it is failing, Why do you getCredentials only if(communicationMode == Acceptor.GATEWAY_TO_GATEWAY) I put a breakpoint here and in my case null is passed for credentials. In my case communicationMode is CLIENT_TO_SERVER = (byte)100; public ServerQueueStatus greet(Connection conn, ServerLocation location, byte communicationMode) throws IOException, AuthenticationRequiredException, AuthenticationFailedException, ServerRefusedConnectionException { try { ServerQueueStatus serverQStatus = null; Socket sock = conn.getSocket(); DataOutputStream dos = new DataOutputStream(sock.getOutputStream()); final InputStream in = sock.getInputStream(); DataInputStream dis = new DataInputStream(in); DistributedMember member = getDistributedMember(sock); // if running in a loner system, use the new port number in the ID to // help differentiate from other clients DM dm = ((InternalDistributedSystem)this.system).getDistributionManager(); InternalDistributedMember idm = dm.getDistributionManagerId(); synchronized(idm) { if (idm.getPort() == 0 && dm instanceof LonerDistributionManager) { int port = sock.getLocalPort(); ((LonerDistributionManager)dm).updateLonerPort(port); updateProxyID(dm.getDistributionManagerId()); } } * if(communicationMode == Acceptor.GATEWAY_TO_GATEWAY) {* * this.credentials = getCredentials(member);* * }* byte intermediateAcceptanceCode = write(dos, dis, communicationMode, REPLY_OK, this.clientReadTimeout, null,* this.credentials*, member, false); Andrei > Client authentication to secured geode cluster fails > ---------------------------------------------------- > > Key: GEODE-2573 > URL: https://issues.apache.org/jira/browse/GEODE-2573 > Project: Geode > Issue Type: Bug > Components: client/server > Affects Versions: 1.1.0 > Reporter: Andrei Biketov > > I have simple setup: one locator and one server, both secured. Now I'm trying > to connect to the cluster from the client. I'm passing credentials as > security-username/security-password from the client but I'm getting exception: > [info 2017/03/01 22:45:40.220 EST <poolTimer-DEFAULT-3> tid=0x1b] Error > prefilling connections : > org.apache.geode.security.AuthenticationRequiredException: No security > credentials are provided > org.apache.geode.security.AuthenticationRequiredException: No security > credentials are provided > at > org.apache.geode.internal.cache.tier.sockets.HandShake.readMessage(HandShake.java:1473) > at > org.apache.geode.internal.cache.tier.sockets.HandShake.greet(HandShake.java:1327) > at > org.apache.geode.cache.client.internal.ConnectionImpl.connect(ConnectionImpl.java:108) > at > org.apache.geode.cache.client.internal.ConnectionFactoryImpl.createClientToServerConnection(ConnectionFactoryImpl.java:135) > at > org.apache.geode.cache.client.internal.ConnectionFactoryImpl.createClientToServerConnection(ConnectionFactoryImpl.java:252) > at > org.apache.geode.cache.client.internal.pooling.ConnectionManagerImpl.prefillConnection(ConnectionManagerImpl.java:758) > at > org.apache.geode.cache.client.internal.pooling.ConnectionManagerImpl.prefill(ConnectionManagerImpl.java:701) > at > org.apache.geode.cache.client.internal.pooling.ConnectionManagerImpl$PrefillConnectionsTask.run2(ConnectionManagerImpl.java:852) > at > org.apache.geode.cache.client.internal.PoolImpl$PoolTask.run(PoolImpl.java:1235) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at java.lang.Thread.run(Thread.java:745) > Code: > ClientCache cache = null; > Properties props = new Properties(); > props.setProperty("security-username", "admin"); > props.setProperty("security-password", "secret"); > try { > System.out.println("Client app connecting to Geode > cluster"); > cache = new > ClientCacheFactory(props).addPoolLocator("localhost", 10334).create(); > > Region<String, String> customer = > cache.getRegion("customer"); > String value = customer.get("1"); > System.out.println("Value from the region:" + value); > } catch (Exception e) { > System.out.println("Error creating the Client Cache'"); > System.out.println(e.getCause()); > throw e; > } -- This message was sent by Atlassian JIRA (v6.3.15#6346)