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

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

Welcome !

I think you need to read

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)

May be the file descriptor is not picked up correctly?

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

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