Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Проблема с правами в JavaFX-апплете / 11 сообщений из 11, страница 1 из 1
09.02.2015, 17:13
    #38875014
pulp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с правами в JavaFX-апплете
Добрый день!

Помогите разобраться - делаю JavaFX приложение, подписываю (в т.ч. библиотеки), разворачиваю на веб-сервере. С клиента (JavaFX приложения) нужно обратиться к веб-сервису на веб-сервере. При запуске на рабочей станции всё работает, при запуске с веб-сервера (через браузер - embeded) получаю ошибки доступа:
java.security.AccessControlException: access denied ("java.util.PropertyPermission" "com.ibm.ejs.ras.lite.traceFileName" "read")

Вместо обращения к веб-сервису пишу:
Код: java
1.
System.out.println("baaa3 = " + System.getProperty("user.dir"));


Ошибка таже (см. стек ниже).

Если в файле java.policy написать:
grant {
permission java.security.AllPermission;
}
то всё работает. jar-файл и библиотеки перед разворачиванием на веб-сервере подписываю (после этого меняется окно с вопросом о разрешении запуска).

Пробовал вызываемый код обернуть в AccessController.doPrivileged, не помогло:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
    public String proc1() {
        return AccessController.doPrivileged(
            new PrivilegedAction<String>() {
                public String run() {
                	try {
            	    	System.out.println("baaa1");
            	    	log =  Logger.getLogger("logger_name_aaa");
            	    	System.out.println("baaa2 = " + log);
            	    	System.out.println("baaa3 = " + System.getProperty("user.dir"));
            	    	System.out.println("baaa4 = " + System.getProperty("java.class.path"));
            	    	System.out.println("baaa5 = " + System.getProperty("com.ibm.ejs.ras.lite.traceFileName"));	    	
            	    	System.out.println("baaa6");
            		} catch(Exception e) {
            			System.out.println("berr1");
            			e.printStackTrace(System.out);
            		}    	
                    return "";
                }
            }
        );
    }



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
java.security.AccessControlException: access denied ("java.util.PropertyPermission" "user.dir" "read")
	at java.security.AccessControlContext.checkPermission(Unknown Source)
	at java.security.AccessController.checkPermission(Unknown Source)
	at java.lang.SecurityManager.checkPermission(Unknown Source)
	at sun.plugin2.applet.FXAppletSecurityManager.checkPermission(Unknown Source)
	at java.lang.SecurityManager.checkPropertyAccess(Unknown Source)
	at java.lang.System.getProperty(Unknown Source)
	at application.MainFormController$1.run(Unknown Source)
	at application.MainFormController$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at application.MainFormController.proc1(Unknown Source)
	at application.MainFormController.bPassInvalidCheckOnClick(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at sun.reflect.misc.Trampoline.invoke(Unknown Source)
	at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at sun.reflect.misc.MethodUtil.invoke(Unknown Source)
	at javafx.fxml.FXMLLoader$MethodHandler.invoke(Unknown Source)
	at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(Unknown Source)
	at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(Unknown Source)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
	at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(Unknown Source)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
	at com.sun.javafx.event.EventUtil.fireEventImpl(Unknown Source)
	at com.sun.javafx.event.EventUtil.fireEvent(Unknown Source)
	at javafx.event.Event.fireEvent(Unknown Source)
	at javafx.scene.Node.fireEvent(Unknown Source)
	at javafx.scene.control.Button.fire(Unknown Source)
	at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(Unknown Source)
	at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(Unknown Source)
	at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(Unknown Source)
	at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(Unknown Source)
	at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(Unknown Source)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
	at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(Unknown Source)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
	at com.sun.javafx.event.EventUtil.fireEventImpl(Unknown Source)
	at com.sun.javafx.event.EventUtil.fireEvent(Unknown Source)
	at javafx.event.Event.fireEvent(Unknown Source)
	at javafx.scene.Scene$MouseHandler.process(Unknown Source)
	at javafx.scene.Scene$MouseHandler.access$1500(Unknown Source)
	at javafx.scene.Scene.impl_processMouseEvent(Unknown Source)
	at javafx.scene.Scene$ScenePeerListener.mouseEvent(Unknown Source)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(Unknown Source)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(Unknown Source)
	at com.sun.glass.ui.View.handleMouseEvent(Unknown Source)
	at com.sun.glass.ui.View.notifyMouse(Unknown Source)
	at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
	at com.sun.glass.ui.win.WinApplication.lambda$null$141(Unknown Source)
	at com.sun.glass.ui.win.WinApplication$$Lambda$36/20085625.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
...
Рейтинг: 0 / 0
09.02.2015, 17:15
    #38875015
pulp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с правами в JavaFX-апплете
При запуске на рабочей станции всё работает - имеется ввиду запуск jar-файла standalone.
...
Рейтинг: 0 / 0
09.02.2015, 18:10
    #38875082
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с правами в JavaFX-апплете
Ну, всё правильно. Стандартные ограничения апплета. Вопрос какой?
...
Рейтинг: 0 / 0
09.02.2015, 18:22
    #38875089
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с правами в JavaFX-апплете
Если мне не изменяет склероз, то в Java 7 в двух апдейстах чего-то очень сильно намудрили с безопасностью и с тех пор даже подписаные апплеты не всегда имеют доступ.
...
Рейтинг: 0 / 0
10.02.2015, 08:28
    #38875359
pulp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с правами в JavaFX-апплете
Blazkowicz,

Ну собственно задача разворачивать (доставлять) приложение клиенту (пользователю) без внесения каких-либо изменений в рабочую станцию (кроме требования последней jre).
Я считал, что стандартные ограничения обходится подписанием апплета, но не выходит.
Помогите, как сделать, чтобы работало, без внесения изменений в java.policy?
...
Рейтинг: 0 / 0
10.02.2015, 08:30
    #38875360
pulp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с правами в JavaFX-апплете
Версия jre1.8.0_25
...
Рейтинг: 0 / 0
10.02.2015, 08:55
    #38875380
irbis_al
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с правами в JavaFX-апплете
pulpBlazkowicz,

Ну собственно задача разворачивать (доставлять) приложение клиенту (пользователю) без внесения каких-либо изменений в рабочую станцию (кроме требования последней jre).
Я считал, что стандартные ограничения обходится подписанием апплета, но не выходит.
Помогите, как сделать, чтобы работало, без внесения изменений в java.policy?

Попробуйте сделать не апплет а JNLP приложение.
...
Рейтинг: 0 / 0
10.02.2015, 09:48
    #38875443
pulp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с правами в JavaFX-апплете
irbis_al,

Да тоже самое, не важно, как запускать, как апплет или вебстарт.

Код: html
1.
2.
3.
4.
5.
6.
7.
<body>
<h2>Test page for <b>RequestCFT</b></h2>
  <b>Webstart:</b> <a href='RequestCFT.jnlp' onclick="return launchApplication('RequestCFT.jnlp');">click to launch this app as webstart</a><br><hr><br>

  <!-- Applet will be inserted here -->
  <div id='RequestCFTApplet'></div>
</body>
...
Рейтинг: 0 / 0
10.02.2015, 10:04
    #38875469
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с правами в JavaFX-апплете
...
Рейтинг: 0 / 0
10.02.2015, 10:18
    #38875493
pulp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с правами в JavaFX-апплете
Blazkowicz,

Понятно, спасиб.
...
Рейтинг: 0 / 0
16.02.2015, 17:58
    #38881025
pulp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с правами в JavaFX-апплете
Хм, попробовал достучаться до сервера через jax-rs, думал там клиент "тоньше" и не будет указанных выше проблем. Но проблема та же.
Как достучаться до сервера из JavaFX?

Пример jax-rs клиента. Используемые библиотеки:
jersey-client-1.16.jar
jersey-core-1.16.jar

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
    	try {
	    	System.out.println("begin");
		Client client = Client.create();
		WebResource webResource = client.resource(getBaseURI()).path("hello").path("add").path("1").path("2");
		ClientResponse response = webResource.get(ClientResponse.class);
		if (response.getStatus() != 200) {
		   throw new RuntimeException("Failed : HTTP error code : "
			+ response.getStatus());
		}
		String output = response.getEntity(String.class);
		System.out.println("Output from Server .... \n");
		System.out.println(output);	    	
	    	
	    	System.out.println("end");
		} catch(Exception e) {
			System.out.println("err_u1");
			e.printStackTrace(System.out);
		}



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Caused by: java.security.AccessControlException: access denied ("java.util.PropertyPermission" "com.sun.jersey.core.util.ReaderWriter.BufferSize" "read")
	at java.security.AccessControlContext.checkPermission(Unknown Source)
	at java.security.AccessController.checkPermission(Unknown Source)
	at java.lang.SecurityManager.checkPermission(Unknown Source)
	at sun.plugin2.applet.FXAppletSecurityManager.checkPermission(Unknown Source)
	at java.lang.SecurityManager.checkPropertyAccess(Unknown Source)
	at java.lang.System.getProperty(Unknown Source)
	at com.sun.jersey.core.util.ReaderWriter.getBufferSize(ReaderWriter.java:91)
	at com.sun.jersey.core.util.ReaderWriter.<clinit>(ReaderWriter.java:87)
	... 84 more
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Проблема с правами в JavaFX-апплете / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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