AuthenticationException:无效的凭据!在Hazelcast中使用正确的凭据时

时间:2019-09-04 22:09:36

标签: java hazelcast

因此,我正在使用Hazelcast创建服务器和客户端。 原来,尝试运行客户端时出现以下异常。

WARNING: hz.client_0 [56086-56015-56176] [3.7.8] Exception during initial connection to /192.168.1.112:5706
com.hazelcast.client.AuthenticationException: Invalid credentials!
    at com.hazelcast.client.connection.nio.ClientConnectionManagerImpl$2.onResponse(ClientConnectionManagerImpl.java:530)
    at com.hazelcast.client.connection.nio.ClientConnectionManagerImpl$2.onResponse(ClientConnectionManagerImpl.java:513)
    at com.hazelcast.spi.impl.AbstractInvocationFuture$1.run(AbstractInvocationFuture.java:251)
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(Unknown Source)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
    at com.hazelcast.util.executor.HazelcastManagedThread.executeRun(HazelcastManagedThread.java:76)
    at com.hazelcast.util.executor.HazelcastManagedThread.run(HazelcastManagedThread.java:92)

错误来自:

ClientConfig hzConfig = getHzConfig();
hz = HazelcastClient.newHazelcastClient(hzConfig);

getHzConfig:

private static ClientConfig getHzConfig() {
    String addresses = Optional.ofNullable(System.getProperty("addresses")).orElseThrow(IllegalArgumentException::new);
    String addressList[] = addresses.split(";");

    ClientConfig clientConfig = new ClientConfig();
    clientConfig.setGroupConfig(new GroupConfig("56086-56015-56176", "56086-56015-56176")); 

    ClientNetworkConfig networkConfig = clientConfig.getNetworkConfig();

    for (String address : addressList) {
        networkConfig.addAddress(address);
    }

    return clientConfig;
}

这是我的hazelcast.xml

2 个答案:

答案 0 :(得分:1)

您的服务器的组名称为56015-56086-56176

您的客户具有组名56086-56015-56176

三重奏的前两个部分被移调。

与密码相同。另请注意,从3.8版开始不推荐使用该密码,请参见here

答案 1 :(得分:1)

您的客户端配置使用密码"56086-56015-56176",但是您的成员配置包含组密码"56015-56086-56176"。即第一部分和第二部分(破折号)被交换。

这是正确的客户端配置:

clientConfig.setGroupConfig(new GroupConfig("56015-56086-56176", "56015-56086-56176"));

更新: 确保Hazelcast成员在服务器端获取正确的配置文件。默认情况下,它在当前目录中搜索hazelcast.xml。您可以显式提供路径-可以使用编程方式:

Config config = new XmlConfigBuilder("/path/to/hazelcast.xml").build();
HazelcastInstance hz = Hazelcast.newHazelcastInstance(config);

或者,如果您使用简单的Hazelcast.newHazelcastInstance(),则可以通过hazelcast.config系统属性对其进行控制:

java -Dhazelcast.config=/path/to/hazelcast.xml ...