Esta página se aplica a Apigee y Apigee Hybrid.
Consulta la documentación de
Apigee Edge.
Qué debes saber sobre las políticas de permisos de Java
Si está desarrollando una política JavCallout, debe saber qué políticas de permisos están en vigor en la JVM de Apigee y cómo afectarán a su código. Por ejemplo, tu código Java personalizado no tiene acceso ilimitado al sistema de archivos. Sin embargo, en el caso del acceso al sistema de archivos, puedes leer determinados archivos, como los archivos de recursos de políticas. Sin embargo, la mayoría de los demás accesos al sistema de archivos están bloqueados. En este tema se enumeran todos los tipos de permisos de JDK y sus respectivos objetivos o acciones. En cada destino o acción, especificamos la política de permisos y las excepciones que debes conocer.
Para obtener más información sobre los tipos de permisos de JDK y lo que permite cada permiso, consulta Permisos en Java Development Kit (JDK).
Tipo de permiso | Nombre del objetivo o de la acción | Permiso concedido |
java.awt.AWTPermission | ||
accessClipboard | NO | |
accessEventQueue | NO | |
accessSystemTray | NO | |
createRobot | NO | |
fullScreenExclusive | NO | |
listenToAllAWTEvents | NO | |
readDisplayPixels | NO | |
replaceKeyboardFocusManager | NO | |
setAppletStub | NO | |
setWindowsAlwaysOnTop | NO | |
showWindowWithoutWarningBanner | NO | |
toolkitModality | NO | |
watchMousePointer | NO | |
java.io.FilePermission java.io.FilePermission representa el acceso a un archivo o directorio. Un FilePermission consta de una ruta de acceso y un conjunto de acciones válidas para esa ruta de acceso. |
read | SÍ, pero se aplican restricciones. Consulta las restricciones. |
write | NO | |
execute | NO | |
delete | NO | |
readLink | SÍ | |
java.io.SerializablePermission SerializablePermission contiene un nombre (también denominado "nombre de destino"), pero no una lista de acciones. Tienes el permiso con ese nombre o no lo tienes. |
enableSubclassImplementation | SÍ |
enableSubstitution | NO | |
java.lang.management.ManagementPermission Métodos definidos en la interfaz de gestión de la plataforma Java |
control | NO |
monitorizará | NO | |
java.lang.reflect.ReflectPermission Para operaciones reflexivas. ReflectPermission es un permiso con nombre y no tiene acciones. |
suppressAccessChecks | NO |
newProxyInPackage.{package name} | NO | |
java.lang.RuntimePermission Contiene un nombre (también denominado "nombre de destino"), pero no una lista de acciones. Tienes el permiso con ese nombre o no lo tienes. |
createClassLoader | NO |
getClassLoader | SÍ | |
setContextClassLoader | SÍ | |
enableContextClassLoaderOverride | SÍ | |
closeClassLoader | NO | |
setSecurityManager | NO | |
createSecurityManager | NO | |
getenv.{variable name} | NO | |
exitVM.{exit status} | NO | |
shutdownHooks | NO | |
setFactory | NO | |
setIO | NO | |
modifyThread | SÍ | |
stopThread | SÍ | |
modifyThreadGroup | SÍ | |
getProtectionDomain | SÍ | |
getFileSystemAttributes | NO | |
readFileDescriptor | SÍ | |
writeFileDescriptor | NO | |
loadLibrary.{library name} | NO | |
accessClassInPackage. {package name} | SÍ | |
defineClassInPackage. {package name} | NO | |
accessDeclaredMembers | NO | |
queuePrintJob | NO | |
getStackTrace | NO | |
setDefaultUncaughtExceptionHandler | NO | |
notificación | NO | |
usePolicy | NO | |
java.net.NetPermission Un NetPermission contiene un nombre, pero no una lista de acciones. Tienes el permiso con el nombre o no lo tienes. |
setDefaultAuthenticator | NO |
requestPasswordAuthentication | NO | |
specifyStreamHandler | SÍ | |
setProxySelector | NO | |
getProxySelector | NO | |
setCookieHandler | NO | |
getCookieHandler | NO | |
setResponseCache | NO | |
getResponseCache | NO | |
getNetworkInformation | NO | |
java.net.SocketPermission Representa el acceso a una red a través de sockets. Un SocketPermission consta de una especificación de host y un conjunto de "acciones" que especifican las formas de conectarse a ese host. host = (nombre_de_host | dirección_IP)[:intervalo_de_puertos] intervalo_de_puertos = número_de_puerto | -número_de_puerto | número_de_puerto-[número_de_puerto] Las formas posibles de conectarse al host son accept connect listen resolve La acción "listen" solo tiene sentido cuando se usa con "localhost". La acción "resolve" (resolución de búsquedas de servicios de nombres de host o IP) se implica cuando se incluye alguna de las otras acciones. |
resolver | SÍ |
conectar |
SÍ, pero se aplican restricciones. Consulta las restricciones. Apigee restringe el acceso a las direcciones sitelocal, anylocal, de bucle invertido y linklocal, así como a los intervalos de IPv4 privados definidos en RFC1918. |
|
listen, accept |
NO | |
java.net.URLPermission Representa el permiso para acceder a un recurso o a un conjunto de recursos definidos por una URL determinada, así como a un conjunto determinado de métodos de solicitud y encabezados de solicitud que puede definir el usuario. El nombre del permiso es la cadena de URL. La cadena de acciones es una concatenación de los métodos de solicitud y los encabezados. Esta clase no restringe el intervalo de nombres de métodos y encabezados. |
SÍ | |
LinkPermission Clase Permission para operaciones de creación de enlaces. |
difícil | NO |
simbólico | NO | |
java.security.SecurityPermission Un SecurityPermission contiene un nombre (también denominado "nombre de destino"), pero no una lista de acciones. O bien tienes el permiso con el nombre indicado, o bien no lo tienes. El nombre de destino es el nombre de un parámetro de configuración de seguridad (consulta la información que aparece más abajo). Actualmente, el objeto SecurityPermission se usa para proteger el acceso a los objetos Policy, Security, Provider, Signer e Identity. |
createAccessControlContext | NO |
getDomainCombiner | NO | |
getPolicy | NO | |
setPolicy | NO | |
createPolicy.{policy type} | NO | |
getProperty.{key} | NO | |
setProperty.{key} | NO | |
insertProvider | NO | |
removeProvider.{provider name} | NO | |
clearProviderProperties.{provider name} | NO | |
putProviderProperty.{provider name} | NO | |
removeProviderProperty.{provider name} | NO | |
SQLPermission | setLog | NO |
callAbort | NO | |
setSyncFactory | NO | |
setNetworkTimeout | NO | |
deregisterDriver | NO | |
java.util.logging.LoggingPermission Un SecurityManager comprobará el objeto java.util.logging.LoggingPermission cuando el código que se ejecute con un SecurityManager llame a uno de los métodos de control de registro (como Logger.setLevel). |
control | NO |
java.util.PropertyPermission El nombre es el nombre de la propiedad ("java.home", "os.name", etc.). La convención de nomenclatura sigue la convención de nomenclatura de propiedades jerárquica. También puede aparecer un asterisco al final del nombre, después de un punto (".") o solo, para indicar que se trata de una coincidencia comodín. Por ejemplo, "java.*" o "*" son válidos, pero "*java" o "a*b" no lo son. Las acciones que se van a conceder se transfieren al constructor en una cadena que contiene una lista de cero o más palabras clave separadas por comas. |
read | SÍ |
write | NO | |
javax.xml.ws.WebServicePermission
|
publishEndpoint | NO |
javax.xml.bind.JAXBPermission | setDatatypeConverter | NO |
javax.sound.sampled.AudioPermission Derechos de acceso a los recursos del sistema de audio. |
reproducir | NO |
registro | NO | |
javax.security.auth.PrivateCredentialPermission Protege el acceso a las credenciales privadas que pertenecen a un Subject concreto. El sujeto se representa mediante un conjunto de principales. El nombre de destino de este permiso especifica un nombre de clase de Credential y un conjunto de principales. El único valor válido para las acciones de este permiso es "read". |
CredentialClass {PrincipalClass "PrincipalName"}* | NO |
javax.security.auth.kerberos.ServicePermission Protege los servicios de Kerberos y las credenciales necesarias para acceder a ellos. |
initiate | NO |
aceptar | NO | |
javax.security.auth.kerberos.DelegationPermission Se usa para restringir el uso del modelo de delegación de Kerberos, es decir, los tickets reenviables y de proxy. El nombre de destino de este permiso especifica un par de nombres principales de servicio Kerberos. La primera es la entidad de servicio subordinada a la que se le confía el uso del ticket de concesión de tickets (TGT). El segundo principal de servicio designa el servicio de destino con el que debe interactuar el principal de servicio subordinado en nombre del principal de Kerberos iniciador. |
initiate | NO |
aceptar | NO | |
javax.security.auth.AuthPermission Actualmente, el objeto AuthPermission se usa para proteger el acceso a los objetos Subject, SubjectDomainCombiner, LoginContext y Configuration. |
doAs | NO |
doAsPrivileged | NO | |
getSubject | NO | |
getSubjectFromDomainCombiner | NO | |
setReadOnly | NO | |
modifyPrincipals | NO | |
modifyPublicCredentials | NO | |
modifyPrivateCredentials | NO | |
refreshCredential | NO | |
destroyCredential | NO | |
createLoginContext.{name} | NO | |
getLoginConfiguration | NO | |
setLoginConfiguration | NO | |
createLoginConfiguration.{configuration type} | NO | |
refreshLoginConfiguration | NO | |
javax.net.ssl.SSLPermission |
setHostnameVerifier | NO |
getSSLSessionContext | NO | |
setDefaultSSLContext | NO | |
javax.management.MBeanPermission Permiso que controla el acceso a las operaciones de MBeanServer. Si se ha definido un gestor de seguridad mediante System.setSecurityManager(java.lang.SecurityManager), la mayoría de las operaciones en MBeanServer requieren que los permisos del llamador impliquen un MBeanPermission adecuado para la operación. action className#member[objectName] Si tienes un MBeanPermission, solo se permiten las operaciones si coinciden los cuatro elementos. |
addNotificationListener | NO |
getAttribute | NO | |
getClassLoader | NO | |
getClassLoaderFor | NO | |
getClassLoaderRepository | NO | |
getDomains | NO | |
getMBeanInfo | NO | |
getObjectInstance | NO | |
instantiate | NO | |
invocar | NO | |
isInstanceOf | NO | |
queryMBeans | NO | |
queryNames | NO | |
registerMBean | NO | |
removeNotificationListener | NO | |
setAttribute | NO | |
unregisterMBean | NO | |
javax.management.MBeanServerPermission |
createMBeanServer | NO |
findMBeanServer | NO | |
newMBeanServer | NO | |
releaseMBeanServer | NO | |
javax.management.MBeanTrustPermission Este permiso representa la "confianza" en un firmante o una base de código. |
register | NO |
* | NO | |
javax.management.remote.SubjectDelegationPermission
|
NO |