Добрый день, друзья! У меня здесь одна огромная проблема! Во-первых, в прошлом году я задал вопрос о том, как установить прокси-сервер в JVM, чтобы агент Lotus Notes, запрограммированный в java, мог пройти через веб-службу (также в java). Я, наконец, нашел проблему после нескольких недель исследований, и теперь она работает! Итак, теперь пришло время переместить это в среду тестирования пользователей ... Угадайте, что?!? Не работает! Но, я не сталкиваюсь с той же проблемой. На самом деле, чтобы установить прокси-сервер в JVM, мне нужно установить свойство «http.proxyHost» и «http.proxyPort». Таким образом, я получил администратора сервера Domino, чтобы изменить файл «java.policy» на сервере, чтобы я мог получить доступ к этим свойствам (я получил их копию версии разработки «java.policy» и вставлял ее в «UAT «версия»). Не повезло! Тот же самый код реплицировать на другом сервере с точно такой же файл политики ведут себя два разных способа ... Я получаю это:Некоторые изменения в java.policy не поддерживаются JVM
java.security.AccessControlException: access denied (java.util.PropertyPermission http.proxyHost write)
Мы пытались инвертировать предоставление разрешения, мы попытались дать разрешение на «http.proxyHost» и "proxyHost". Ничего не работало ... Итак, я заставил их удалить все разрешения в разделе «grant» (без кодовой базы) и поставить только AllPermission. Это сработало! Я предполагаю, что у нас есть ошибка в файле политики, так что разрешения не позаботятся. Мне было интересно, если вы могли бы дать мне руку на это ... Вот файл политики:
//
// @(#)src/security/sov/config/java.policy, security, as142, 20070303 1.4.2.2
// ===========================================================================
// Licensed Materials - Property of IBM
// "Restricted Materials of IBM"
//
// IBM SDK, Java(tm) 2 Technology Edition, v1.4.2
// (C) Copyright IBM Corp. 1998, 2002. All Rights Reserved
// ===========================================================================
//
// Standard extensions get all permissions by default
grant codeBase "file:${java.home}/lib/ext/*" {
permission java.security.AllPermission;
};
// default permissions granted to all domains
grant {
// Allows any thread to stop itself using the java.lang.Thread.stop()
// method that takes no argument.
// Note that this permission is granted by default only to remain
// backwards compatible.
// It is strongly recommended that you either remove this permission
// from this policy file or further restrict it to code sources
// that you specify, because Thread.stop() is potentially unsafe.
// See "http://java.sun.com/notes" for more information.
permission java.lang.RuntimePermission "stopThread";
permission java.lang.RuntimePermission "setContextClassLoader"; // This was added
// allows anyone to listen on un-privileged ports
permission java.net.SocketPermission "localhost:1024-", "listen";
permission java.net.NetPermission "setDefaultAuthenticator";
permission java.util.PropertyPermission "http.proxySet", "write";
permission java.util.PropertyPermission "http.proxyHost", "write";
permission java.util.PropertyPermission "http.proxyPort", "write";
// "standard" properies that can be read by anyone
permission java.util.PropertyPermission "java.version", "read";
permission java.util.PropertyPermission "java.vendor", "read";
permission java.util.PropertyPermission "java.vendor.url", "read";
permission java.util.PropertyPermission "java.class.version", "read";
permission java.util.PropertyPermission "os.name", "read";
permission java.util.PropertyPermission "os.version", "read";
permission java.util.PropertyPermission "os.arch", "read";
permission java.util.PropertyPermission "file.separator", "read";
permission java.util.PropertyPermission "path.separator", "read";
permission java.util.PropertyPermission "line.separator", "read";
permission java.util.PropertyPermission "java.specification.version", "read";
permission java.util.PropertyPermission "java.specification.vendor", "read";
permission java.util.PropertyPermission "java.specification.name", "read";
permission java.util.PropertyPermission "java.vm.specification.version", "read";
permission java.util.PropertyPermission "java.vm.specification.vendor", "read";
permission java.util.PropertyPermission "java.vm.specification.name", "read";
permission java.util.PropertyPermission "java.vm.version", "read";
permission java.util.PropertyPermission "java.vm.vendor", "read";
permission java.util.PropertyPermission "java.vm.name", "read";
permission java.util.PropertyPermission "java.assistive", "read";
};
// Notes java code gets all permissions
grant codeBase "file:${notes.binary}/*" {
permission java.security.AllPermission;
};
grant codeBase "file:${notes.binary}/rjext/*" {
permission java.security.AllPermission;
};
Любой ключ будет высоко оценили ... клиент очень устал это не работает!
делает 'разрешение java.util.PropertyPermission "*", "чтение, запись";' помогает? –
Эй! Я собираюсь попробовать это! По вашему опыту, как вы думаете, может быть какая-то опасность установить это? Любые «опасные» свойства? –
Не работает ... java.lang.SecurityException: не разрешено получать доступ к свойствам системы. –