AuthenticationException:凭据无效!在 Hazelcast 中使用正确的凭据时
AuthenticationException: Invalid credentials! When using right credentials with 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.onResponse(ClientConnectionManagerImpl.java:530)
at com.hazelcast.client.connection.nio.ClientConnectionManagerImpl.onResponse(ClientConnectionManagerImpl.java:513)
at com.hazelcast.spi.impl.AbstractInvocationFuture.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.access1(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
您的服务器有组名56015-56086-56176
。
您的客户端有组名56086-56015-56176
。
三重奏的前两部分被移调。
密码相同。另请注意,密码从 3.8 开始已弃用,请参阅 here
您的客户端配置使用密码 "56086-56015-56176"
,但您的成员配置包含群组密码 "56015-56086-56176"
。 IE。第一部分和第二部分(破折号分隔)被交换。
这是正确的客户端配置:
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 ...
所以我正在使用 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.onResponse(ClientConnectionManagerImpl.java:530)
at com.hazelcast.client.connection.nio.ClientConnectionManagerImpl.onResponse(ClientConnectionManagerImpl.java:513)
at com.hazelcast.spi.impl.AbstractInvocationFuture.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.access1(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
您的服务器有组名56015-56086-56176
。
您的客户端有组名56086-56015-56176
。
三重奏的前两部分被移调。
密码相同。另请注意,密码从 3.8 开始已弃用,请参阅 here
您的客户端配置使用密码 "56086-56015-56176"
,但您的成员配置包含群组密码 "56015-56086-56176"
。 IE。第一部分和第二部分(破折号分隔)被交换。
这是正确的客户端配置:
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 ...