Redis connection pool for ingest plugin

I want to write elasticsearch ingest plugin to read data from redis cache. Using this tutorial I wrote a simple plugin and tested in elasticsearch.
After that for Redis I use jedis connection pool but when I use gradle check to test my plugin I had security error:
java.security.AccessControlException: access denied ("javax.management.MBeanServerPermission" "createMBeanServer")
Based on this tutorial I construct my connection pool like this but still this error is show after gradle check:

    private static final java.security.AccessControlContext RESTRICTED_CONTEXT = new java.security.AccessControlContext(
        new java.security.ProtectionDomain[] {
                new java.security.ProtectionDomain(null, getRestrictedPermissions())
        }
);


@SuppressForbidden(reason = "adds access for bean creation")
static java.security.PermissionCollection getRestrictedPermissions() {
    java.security.Permissions perms = new java.security.Permissions();
    perms.add(new MBeanServerPermission("createMBeanServer"));
    perms.add(new MBeanTrustPermission("register"));
    return perms;
}


jedisPool = java.security.AccessController.doPrivileged((PrivilegedAction<JedisPool>) () ->
            new JedisPool(buildPoolConfig(), "localhost"),
            RESTRICTED_CONTEXT);

error is like this:

access denied ("javax.management.MBeanServerPermission" "createMBeanServer")
java.security.AccessControlException: access denied ("javax.management.MBeanServerPermission" "createMBeanServer")
at __randomizedtesting.SeedInfo.seed([A1B928A267475939:7CA674E505D803A2]:0)
at java.base/java.security.AccessControlContext.checkPermission(AccessControlContext.java:472)
at java.base/java.security.AccessController.checkPermission(AccessController.java:1044)
at java.base/java.lang.SecurityManager.checkPermission(SecurityManager.java:408)
at java.management/java.lang.management.ManagementFactory.getPlatformMBeanServer(ManagementFactory.java:479)
at org.apache.commons.pool2.impl.BaseGenericObjectPool.jmxRegister(BaseGenericObjectPool.java:1042)
at org.apache.commons.pool2.impl.BaseGenericObjectPool.(BaseGenericObjectPool.java:141)
at org.apache.commons.pool2.impl.GenericObjectPool.(GenericObjectPool.java:105)
at redis.clients.jedis.util.Pool.initPool(Pool.java:45)
at redis.clients.jedis.util.Pool.(Pool.java:24)
at redis.clients.jedis.JedisPoolAbstract.(JedisPoolAbstract.java:15)
at redis.clients.jedis.JedisPool.(JedisPool.java:181)
at redis.clients.jedis.JedisPool.(JedisPool.java:145)
at redis.clients.jedis.JedisPool.(JedisPool.java:127)
at redis.clients.jedis.JedisPool.(JedisPool.java:76)
at redis.clients.jedis.JedisPool.(JedisPool.java:110)
at redis.clients.jedis.JedisPool.(JedisPool.java:93)
at redis.clients.jedis.JedisPool.(JedisPool.java:22)
at com.shalgham.plugin.ingest.sheved.SPR.lambda$new$0(SPR.java:73)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:389)
at com.shalgham.plugin.ingest.sheved.SPR.(SPR.java:72)
at com.shalgham.plugin.ingest.sheved.SPRTests.testEmptyField(SPRTests.java:85)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1750)
at com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:938)
at com.carrotsearch.randomizedtesting.RandomizedRunner$9.evaluate(RandomizedRunner.java:974)
at com.carrotsearch.randomizedtesting.RandomizedRunner$10.evaluate(RandomizedRunner.java:988)
at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
at org.apache.lucene.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:49)
at org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:45)
at org.apache.lucene.util.TestRuleThreadAndTestName$1.evaluate(TestRuleThreadAndTestName.java:48)
...
at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
at org.apache.lucene.util.TestRuleAssertionsRequired$1.evaluate(TestRuleAssertionsRequired.java:53)
at org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:47)
at org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:64)
at org.apache.lucene.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTestSuites.java:54)
at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:368)
at java.base/java.lang.Thread.run(Thread.java:835)

Is there anything I missed?

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.