Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X. информация
Что нужно знать о политиках разрешений Java
Если вы разрабатываете политики Java Callout, вам необходимо знать, какие политики разрешений действуют в Edge JVM и как они повлияют на ваш код. Например, ваш собственный Java-код не имеет неограниченного доступа к файловой системе. Однако в случае доступа к файловой системе вы можете читать определенные файлы, например файлы ресурсов политики. Но доступ к большинству других файловых систем заблокирован. В этом разделе перечислены все типы разрешений JDK и соответствующие им цели или действия. Для каждой цели или действия мы указываем политику разрешений и любые исключения, о которых вам необходимо знать.
Дополнительные сведения о типах разрешений JDK и о том, что разрешает каждое разрешение, см . в разделе Разрешения в Java Development Kit (JDK) .
Включение ограничений безопасности
В Edge для частного облака ограничения безопасности отключены по умолчанию. Это означает, что ваш собственный код выноски Java может получить доступ ко всем ресурсам без ограничений. Чтобы включить ограничения безопасности в вашей установке Edge for Private Cloud, выполните следующую процедуру:
- На первом узле процессора сообщений откройте файл
$APIGEE_ROOT/customer/application/message-processor.properties
в редакторе. Если файл не существует, создайте его. - Добавьте в файл следующую строку:
conf_security-policy_enable.security.manager=true
- Save the file and ensure the file is owned by the
apigee
user:chown apigee:apigee $APIGEE_ROOT/customer/application/message-processor.properties
- Перезапустите процессор сообщений:
apigee-service message-processor restart
- Повторите эти шаги на всех остальных процессорах сообщений.
Тип разрешения | Название цели или действия | Разрешение получено |
java.awt.AWTPermission | ||
доступБуфер обмена | НЕТ | |
AccessEventQueue | НЕТ | |
доступСистемТрей | НЕТ | |
СоздатьРобот | НЕТ | |
полноэкранныйЭксклюзивный | НЕТ | |
прослушиваниеAllAWTEvents | НЕТ | |
readDisplayPixels | НЕТ | |
заменитьKeyboardFocusManager | НЕТ | |
setAppletStub | НЕТ | |
установитьWindowsAlwaysOnTop | НЕТ | |
showWindowWithoutWarningBanner | НЕТ | |
набор инструментовМодальность | НЕТ | |
часыМышьУказатель | НЕТ | |
java.io.FilePermission java.io.FilePermission представляет доступ к файлу или каталогу. FilePermission состоит из пути и набора действий, допустимых для этого пути. | читать | ДА, но действуют ограничения. См. Ограничения . |
писать | НЕТ | |
выполнять | НЕТ | |
удалить | НЕТ | |
читатьСсылка | ДА | |
java.io.SerializablePermission SerializablePermission содержит имя (также называемое «целевым именем»), но не содержит списка действий; у вас либо есть указанное разрешение, либо нет. | EnableSubclassImplementation | ДА |
включитьЗамещение | НЕТ | |
java.lang.management.ManagementPermission Методы, определенные в интерфейсе управления платформой Java. | контроль | НЕТ |
монитор | НЕТ | |
java.lang.reflect.ReflectPermission Для рефлексивных операций. ReflectPermission — это именованное разрешение, не выполняющее никаких действий. | подавитьAccessChecks | НЕТ |
newProxyInPackage.{имя пакета} | НЕТ | |
java.lang.RuntimePermission Содержит имя (также называемое «целевым именем»), но не содержит списка действий; у вас либо есть указанное разрешение, либо нет. | создатькласслоадер | НЕТ |
getClassLoader | ДА | |
setContextClassLoader | ДА | |
EnableContextClassLoaderOverride | ДА | |
closeClassLoader | НЕТ | |
SetSecurityManager | НЕТ | |
создатьSecurityManager | НЕТ | |
getenv.{имя переменной} | НЕТ | |
выходVM.{статус выхода} | НЕТ | |
выключениеHooks | НЕТ | |
setFactory | НЕТ | |
setIO | НЕТ | |
модифицироватьТред | ДА | |
stopThread | ДА | |
изменитьThreadGroup | ДА | |
getProtectionDomain | ДА | |
getFileSystemAttributes | НЕТ | |
чтениефайледескриптор | ДА | |
записьфайледескриптор | НЕТ | |
loadLibrary.{имя библиотеки} | НЕТ | |
доступКлассВПакет. {название пакета} | ДА | |
определитьКлассИнПакаже. {название пакета} | НЕТ | |
доступдекларедмемберс | НЕТ | |
очередьПечатьЗадание | НЕТ | |
getStackTrace | НЕТ | |
setDefaultUncaughtExceptionHandler | НЕТ | |
предпочтения | НЕТ | |
использоватьполитику | НЕТ | |
java.net.NetPermission NetPermission содержит имя, но не содержит списка действий; у вас либо есть указанное разрешение, либо нет. | setDefaultAuthenticator | НЕТ |
запросПарольАутентификация | НЕТ | |
указатьStreamHandler | ДА | |
setProxySelector | НЕТ | |
getProxySelector | НЕТ | |
setCookieHandler | НЕТ | |
getCookieHandler | НЕТ | |
setResponseCache | НЕТ | |
getResponseCache | НЕТ | |
Получить нетворкинформацию | НЕТ | |
java.net.SocketPermission Представляет доступ к сети через сокеты. SocketPermission состоит из спецификации хоста и набора «действий», определяющих способы подключения к этому хосту. хост = (имя хоста | IP-адрес)[:диапазон портов] диапазон портов = номер порта | -номер порта | номер порта-[номер порта] Возможные способы подключения к хосту: принимать соединять слушать решать Действие «прослушивать» имеет смысл только при использовании с «localhost». Действие «разрешить» (разрешить поиск службы имен хоста/IP) подразумевается, когда присутствуют любые другие действия. | решать | ДА |
соединять | ДА, но действуют ограничения. См. Ограничения . Apigee ограничивает доступ к адресам sitelocal, Anylocal, Loopback и Linklocal. | |
слушать, принимать | НЕТ | |
java.net.URLPermission Представляет разрешение на доступ к ресурсу или набору ресурсов, определенному заданным URL-адресом, а также для заданного набора настраиваемых пользователем методов запроса и заголовков запросов. Имя разрешения — это строка URL. Строка действий представляет собой объединение методов запроса и заголовков. Диапазон имен методов и заголовков не ограничен этим классом. | ДА | |
LinkPermission Класс разрешений для операций создания ссылок. | жесткий | НЕТ |
символический | НЕТ | |
java.security.SecurityPermission SecurityPermission содержит имя (также называемое «целевым именем»), но не содержит списка действий; у вас либо есть указанное разрешение, либо нет. Целевое имя — это имя параметра конфигурации безопасности (см. ниже). В настоящее время объект SecurityPermission используется для защиты доступа к объектам Policy, Security, Provider, Signer и Identity. | createAccessControlContext | НЕТ |
getDomainCombiner | НЕТ | |
getPolicy | НЕТ | |
setPolicy | НЕТ | |
createPolicy.{тип политики} | НЕТ | |
getProperty.{ключ} | НЕТ | |
setProperty.{ключ} | НЕТ | |
InsertProvider | НЕТ | |
RemoveProvider.{имя провайдера} | НЕТ | |
clearProviderProperties.{имя провайдера} | НЕТ | |
putProviderProperty.{имя провайдера} | НЕТ | |
RemoveProviderProperty.{имя поставщика} | НЕТ | |
SQLPermission | setLog | НЕТ |
вызовПрервать | НЕТ | |
setSyncFactory | НЕТ | |
setNetworkTimeout | НЕТ | |
отменить регистрацию драйвера | НЕТ | |
java.util.logging.LoggingPermission SecurityManager проверит объект java.util.logging.LoggingPermission, когда код, выполняемый с SecurityManager, вызывает один из методов управления журналированием (например, Logger.setLevel). | контроль | НЕТ |
java.util.PropertyPermission Имя — это имя свойства («java.home», «os.name» и т. д.). Соглашение об именах соответствует соглашению об именах иерархических свойств. Кроме того, звездочка может появиться в конце имени после «.» или сама по себе для обозначения совпадения с подстановочным знаком. Например: «java.*» или «*» допустимы, «*java» или «a*b» недействительны. Действия, которые должны быть предоставлены, передаются конструктору в строке, содержащей список из нуля или более ключевых слов, разделенных запятыми. | читать | ДА |
писать | НЕТ | |
javax.xml.ws.WebServicePermission | публикацияКонечная точка | НЕТ |
javax.xml.bind.JAXBPermission | setDatatypeConverter | НЕТ |
javax.sound.sampled.AudioPermission Права доступа к ресурсам аудиосистемы. | играть | НЕТ |
записывать | НЕТ | |
javax.security.auth.PrivateCredentialPermission Защитите доступ к частным учетным данным, принадлежащим определенному Субъекту. Субъект представлен набором принципов. Целевое имя этого разрешения указывает имя класса учетных данных и набор участников. Единственное допустимое значение для действий этого разрешения — «чтение». | CredentialClass {PrincipalClass "PrincipalName"}* | НЕТ |
javax.security.auth.kerberos.ServicePermission Защитите службы Kerberos и учетные данные, необходимые для доступа к этим службам. | инициировать | НЕТ |
принимать | НЕТ | |
javax.security.auth.kerberos.DelegationPermission Используется для ограничения использования модели делегирования Kerberos; т.е. пересылаемые и прокси-билеты. Целевое имя этого разрешения указывает пару субъектов службы Kerberos. Первый — это подчиненному субъекту службы, которому поручено использовать билет на предоставление билета (TGT). Второй субъект-служба определяет целевую службу, с которой подчиненный субъект-служба должен взаимодействовать от имени инициирующего KerberosPrincipal. | инициировать | НЕТ |
принимать | НЕТ | |
javax.security.auth.AuthPermission В настоящее время объект AuthPermission используется для защиты доступа к объектам subject, subjectDomainCombiner, LoginContext и Configuration. | действия | НЕТ |
doAsPrivileged | НЕТ | |
getSubject | НЕТ | |
getSubjectFromDomainCombiner | НЕТ | |
setReadOnly | НЕТ | |
изменитьПринципалы | НЕТ | |
модифицироватьпабликкредентиалс | НЕТ | |
изменитьПриватеКредиенталс | НЕТ | |
обновить учетные данные | НЕТ | |
уничтожитьCredential | НЕТ | |
createLoginContext.{имя} | НЕТ | |
getLoginConfiguration | НЕТ | |
setLoginConfiguration | НЕТ | |
createLoginConfiguration.{тип конфигурации} | НЕТ | |
обновитьЛогинКонфигурация | НЕТ | |
javax.net.ssl.SSLPermission | setHostnameVerifier | НЕТ |
getSSLSessionContext | НЕТ | |
setDefaultSSLContext | НЕТ | |
javax.management.MBeanPermission Разрешение, контролирующее доступ к операциям MBeanServer. Если диспетчер безопасности был установлен с помощью System.setSecurityManager(java.lang.SecurityManager), большинство операций на MBeanServer требуют, чтобы разрешения вызывающего объекта подразумевали MBeanPermission, соответствующий операции. имя класса действия#член[имя объекта] Если у вас есть разрешение MBeanPermission, оно разрешает операции только в том случае, если все четыре элемента совпадают. | добавить прослушиватель уведомлений | НЕТ |
getAttribute | НЕТ | |
getClassLoader | НЕТ | |
getClassLoaderFor | НЕТ | |
getClassLoaderRepository | НЕТ | |
getDomains | НЕТ | |
getMBeanInfo | НЕТ | |
ПолучитьОбъектИнстанс | НЕТ | |
создавать экземпляр | НЕТ | |
вызывать | НЕТ | |
isInstanceOf | НЕТ | |
запросMBeans | НЕТ | |
имена запросов | НЕТ | |
зарегистрироватьMBean | НЕТ | |
удалить прослушиватель уведомлений | НЕТ | |
УстановитьАтрибут | НЕТ | |
отменить регистрациюMBean | НЕТ | |
javax.management.MBeanServerPermission | создатьMBeanServer | НЕТ |
найтиMBeanServer | НЕТ | |
новыйMBeanServer | НЕТ | |
релизMBeanServer | НЕТ | |
javax.management.MBeanTrustPermission Это разрешение представляет собой «доверие» к подписывающей стороне или базе кода. | зарегистрироваться | НЕТ |
* | НЕТ | |
javax.management.remote.SubjectDelegationPermission | НЕТ |