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 | SÌ | |
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 | SÌ |
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 | SÌ | |
setContextClassLoader | SÌ | |
enableContextClassLoaderOverride | SÌ | |
closeClassLoader | NO | |
setSecurityManager | NO | |
createSecurityManager | NO | |
getenv.{nome variabile} | 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 | |
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 | SÌ | |
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 | SÌ |
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. |
SÌ | |
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 | SÌ |
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 |