首页 文章

如何保护Infinispan集群

提问于
浏览
1

我正在尝试使用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 回答

  • 0

    结果是JGroup xml文件中的配置节点的顺序很重要 . 基地一个RedHat支持团队here

    对于非对称加密(不需要共享密钥库):1)配置jgroups子系统:应在NAKACK之前立即配置ASYM_ENCRYPT,并且AUTH应紧接在GMS之前 . 请注意,此处显示的上下文其他协议会略有不同,具体取决于JGroups版本 .

    这意味着我的JGroup文件应如下所示:

    <AUTH auth_class="org.jgroups.auth.SimpleToken" auth_value="cluster1"/>
    <pbcast.GMS print_local_addr="false"join_timeout="15000"/>
    

    现在,当我启动第二个具有auth_value =“cluster2”的节点时,我收到以下警告和错误:

    节点1:

    [WARN] AUTH: failed to validate AuthHeader token from xxxx, token: auth_value=cluster1
    

    节点2:

    引起:java.lang.SecurityException:在org.jgroups.protocols.pbcast.ClientGmsImpl.isJoinResponseValid(ClientGmsImpl.java:188)处的身份验证失败

  • 1

    请注意,最新版本的ASYM_ENCRYPT不再需要AUTH;如果您使用基于证书的密钥交换,例如SSL_KEY_EXCHANGE . 详细信息可以在[1]找到 .

    以前的答案是正确的:协议的顺序很重要 .

    [1] http://www.jgroups.org/manual4/index.html#Security

相关问题