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

时间:2018-05-25 19:28:19

标签: datagrid openshift redhat infinispan

我使用以下内容在OpenShift Online上部署了JDG - 图像流" jboss-datagrid71-openshift-rhel7.json" V1.2 - 用户名' admin'角色' admin'和' ___ schema_manager' - 并为两个角色授予READ,WRITE,EXEC,ADMIN,ALL权限。仅仅尝试了所有'也。 - 在Info.zip中引用图像,Config-env-vars.png和Cache-env-vars.png以完成环境配置。 (可用@ https://drive.google.com/file/d/12EWF1AUB4d60mP_gmTkN4Qlh2pzzv6xi/view?usp=sharing

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

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

FYI,

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

<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());

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

1 个答案:

答案 0 :(得分:0)

你不应该触及___schema_manager角色。似乎SO不接受你的依恋。你能通过其他方式分享吗?