Hazelcast Openfire 插件是否允许 SSL?

Does Hazelcast Openfire plugin allows SSL?

默认情况下,Openfire Hazelcast 插件安装后有

<ssl enabled="false"/>

在其配置文件中。我启用它的尝试破坏了集群,Openfire 日志说

java.lang.IllegalStateException: SSL/TLS requires Hazelcast Enterprise Edition

是否正确,所以无法使用 SSL 制作 Hazelcast 插件以在 Openfire 节点之间进行通信?

对 TLS/SSL 的支持未包含在 Hazelcast 的开源版本中,因为错误消息表明它是企业版功能集的一部分。

https://hazelcast.com/product-features/security-suite/

我不确定以前是否尝试过,但您可以尝试以下操作:

  1. 下载 Hazelcast 企业版并将 hazelcast jar 放在 Openfire 的 plugins 文件夹中。我不确定 Openfire 的内部结构,但如果存在用于导入 Hazelcast 的 Maven 配置,则修改它以加载 Hazelcast Enterprise。或者,如果没有其他工作,则尝试将 Hazelcast jar 从 hazelcast-enterprise.jar 重命名为 hazelcast.jar.
  2. 修改 conf/hazelcast-local-config.xml 以配置许可证密钥和安全详细信息 SSL。
  3. 开火。

这是 Hazelcast 插件的 link Openfire 文档:https://www.igniterealtime.org/projects/openfire/plugins/2.4.0/hazelcast/readme.html#config

如果可行,请在此处更新。

正确,据我所知,购买企业版没有帮助。 Openfire 的 Hazelcast(开源)插件由 Ignite Realtime 的人员维护。他们也只支持特定版本的 Hazelcast。

假设 Hazelcast Enterprise API 是 Hazelcast API 的扩展,它可能就像重新编译具有不同 Hazelcast 依赖项的 Openfire Hazelcast 插件一样简单。

我做了一个快速测试。在您将 the dependency on Hazelcast 与 'enterprise' 变体的依赖项交换后,该插件编译得很好,就像这样(您的版本号可能会有所不同):

<dependencies>
    <dependency>
        <groupId>com.hazelcast</groupId>
        <artifactId>hazelcast-enterprise</artifactId>
        <version>3.10.6</version>
    </dependency>
</dependencies>

<repositories>
    <repository>
        <id>hazelcast</id>
        <url>https://dl.bintray.com/hazelcast/release/</url>
  </repository>
</repositories>

大部分 Hazelcast 配置都可以在 XML 文件中完成,该文件已作为独立文件在 Openfire 中进行访问。很有可能您不需要任何代码修改就可以按照您想要的方式进行配置。