Исключение прав доступа к файлам с использованием Java Websocket и Wildfly
Я использую веб-сокет в Java.
Я получаю исключение прав доступа к файлу при чтении файла после включения диспетчера безопасности в wildfly 10. Все работает нормально, если я выполняю одно из следующих действий:
- отключить менеджер безопасности в wildfly
- использовать остальные 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><<ALL FILES>></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><<ALL FILES>></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>
Любая помощь будет оценена.