# Redis connection pool for ingest plugin

**URL:** <https://discuss.elastic.co/t/redis-connection-pool-for-ingest-plugin/203353>\
**Category:** Elasticsearch\
**Created:** [October 13, 2019, 4:52pm UTC](https://discuss.elastic.co/t/redis-connection-pool-for-ingest-plugin/203353 "2019-10-13T16:52:43Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Babak](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/babak/32/44723_2.png) [@Babak](https://discuss.elastic.co/u/Babak)\
**Post date:** [October 13, 2019, 4:52pm UTC](https://discuss.elastic.co/t/redis-connection-pool-for-ingest-plugin/203353/1 "2019-10-13T16:52:43Z")

</div>

I want to write elasticsearch ingest plugin to read data from redis cache. Using [this tutorial](https://www.elastic.co/blog/writing-your-own-ingest-processor-for-elasticsearch) 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 tutoria](https://www.elastic.co/guide/en/elasticsearch/plugins/current/plugin-authors.html#plugin-authors-jsm)l 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?

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [November 10, 2019, 4:52pm UTC](https://discuss.elastic.co/t/redis-connection-pool-for-ingest-plugin/203353/2 "2019-11-10T16:52:45Z")

</div>

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