# Ingest processor for sending email gives \`access denied ("java.lang.RuntimePermission" "setFactory")\`

**URL:** <https://discuss.elastic.co/t/ingest-processor-for-sending-email-gives-access-denied-java-lang-runtimepermission-setfactory/262594>\
**Category:** Elasticsearch\
**Tags:** ingest-pipeline\
**Created:** [January 29, 2021, 5:26am UTC](https://discuss.elastic.co/t/ingest-processor-for-sending-email-gives-access-denied-java-lang-runtimepermission-setfactory/262594 "2021-01-29T05:26:30Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ripu\_Sudan](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ripu_sudan/32/83094_2.png) [@Ripu\_Sudan](https://discuss.elastic.co/u/Ripu_Sudan)\
**Post date:** [January 29, 2021, 5:26am UTC](https://discuss.elastic.co/t/ingest-processor-for-sending-email-gives-access-denied-java-lang-runtimepermission-setfactory/262594/1 "2021-01-29T05:26:30Z")

</div>

I was making an ingest processor that would send an email on a particular condition, i'm using "compile 'javax.mail:javax.mail-api:1.5.3'"  
while running "gradle check" if gives permisson error.

```
REPRODUCE WITH: ./gradlew ':test' --tests "org.elasticsearch.plugin.ingest.email.agent.EmailAgentProcessorTests.testThatProcessorWorks" -Dtests.seed=5DA4946A539FF23D -Dtests.security.manager=true -Dtests.locale=sr-ME -Dtests.timezone=Pacific/Galapagos -Druntime.java=15

org.elasticsearch.plugin.ingest.email.agent.EmailAgentProcessorTests > testThatProcessorWorks FAILED
    java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "setFactory")
        at __randomizedtesting.SeedInfo.seed([5DA4946A539FF23D:15E8BFFC7F7B38BA]:0)
        at java.base/java.security.AccessControlContext.checkPermission(AccessControlContext.java:472)
        at java.base/java.security.AccessController.checkPermission(AccessController.java:1036)
        at java.base/java.lang.SecurityManager.checkPermission(SecurityManager.java:408)
        at java.base/java.lang.SecurityManager.checkSetFactory(SecurityManager.java:1487)
        at javax.mail.Session.getDefaultInstance(Session.java:320)
        at org.elasticsearch.plugin.ingest.email.agent.EmailAgentProcessor.send(EmailAgentProcessor.java:61)
        at org.elasticsearch.plugin.ingest.email.agent.EmailAgentProcessor.execute(EmailAgentProcessor.java:91)
        at org.elasticsearch.plugin.ingest.email.agent.EmailAgentProcessorTests.testThatProcessorWorks(EmailAgentProcessorTests.java:38)

Suite: Test class org.elasticsearch.plugin.ingest.email.agent.EmailAgentProcessorTests
  2> java.security.policy: error parsing file:/Users/ripusudan/TRANTOR/ES_PLUGIN/ingest-email-agent/build/resources/test/plugin-security.policy:
  2> expected [;], read [end of file]
  1> [2021-01-28T23:15:02,258][INFO][o.e.p.i.e.a.EmailAgentProcessorTests] [testThatProcessorWorks] before test
  1> [2021-01-28T23:15:28,662][INFO][o.e.p.i.e.a.EmailAgentProcessorTests] [testThatProcessorWorks] after test
  2> REPRODUCE WITH: ./gradlew ':test' --tests "org.elasticsearch.plugin.ingest.email.agent.EmailAgentProcessorTests.testThatProcessorWorks" -Dtests.seed=5DA4946A539FF23D -Dtests.security.manager=true -Dtests.locale=sr-ME -Dtests.timezone=Pacific/Galapagos -Druntime.java=15
  2> java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "setFactory")
        at __randomizedtesting.SeedInfo.seed([5DA4946A539FF23D:15E8BFFC7F7B38BA]:0)
        at java.base/java.security.AccessControlContext.checkPermission(AccessControlContext.java:472)
        at java.base/java.security.AccessController.checkPermission(AccessController.java:1036)
        at java.base/java.lang.SecurityManager.checkPermission(SecurityManager.java:408)
        at java.base/java.lang.SecurityManager.checkSetFactory(SecurityManager.java:1487)
        at javax.mail.Session.getDefaultInstance(Session.java:320)
        at org.elasticsearch.plugin.ingest.email.agent.EmailAgentProcessor.send(EmailAgentProcessor.java:61)
        at org.elasticsearch.plugin.ingest.email.agent.EmailAgentProcessor.execute(EmailAgentProcessor.java:91)
        at org.elasticsearch.plugin.ingest.email.agent.EmailAgentProcessorTests.testThatProcessorWorks(EmailAgentProcessorTests.java:38)
  2> NOTE: leaving temporary files on disk at: /Users/ripusudan/TRANTOR/ES_PLUGIN/ingest-email-agent/build/testrun/test/temp/org.elasticsearch.plugin.ingest.email.agent.EmailAgentProcessorTests_5DA4946A539FF23D-001
  2> NOTE: test params are: codec=Asserting(Lucene87): {}, docValues:{}, maxPointsInLeafNode=503, maxMBSortInHeap=6.257927273819335, sim=Asserting(RandomSimilarity(queryNorm=false): {}), locale=sr-ME, timezone=Pacific/Galapagos
  2> NOTE: Mac OS X 10.15.6 x86_64/Oracle Corporation 15.0.1 (64-bit)/cpus=4,threads=1,free=485183968,total=536870912
  2> NOTE: All tests run in this JVM: [EmailAgentProcessorTests]

Tests with failures:
 - org.elasticsearch.plugin.ingest.email.agent.EmailAgentProcessorTests.testThatProcessorWorks
```

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [January 29, 2021, 6:33am UTC](https://discuss.elastic.co/t/ingest-processor-for-sending-email-gives-access-denied-java-lang-runtimepermission-setfactory/262594/2 "2021-01-29T06:33:26Z")

</div>

Welcome !

I think you need to read

> **[Help for plugin authors | Elasticsearch Plugins and Integrations \[7.10\] |...](https://www.elastic.co/guide/en/elasticsearch/plugins/current/plugin-authors.html#plugin-authors-jsm)**

---

<div class="post-metadata">

**Author:** ![Ripu\_Sudan](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ripu_sudan/32/83094_2.png) [@Ripu\_Sudan](https://discuss.elastic.co/u/Ripu_Sudan)\
**Post date:** [January 29, 2021, 6:42am UTC](https://discuss.elastic.co/t/ingest-processor-for-sending-email-gives-access-denied-java-lang-runtimepermission-setfactory/262594/3 "2021-01-29T06:42:31Z")

</div>

Thank you, but the problem is i've added the permission in policy file but still it is throwing the same problem,  
not i've changed the javax.mail to com.sun.main "compile 'com.sun.mail:javax.mail:1.6.2'" but now the gradle check throws below error.  
i've added the permission in policy file, "permission java.net.SocketPermission "\*", "accept,connect,resolve";"

```
org.elasticsearch.plugin.ingest.email.agent.EmailAgentProcessorTests > testThatProcessorWorks FAILED
    java.security.AccessControlException: access denied ("java.net.SocketPermission" "74.125.24.109:587" "connect,resolve")
        at __randomizedtesting.SeedInfo.seed([38C64AA0862B348C:708A6136AACFFE0B]:0)
        at java.base/java.security.AccessControlContext.checkPermission(AccessControlContext.java:472)
        at java.base/java.security.AccessController.checkPermission(AccessController.java:1036)
        at java.base/java.lang.SecurityManager.checkPermission(SecurityManager.java:408)
        at java.base/java.lang.SecurityManager.checkConnect(SecurityManager.java:910)
        at java.base/java.net.Socket.connect(Socket.java:644)
        at java.base/java.net.Socket.connect(Socket.java:597)
        at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:359)
        at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:238)
        at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2175)
        at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:740)
        at javax.mail.Service.connect(Service.java:388)
        at javax.mail.Service.connect(Service.java:246)
        at javax.mail.Service.connect(Service.java:195)
        at javax.mail.Transport.send0(Transport.java:254)
        at javax.mail.Transport.send(Transport.java:124)
        at org.elasticsearch.plugin.ingest.email.agent.EmailAgentProcessor.send(EmailAgentProcessor.java:75)
        at org.elasticsearch.plugin.ingest.email.agent.EmailAgentProcessor.execute(EmailAgentProcessor.java:87)
        at org.elasticsearch.plugin.ingest.email.agent.EmailAgentProcessorTests.testThatProcessorWorks(EmailAgentProcessorTests.java:38)
```

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [January 29, 2021, 6:55am UTC](https://discuss.elastic.co/t/ingest-processor-for-sending-email-gives-access-denied-java-lang-runtimepermission-setfactory/262594/4 "2021-01-29T06:55:22Z")

</div>

May be the file descriptor is not picked up correctly?

---

<div class="post-metadata">

**Author:** ![Ripu\_Sudan](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ripu_sudan/32/83094_2.png) [@Ripu\_Sudan](https://discuss.elastic.co/u/Ripu_Sudan)\
**Post date:** [January 29, 2021, 7:05am UTC](https://discuss.elastic.co/t/ingest-processor-for-sending-email-gives-access-denied-java-lang-runtimepermission-setfactory/262594/5 "2021-01-29T07:05:06Z")

</div>

so i read the the policy file, it was missing a semi-colon.  
It's working now,  
Thank you very much.

---

<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:** [February 26, 2021, 7:05am UTC](https://discuss.elastic.co/t/ingest-processor-for-sending-email-gives-access-denied-java-lang-runtimepermission-setfactory/262594/6 "2021-02-26T07:05:16Z")

</div>

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