Исключение прав доступа к файлам с использованием Java Websocket и Wildfly

Я использую веб-сокет в Java.
Я получаю исключение прав доступа к файлу при чтении файла после включения диспетчера безопасности в wildfly 10. Все работает нормально, если я выполняю одно из следующих действий:

  1. отключить менеджер безопасности в wildfly
  2. использовать остальные API

Но если я использую веб-сокет, то это исключение ниже. мой permissions.xml Файл имеет следующие разрешения для файловых операций, но все же я получаю исключение ниже.

Читаемый файл является внешним файлом и находится в системе, в которой развернуто приложение.

java.security.AccessControlException: WFSM000001: Не удалось проверить разрешение (разрешение "("java.io.FilePermission" "/cWLCPmData_20171203_1.db" "read")" в исходном коде "null" из "null") в org.wildfly.security Миссия.manager.WildFlySecurityManager.checkPer‌ (WildFlySecur‌ ityManager.java) в org.wildfly.security.manager.WildFlySecurityManager.checkPer‌ миссия (WildFlySecur‌ ityManager.java) в java.lang.anager org.wildfly.security.manager.WildFlySecurityManager.checkRea‌ d(WildFlySecurityMan‌ ager.java) в java.io.File.exists(File.java). Разрешение для моего файла в xml-файле выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<permissions xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
             http://xmlns.jcp.org/xml/ns/javaee/permissions_7.xsd"
             version="7">
    <permission>
      <class-name>java.util.PropertyPermission</class-name>
      <name>com.sun.jersey.core.util.ReaderWriter.BufferSize</name>
      <actions>read</actions>
    </permission>
    <permission>
      <class-name>java.lang.RuntimePermission</class-name>
      <name>shutdownHooks</name>
    </permission>
    <permission>
      <class-name>java.lang.RuntimePermission</class-name>
      <name>getClassLoader</name>
    </permission>
    <permission>
      <class-name>java.lang.reflect.ReflectPermission</class-name>
      <name>suppressAccessChecks</name>
    </permission>

    <permission>
      <class-name>java.io.FilePermission</class-name>
      <name>&lt;&lt;ALL FILES&gt;&gt;</name>
      <actions>read,write,delete,execute</actions>
    </permission>
    <permission>
      <class-name>javax.management.MBeanServerPermission</class-name>
      <name>*</name>
    </permission>

    <permission>
      <class-name>java.util.PropertyPermission</class-name>
      <name>mapAnyUriToUri</name>
      <actions>read</actions>
    </permission>

    <permission>
      <class-name>javax.management.MBeanPermission</class-name>
      <name>*</name>
      <actions>queryNames</actions>
    </permission>

    <permission>
      <class-name>javax.management.MBeanPermission</class-name>
      <name>*</name>
      <actions>registerMBean</actions>
    </permission>

    <permission>
      <class-name>java.lang.RuntimePermission</class-name>
      <name>accessDeclaredMembers</name>
    </permission>

    <permission>
      <class-name>java.lang.RuntimePermission</class-name>
      <name>getenv.CONTROLLER_ID</name>
    </permission>

    <permission>
      <class-name>java.lang.RuntimePermission</class-name>
      <name>getenv.DBServerIP</name>
    </permission>

    <permission>
      <class-name>java.util.PropertyPermission</class-name>
      <name>hibernate.enable_specj_proprietary_syntax</name>
      <actions>read</actions>
    </permission>

    <permission>
      <class-name>javax.management.MBeanPermission</class-name>
      <name>*</name>
      <actions>registerMBean</actions>
    </permission>

    <permission>
      <class-name>java.util.PropertyPermission</class-name>
      <name>*</name>
      <actions>read,write</actions>
    </permission>

    <permission>
      <class-name>java.lang.RuntimePermission</class-name>
      <name>getProtectionDomain</name>
    </permission>

    <permission>
      <class-name>java.util.PropertyPermission</class-name>
      <name>ANTLR_DO_NOT_EXIT</name>
      <actions>read</actions>
    </permission>

    <permission>
      <class-name>javax.management.MBeanTrustPermission</class-name>
      <name>*</name>
    </permission>

    <permission>
      <class-name>java.net.SocketPermission</class-name>
      <name>*</name>
      <actions>accept,connect,listen,resolve</actions>
    </permission>

    <permission>
      <class-name>javax.management.MBeanPermission</class-name>
      <name>*</name>
      <actions>unregisterMBean</actions>
    </permission>

    <permission>
      <class-name>java.lang.RuntimePermission</class-name>
      <name>getenv.WLC_PLATFORM</name>
    </permission>

    <permission>
      <class-name>java.lang.RuntimePermission</class-name>
      <name>getenv.NetworkType</name>
    </permission>

    <permission>
      <class-name>java.lang.RuntimePermission</class-name>
      <name>getenv.DeploymentMode</name>
    </permission>

    <permission>
      <class-name>java.lang.RuntimePermission</class-name>
      <name>getenv.Flavor</name>
    </permission>

    <permission>
      <class-name>java.lang.RuntimePermission</class-name>
      <name>getenv.HOSTNAME</name>
    </permission>


    <permission>
      <class-name>java.util.PropertyPermission</class-name>
      <name>ANTLR_USE_DIRECT_CLASS_LOADING</name>
      <actions>read</actions>
    </permission>

    <permission>
      <class-name>java.util.PropertyPermission</class-name>
      <name>org.postgresql.forceBinary</name>
      <actions>read</actions>
    </permission>

    <permission>
      <class-name>java.security.SecurityPermission</class-name>
      <name>putProviderProperty.SunJCE</name>
    </permission>

    <permission>
      <class-name>java.lang.RuntimePermission</class-name>
      <name>getenv.SAP_ID</name>
    </permission>

    <permission>
      <class-name>java.lang.RuntimePermission</class-name>
      <name>getenv.NetActSessionId</name>
    </permission>

    <permission>
      <class-name>java.lang.RuntimePermission</class-name>
      <name>accessClassInPackage.sun.reflect</name>
    </permission>

    <permission>
      <class-name>java.lang.RuntimePermission</class-name>
      <name>createClassLoader</name>
    </permission>

    <permission>
      <class-name>java.lang.RuntimePermission</class-name>
      <name>setContextClassLoader</name>
    </permission>

    <permission>
      <class-name>java.net.NetPermission</class-name>
      <name>specifyStreamHandler</name>
    </permission>

    <permission>
      <class-name>java.lang.RuntimePermission</class-name>
      <name>createSecurityManager</name>
    </permission>

    <permission>
      <class-name>java.lang.RuntimePermission</class-name>
      <name>loadLibrary.guiaclinterface</name>
    </permission>

    <permission>
      <class-name>java.lang.RuntimePermission</class-name>
      <name>loadLibrary.guialarminterface</name>
    </permission>

    <permission>
      <class-name>java.lang.RuntimePermission</class-name>
      <name>getenv.BIND_CAPTIVEPORTAL_IP</name>
    </permission>

    <permission>
      <class-name>java.lang.RuntimePermission</class-name>
      <name>*</name>
    </permission>

    <permission>
      <class-name>org.jboss.vfs.VirtualFilePermission</class-name>
      <name>&lt;&lt;ALL FILES&gt;&gt;</name>
      <actions>getfile</actions>
    </permission>

    <permission>
      <class-name>java.lang.RuntimePermission</class-name>
      <name>setFactory</name>
    </permission>

    <permission>
      <class-name>java.lang.RuntimePermission</class-name>
      <name>queuePrintJob</name>
      <actions>*</actions>
    </permission>

 </permissions>

Любая помощь будет оценена.

0 ответов

Другие вопросы по тегам