Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Java WebStart проблемы с разрешениями / 7 сообщений из 7, страница 1 из 1
25.01.2017, 16:58
    #39391341
Mandarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java WebStart проблемы с разрешениями
Всем привет! Помогите пожалуйста решить проблему.

Описываю ситуацию:

1. есть проект MyProject.jar, проект использует библиотеки lib1.jar lib2.jar эти библиотеки лежат в папке lib рядом с MyProject.jar, так же проект использует плагины которые могу лежать где угодно. Плагин это jar файл который в runtime подгружается к проекту по необходимости.
2. приложение запускается и работает как надо
3. пробую использовать Java Web Start для распространения своего проекта
4. подписал все файлы сертификатом
5. сделал jnlp. в jnlp файле прописаны все библиотеки, плагины не прописаны
6. пробую запустить свой проект через JWS
6.1. приложение запускается
6.2. плагины подгружаются
6.3. НО... если плагин загружен главным приложением которое содержит main class, то плагин работает нормально, если же я загружаю плагин из плагина то при работе с файлами, например, получаю ошибку java.security.AccessControlException: access denied ("java.io.FilePermission" "C:\MyProject\plugin\pluhin1.jar" "read"). Загрузчик классов в главном файле и плагинах одинаковый.

ошибка появляется когда я хочу проверить есть ли файл в папке или нет

if (!file.exists()) {
return 0;
}

вот кусочек стека
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at com.sun.javaws.security.JavaWebStartSecurity.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkRead(Unknown Source)
at java.io.File.exists(Unknown Source)

содержимое JNLP

<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0" xmlns:jfx=" http://javafx.com" href="MyProject.jnlp" codebase=" https://MyHost:8443/MyProject">
<information>
<title>MyProject</title>
<vendor>OOO "MyProject"</vendor>
<description>MyProject</description>
<icon href="MyProject.ico" width="128" height="128" kind="shortcut"/>
<offline-allowed/>
<shortcut>
<desktop/>
</shortcut>
</information>
<resources>
<property name="user.dir" value="C:\MyProject"/>
<j2se version="1.6+" href=" http://java.sun.com/products/autodl/j2se" max-heap-size="512M"/>
<jar href="MyProject.jar" size="51307" download="eager" />
<jar href="lib/lib1.jar" size="2844" download="eager" />
<jar href="lib/lib2.jar" size="2756" download="eager" />
</resources>
<security>
<all-permissions/>
</security>
<application-desc width="800" height="600" main-class="com.javafx.main.NoJavaFXFallback" name="MyProject" >
<param name="requiredFXVersion" value="8.0+"/>
</application-desc>
<jfx:javafx-desc width="800" height="600" main-class="myproject.MyProject" name="MyProject" />
<update check="always"/>
</jnlp>

подскажите что нужно сделать чтобы избежать ошибки описанной выше?

P.S. код не форматированный потому что менюшка с тегами кода сразу пропадает при появлении.
...
Рейтинг: 0 / 0
25.01.2017, 17:25
    #39391376
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java WebStart проблемы с разрешениями
...
Рейтинг: 0 / 0
25.01.2017, 19:26
    #39391531
Mandarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java WebStart проблемы с разрешениями
Blazkowicz,

спасибо за ответ!

если я правильно понял эту статью то в ней говориться что надо добавлять строки Permissions и Codebase в манифест
у меня эти строки есть
вот часть манифеста

Manifest-Version: 1.0
Application-Name: MyProject
Implementation-Title: MyProject
X-COMMENT: Main-Class will be added automatically by build
Implementation-Version: 1.0
Permissions: all-permissions
Codebase: *
JavaFX-Version: 8.0
Class-Path: lib/lib1.jar lib/lib2.jar
Created-By: JavaFX Packager
Implementation-Vendor: OOO "MyProject"
Main-Class: myproject.MyProject

может быть я еще что то забыл?
...
Рейтинг: 0 / 0
25.01.2017, 19:54
    #39391547
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java WebStart проблемы с разрешениями
Mandarin,

Может JNLP надо подписать тоже?
http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/security/signedJNLP.html
...
Рейтинг: 0 / 0
25.01.2017, 20:19
    #39391574
Mandarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java WebStart проблемы с разрешениями
Blazkowicz,

JNLP тоже подписан

пока он не был подписан даже основное приложение не запускалось

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

если я запустил проект с определенными параметрами значит все его плагины (*.jar) должны исполняться с такими же правами (настройками) если загружаются тем же класслоудером что и главный проект. главный проект загружается JNLPCalssLoader плагины загружаются URLClassLoader с парентом JNLPCalssLoader
...
Рейтинг: 0 / 0
25.01.2017, 21:16
    #39391626
Mandarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java WebStart проблемы с разрешениями
Blazkowicz,

Если вы знаете как решить проблему, можем помочь решить ее мне за умеренную плату :) ?
...
Рейтинг: 0 / 0
25.01.2017, 21:52
    #39391643
Mandarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java WebStart проблемы с разрешениями
мне удалось решить проблему! вознаграждение оставлю себе :)
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Java WebStart проблемы с разрешениями / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]