我正在尝试使用SimpleToken准备一个安全的Infinispan集群,如JGroup所述 . 虽然我提供了所需的配置,但即使新节点具有不同的'auth_value'值,它们也能够加入群集 .
这是我对第一个节点的配置:
<config xmlns="urn:org:jgroups"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:org:jgroups http://www.jgroups.org/schema/JGroups-3.6.xsd">
....
....
<AUTH auth_class="org.jgroups.auth.SimpleToken" auth_value="cluster1"/>
</config>
对于第二个节点,我使用相同的配置和不同的auth_value:
<AUTH auth_class="org.jgroups.auth.SimpleToken" auth_value="cluster2"/>
2 回答
结果是JGroup xml文件中的配置节点的顺序很重要 . 基地一个RedHat支持团队here
这意味着我的JGroup文件应如下所示:
现在,当我启动第二个具有auth_value =“cluster2”的节点时,我收到以下警告和错误:
节点1:
节点2:
引起:java.lang.SecurityException:在org.jgroups.protocols.pbcast.ClientGmsImpl.isJoinResponseValid(ClientGmsImpl.java:188)处的身份验证失败
请注意,最新版本的ASYM_ENCRYPT不再需要AUTH;如果您使用基于证书的密钥交换,例如SSL_KEY_EXCHANGE . 详细信息可以在[1]找到 .
以前的答案是正确的:协议的顺序很重要 .
[1] http://www.jgroups.org/manual4/index.html#Security