OpenShift Online 上的 JDG - HotRodClientException,尽管为角色分配了适当的权



我在OpenShift Online上部署了JDG,如下所示 - 图像流 "jboss-datagrid71-openshift-rhel7.json" v1.2 - 用户名"admin",角色为"admin"和"___schema_manager" - 并赋予两个角色的读取,写入,执行,管理员的权限。也尝试过只使用"全部"。 -参考信息中的图像、Config-env-vars.png 和 Cache-env-vars.zip.png了解已完成的环境配置。(可用@https://drive.google.com/file/d/12EWF1AUB4d60mP_gmTkN4Qlh2pzzv6xi/view?usp=sharing(

在部署客户端 Java 应用程序(基本上是启用了安全性和基于 Protobuf 的查询功能的 Hotrod(时,我们遇到了以下异常。附加了来自 DataGrid 服务器和客户端应用程序 Pod 的日志

Caused by: org.infinispan.client.hotrod.exceptions.HotRodClientException: java.lang.SecurityException: ISPN000287: Unauthorized access: subject 'Subject with principal(s): [SimpleUserPrincipal [name=admin], InetAddressPrincipal [address=10.131.14.124/10.131.14.124], admin@ApplicationRealm, admin@ApplicationRealm, ___schema_manager@ApplicationRealm, admin, ___schema_manager]' lacks 'WRITE' permission

仅供参考,

我从redhat存储库使用以下版本的Infinispan

<version.org.infinispan>8.4.2.Final-redhat-1</version.org.infinispan>

在Java中,在创建配置生成器时,我以这种方式做了。完整代码可用@https://github.com/techtantric/JDG-Remote-Hotrod-Secured

ConfigurationBuilder builder = new ConfigurationBuilder();
builder.addServer()
.host(host)
.port(hotrodPort).security().authentication().serverName("jdg-server").saslMechanism("DIGEST-MD5").callbackHandler(new LoginHandler("admin", "password".toCharArray(), "ApplicationRealm")).enable()
.marshaller(new ProtoStreamMarshaller());  // The Protobuf based marshaller is required for query capabilities
cacheManager = new RemoteCacheManager(builder.build());

请帮助我们解决此问题。提前谢谢。

你不应该触及___schema_manager角色。

最新更新