Riferimento autorizzazioni Java

Questa pagina si applica ad Apigee e Apigee hybrid.

Visualizza la documentazione di Apigee Edge.

Informazioni importanti sui criteri di autorizzazione Java

Se stai sviluppando criteri di callout Java, devi sapere quali criteri di autorizzazione sono in vigore nella JVM di Apigee e in che modo influiscono sul tuo codice. Ad esempio, il codice Java personalizzato non ha accesso illimitato al file system. Tuttavia, nel caso dell'accesso al file system, puoi leggere determinati file, ad esempio i file delle risorse dei criteri. Tuttavia, la maggior parte degli altri accessi al file system è bloccata. Questo argomento elenca tutti i tipi di autorizzazioni JDK e i relativi target o azioni. Per ogni target o azione, specifichiamo il criterio di autorizzazione e le eventuali eccezioni che devi conoscere.

Per scoprire di più sui tipi di autorizzazioni JDK e su cosa consente ciascuna autorizzazione, consulta Autorizzazioni nel Java Development Kit (JDK).

Tipo di autorizzazione Nome target o azione Autorizzazione concessa
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

Un'istanza java.io.FilePermission rappresenta l'accesso a un file o a una directory. Un FilePermission è costituito da un percorso e da un insieme di azioni valide per quel percorso.
read SÌ, ma si applicano limitazioni. Consulta la sezione Restrizioni.
write NO
execute NO
delete NO
readLink
java.io.SerializablePermission

Un'autorizzazione SerializablePermission contiene un nome (chiamato anche "nome target"), ma non un elenco di azioni. L'autorizzazione è presente o meno.
enableSubclassImplementation
enableSubstitution NO
java.lang.management.ManagementPermission

Metodi definiti nell'interfaccia di gestione per la piattaforma Java
controllo NO
monitora NO
java.lang.reflect.ReflectPermission

Per le operazioni di riflessione. ReflectPermission è un'autorizzazione denominata e non ha azioni
suppressAccessChecks NO
newProxyInPackage.{package name} NO
java.lang.RuntimePermission

Contiene un nome (chiamato anche "nome target"), ma non un elenco di azioni. Puoi avere o meno l'autorizzazione denominata.
createClassLoader NO
getClassLoader
setContextClassLoader
enableContextClassLoaderOverride
closeClassLoader NO
setSecurityManager NO
createSecurityManager NO
getenv.{nome variabile} NO
exitVM.{exit status} NO
shutdownHooks NO
setFactory NO
setIO NO
modifyThread
stopThread
modifyThreadGroup
getProtectionDomain
getFileSystemAttributes NO
readFileDescriptor
writeFileDescriptor NO
loadLibrary.{library name} NO
accessClassInPackage. {package name}
defineClassInPackage. {package name} NO
accessDeclaredMembers NO
queuePrintJob NO
getStackTrace NO
setDefaultUncaughtExceptionHandler NO
di notifica NO
usePolicy NO
java.net.NetPermission

Un'autorizzazione NetPermission contiene un nome, ma non un elenco di azioni. Puoi disporre o meno dell'autorizzazione denominata.
setDefaultAuthenticator NO
requestPasswordAuthentication NO
specifyStreamHandler
setProxySelector NO
getProxySelector NO
setCookieHandler NO
getCookieHandler NO
setResponseCache NO
getResponseCache NO
getNetworkInformation NO
java.net.SocketPermission

Rappresenta l'accesso a una rete tramite socket. Un'autorizzazione Socket è costituita da una specifica dell'host e da un insieme di "azioni" che specificano i modi per connettersi all'host.
host = (hostname | IPaddress)[:portrange]
portrange = portnumber | -portnumber | portnumber-[portnumber]

I possibili modi per connettersi all'host sono

accept
connect
listen
resolve

L'azione "listen" ha significato solo se utilizzata con "localhost". L'azione "resolve" (risolvi le ricerche dei servizi di nomi host/IP) è implicita quando è presente una qualsiasi delle altre azioni.
risolvere
connessione

SÌ, ma si applicano limitazioni. Consulta la sezione Restrizioni.

Apigee limita l'accesso agli indirizzi sitelocal, anylocal, loopback e linklocal.

listen,
accept
NO
java.net.URLPermission

Rappresenta l'autorizzazione di accesso a una risorsa o a un insieme di risorse definito da un determinato URL e per un determinato insieme di metodi di richiesta e intestazioni di richiesta impostabili dall'utente. Il nome dell'autorizzazione è la stringa dell'URL. La stringa di azioni è una concatenazione dei metodi di richiesta e delle intestazioni. L'intervallo di nomi di metodi e intestazioni non è limitato da questa classe.
LinkPermission

La classe Permission per le operazioni di creazione dei link.
difficile NO
simbolico NO
java.security.SecurityPermission

Una SecurityPermission contiene un nome (chiamato anche "nome target"), ma non un elenco di azioni. Puoi avere o meno l'autorizzazione denominata.
Il nome target è il nome di un parametro di configurazione della sicurezza (vedi di seguito). Attualmente l'oggetto SecurityPermission viene utilizzato per proteggere l'accesso agli oggetti 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 controllerà l'oggetto java.util.logging.LoggingPermission quando il codice eseguito con un SecurityManager chiama uno dei metodi di controllo della registrazione (ad esempio Logger.setLevel).
controllo NO
java.util.PropertyPermission
Il nome è il nome della proprietà ("java.home", "os.name" e così via). La convenzione di denominazione segue la convenzione di denominazione delle proprietà gerarchiche. Inoltre, un asterisco può apparire alla fine del nome, dopo un "." o da solo, per indicare una corrispondenza jolly. Ad esempio: "java.*" o "*" sono validi, "*java" o "a*b" non sono validi.

Le azioni da concedere vengono passate al costruttore in una stringa contenente un elenco di zero o più parole chiave separate da virgole.
read
write NO
javax.xml.ws.WebServicePermission
publishEndpoint NO
javax.xml.bind.JAXBPermission setDatatypeConverter NO
javax.sound.sampled.AudioPermission

Diritti di accesso alle risorse del sistema audio.
riproduci NO
disco NO
javax.security.auth.PrivateCredentialPermission

Proteggi l'accesso alle credenziali private appartenenti a un determinato soggetto. L'oggetto è rappresentato da un insieme di principali. Il nome target di questa autorizzazione specifica un nome della classe delle credenziali e un insieme di principali. L'unico valore valido per le azioni di questa autorizzazione è "lettura".
CredentialClass {PrincipalClass "PrincipalName"}* NO
javax.security.auth.kerberos.ServicePermission

Proteggi i servizi Kerberos e le credenziali necessarie per accedere a questi servizi.
initiate NO
accetta NO
javax.security.auth.kerberos.DelegationPermission

Viene utilizzato per limitare l'utilizzo del modello di delega Kerberos, ad esempio i ticket inoltrabili e proxy.

Il nome target di questa autorizzazione specifica una coppia di entità servizio Kerberos. Il primo è il principale del servizio subordinato a cui è stato affidato l'utilizzo del TGT (Ticket Granting Ticket). Il secondo entità servizio designa il servizio di destinazione con cui l'entità servizio subordinata deve interagire per conto dell'entità KerberosPrincipal di iniziativa.
initiate NO
accetta NO
javax.security.auth.AuthPermission

Al momento, l'oggetto AuthPermission viene utilizzato per proteggere l'accesso agli oggetti Subject, SubjectDomainCombiner, LoginContext e 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

Autorizzazione che controlla l'accesso alle operazioni di MBeanServer. Se è stato impostato un gestore della sicurezza utilizzando System.setSecurityManager(java.lang.SecurityManager), la maggior parte delle operazioni sul server MBean richiede che le autorizzazioni del chiamante implichino un'autorizzazione MBean appropriata per l'operazione.

action className#member[objectName]

Se disponi di un'autorizzazione MBean, vengono consentite le operazioni solo se tutti e quattro gli elementi corrispondenti.
addNotificationListener NO
getAttribute NO
getClassLoader NO
getClassLoaderFor NO
getClassLoaderRepository NO
getDomains NO
getMBeanInfo NO
getObjectInstance NO
instantiate NO
richiamare 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

Questa autorizzazione rappresenta la "fiducia" in un firmatario o in una base di codice.
register NO
* NO
javax.management.remote.SubjectDelegationPermission
NO