Ошибки доступа к свойствам системы

Тема в разделе "Lotus + Java + LS2J", создана пользователем Zeka, 3 мар 2010.

  1. Zeka

    Zeka Well-Known Member

    Регистрация:
    1 сен 2009
    Сообщения:
    219
    Симпатии:
    0
    В Script libraries добавил свою java библиотеку, которую вызываю через LS2J.
    У меня на компьютере всё работает.

    У клиента следующие строчки:
    <!--shcode--><pre><code class='java'>System.getProperties().put( "proxySet", "true" );
    System.getProperties().put( "proxyHost", "192.168.x.x" );
    System.getProperties().put( "proxyPort", "xxxx" );[/CODE]
    Выбрасывают экцепшин:
    <!--shcode--><pre><code class='java'>java.lang.SecurityException: доступ к свойствам системы
    at COM.ibm.JEmpower.applet.AppletSecurity.checkECL(AppletSecurity.java:565)
    at COM.ibm.JEmpower.applet.AppletSecurity.maybeFailSecurity(AppletSecurity.java:694)
    at COM.ibm.JEmpower.applet.AppletSecurity.maybeFailSecurity(AppletSecurity.java:621)
    at COM.ibm.JEmpower.applet.AppletSecurity.checkPropertyPermission(AppletSecurity.java:1234)
    at COM.ibm.JEmpower.applet.AppletSecurity.checkPermission(AppletSecurity.java:1514)
    at COM.ibm.JEmpower.applet.AppletSecurity.checkPermission(AppletSecurity.java:1455)
    at java.lang.SecurityManager.checkPropertiesAccess(SecurityManager.java:1268)
    at java.lang.System.getProperties(System.java:311)
    at Geocoder.findStreet(Geocoder.java:91)
    at Geocoder.getLocation(Geocoder.java:58)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:618)
    at lotus.domino.JavaConnectInvoker.invoke(Unknown Source)
    at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:618)
    at lotus.domino.JavaConnectLoader.invoke(Unknown Source)"[/CODE]

    Подозреваю, что проблема в java.policy?
    Но вот досада, доступ к клиентскому компьютеру затруднителен. Поэтому попытался вызвать подобный экцепшин на своём компе. Изменил java.policy - закомментировал все строчки permission. Но подобного экцепшин так и не получил.

    В нужном ли направлении я копаю?
    Действительно ли проблема в java.policy?
     
  2. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.079
    Симпатии:
    300
    да - это полиси + ECL
    т.е. юзверь, на месагу, о правомерности доверия подписанту, бахнул энтер не читая :) (а там - запрет)
     
  3. Zeka

    Zeka Well-Known Member

    Регистрация:
    1 сен 2009
    Сообщения:
    219
    Симпатии:
    0
    Т.е. если юзер нажмёт «Start trusting the signer to execute this action», то на java.policies внимание вообще не будет обращаться?
    А если нажмёт «не доверять», то тогда уже java.policies проверяться будут?
     
  4. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.079
    Симпатии:
    300
    проверка осущ., но пермишенов по полиси, а ежели не доверять - но запрет
     
  5. Timas

    Timas Гость

    Код (C++):
    FileInputStream in = new FileInputStream("pr.ini");

    Properties properties = new Properties();
    properties.load(in);
    Собсно из Java агента для Lotus загружются настройки. Возникает ошибка: "Can't find resource for bundle java.util.PropertyResourceBundle, key file_operation_not_allowed Ran Java Agent Class".

    Я так понимаю, что не разрешены операции с файлом pr.ini?

    p.s. агент запускается на сервере, по таймеру. Если запускать агента не на сервере, а локально(т.е. берется локально pr.ini), то все ок.
     
  6. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.079
    Симпатии:
    300
    я просто не сталкивался...
    если на клиенте не менялся секурити для джава (и сталобыть на сервере он похож и дело не в нем) - то банально - нет прав у агента (рестриктед права)
     
  7. VladSh

    VladSh начинающий
    Lotus team

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    Агент на клиенте прекрасно работал, но при запуске его на сервере такая же ерунда, - валится на совсем обычной строчке
    <!--shcode--><pre><code class='java'>Properties p = System.getProperties();[/CODE]<!--QuoteBegin-StackTrace+-->
    <table border="0" cellpadding="0" cellspacing="0" align="center" width="98%"> [tr] <td class="vbquote"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> [tr] <td class="vbquote" width="75" valign="bottom"> <table border="0" cellpadding="0" cellspacing="0" width="50px"> [tr] <td class="vbquote" width="28" valign="top">[​IMG]</td> <td class="vbquote" width="100%" style="background-image: url('style_images/ckr/quotes/quote-bg.gif'); background-position: center;" valign="middle"><span class="vbquote">Цитата:</span></td> <td class="vbquote" valign="top">[​IMG]</td> [/tr] </table> </td> <td class="vbquote" align="left" style="background-image: url('style_images/ckr/quotes/quot-lr-bg.gif')" valign="bottom"></td><td class="vbquote" width="0" align="left" valign="bottom"> <table border="0" cellpadding="0" cellspacing="0" width="200"> [tr] <td class="vbquote" valign="top">[​IMG]</td> <td class="vbquote" width="100%" style="background-image: url('style_images/ckr/quotes/quot-bye-bg.gif')" align="left" valign="middle" nowrap="nowrap"><span class="vbquote">(StackTrace)</span></td> <td class="vbquote" valign="top">[​IMG]</td> [/tr] </table> </td><td class="vbquote" width="100%" align="right" valign="bottom"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> [tr] <td class="vbquote" width="100%"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> [tr] <td class="vbquote" style="background-image: url('style_images/ckr/quotes/quot-top-bg.gif')" width="100%" valign="middle"></td> <td class="vbquote" align="left" valign="top">[​IMG]</td> [/tr] </table> </td> [/tr] </table> </td> [/tr] </table> <table border="0" cellpadding="0" cellspacing="0" width="100%"> [tr] <td class="vbquote" width="10" style="background-image: url('style_images/ckr/quotes/quoting-left.gif')"></td> <td class="vbquotemain" width="100%" valign="top"></td> <td class="vbquote" width="10" style="background-image: url('style_images/ckr/quotes/quoting-right.gif')"></td> [/tr] [tr] <td class="vbquote" width="10" style="background-image: url('style_images/ckr/quotes/quot-left-bg.gif')"></td> <td class="vbquotemain" width="100%" valign="top"><!--QuoteEBegin-->[15C0:0073-17E0] 31.10.2012 17:31:43 Agent error: java.util.MissingResourceException: Can't find resource for bundle java.util.PropertyResourceBundle, key access_properties_not_allowed
    [15C0:0075-17E0] 31.10.2012 17:31:43 Agent error: at java.util.ResourceBundle.getObject(ResourceBundle.java:407)
    [15C0:0077-17E0] 31.10.2012 17:31:43 Agent error: at java.util.ResourceBundle.getString(ResourceBundle.java:421)
    [15C0:0079-17E0] 31.10.2012 17:31:43 Agent error: at lotus.notes.JavaString.getString(Unknown Source)
    [15C0:007B-17E0] 31.10.2012 17:31:43 Agent error: at lotus.notes.AgentSecurityManager.checkPropertiesAccess(Unknown Source)
    [15C0:007D-17E0] 31.10.2012 17:31:43 Agent error: at java.lang.System.getProperties(System.java:322)<!--QuoteEnd--></td> [/tr] [tr] [/tr] </table> </td> [/tr] </table>
    <!--QuoteEEnd-->Коллеги, подскажите пожалуйста, как побороть!?
     
  8. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Может быть, ответ здесь: "key access_properties_not_allowed"?
     
  9. Кирилл Шваб

    Кирилл Шваб Well-Known Member

    Регистрация:
    30 июн 2006
    Сообщения:
    144
    Симпатии:
    4
    VladSh,

    Означает что не получилось найти "человеческое" описание ошибки access_properties_not_allowed, но причина не в этом.

    Надо добавить в java.policy:
    1. разрешение на метод System.getProperties()
    2. разрешения на чтение необходимых свойств (по умолчанию доступ открыт только к некоторым), если в коде потом читаются какие-то системные свойства
     
  10. VladSh

    VladSh начинающий
    Lotus team

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    Кирилл Шваб
    В java.policy вроде всё было... Спасибо за то, что всегда помогаете!

    Почитал доку.. можно брать значение свойства прямо из System.
    Ради эксперимента заменил
    <!--shcode--><pre><code class='java'>Properties p = System.getProperties();
    // ... = p.getProperty("java.version");
    // ... = p.getProperty("java.class.version");[/CODE]на<!--shcode--><pre><code class='java'>// ... = System.getProperty("java.version");
    // ... = System.getProperty("java.class.version");[/CODE]и прокатило!

    Не знаю, почему его клинит если брать сначала getProperties(), но главное, что без него работает.
     
Загрузка...

Поделиться этой страницей