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 una policy JavCallout, devi sapere quali policy di autorizzazione sono in vigore nella JVM Apigee e come influiranno sul tuo codice. Ad esempio, il tuo 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 di risorse dei criteri. Tuttavia, la maggior parte degli altri accessi al file system è bloccata. Questo argomento elenca tutti i tipi di autorizzazione JDK e i relativi target o azioni. Per ogni target o azione, specifichiamo le norme relative alle autorizzazioni e le eventuali eccezioni di cui devi essere a conoscenza.
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 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 Limitazioni. |
write | NO | |
execute | NO | |
elimina | NO | |
readLink | SÌ | |
java.io.SerializablePermission Un SerializablePermission contiene un nome (chiamato anche "nome target"), ma non un elenco di azioni; hai l'autorizzazione denominata o non ce l'hai. |
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 reflection. Un ReflectPermission è un'autorizzazione denominata e non ha azioni |
suppressAccessChecks | NO |
newProxyInPackage.{package name} | NO | |
java.lang.RuntimePermission Contiene un nome (chiamato anche "nome di destinazione"), ma nessun elenco di azioni; hai l'autorizzazione denominata o non ce l'hai. |
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 | |
di notifica | NO | |
usePolicy | NO | |
java.net.NetPermission Un NetPermission contiene un nome, ma nessun elenco di azioni; disponi dell'autorizzazione denominata o non la disponi. |
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 SocketPermission è costituito da una specifica dell'host e da un insieme di "azioni" che specificano i modi per connettersi a quell'host. host = (hostname | IPaddress)[:portrange] portrange = portnumber | -portnumber | portnumber-[portnumber] I modi possibili per connettersi all'host sono accept connect listen resolve L'azione "listen" è significativa solo se utilizzata con "localhost". L'azione "resolve" (risolvi ricerche del servizio di nomi host/IP) è implicita quando è presente una delle altre azioni. |
risolvere | SÌ |
connessione |
SÌ, ma si applicano limitazioni. Consulta la sezione Limitazioni. Apigee limita l'accesso agli indirizzi sitelocal, anylocal, loopback e linklocal, nonché agli intervalli IPv4 privati definiti in RFC1918. |
|
ascolta, accetta |
NO | |
java.net.URLPermission Rappresenta l'autorizzazione di accesso a una risorsa o a un insieme di risorse definiti 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 delle 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. |
hard | NO |
simbolico | NO | |
java.security.SecurityPermission Un'autorizzazione di sicurezza contiene un nome (chiamato anche "nome target"), ma nessun elenco di azioni; hai l'autorizzazione denominata o non ce l'hai. Il nome target è il nome di un parametro di configurazione della sicurezza (vedi sotto). 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 in esecuzione 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 gerarchica delle proprietà. Inoltre, un asterisco può essere visualizzato alla fine del nome, dopo un "." o da solo, per indicare una corrispondenza con caratteri jolly. Ad esempio: "java.*" o "*" sono validi, "*java" o "a*b" non sono validi. Le azioni da concedere vengono trasmesse 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. Il soggetto è rappresentato da un insieme di entità. Il nome target di questa autorizzazione specifica un nome della classe di credenziali e un insieme di entità. L'unico valore valido per le azioni di questa autorizzazione è "read". |
CredentialClass {PrincipalClass "PrincipalName"}* | NO |
javax.security.auth.kerberos.ServicePermission Proteggi i servizi Kerberos e le credenziali necessarie per accedervi. |
initiate | NO |
accetta | NO | |
javax.security.auth.kerberos.DelegationPermission Utilizzato per limitare l'utilizzo del modello di delega Kerberos, ovvero i ticket inoltrabili e proxy. Il nome di destinazione di questa autorizzazione specifica una coppia di service principal Kerberos. Il primo è l'entità servizio subordinata a cui viene affidato l'utilizzo del Ticket Granting Ticket (TGT). La seconda entità servizio indica il servizio di destinazione con cui l'entità servizio secondaria deve interagire per conto di KerberosPrincipal iniziale. |
initiate | NO |
accetta | NO | |
javax.security.auth.AuthPermission Attualmente 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 MBeanServer. Se è stato impostato un gestore della sicurezza utilizzando System.setSecurityManager(java.lang.SecurityManager), la maggior parte delle operazioni su MBeanServer richiede che le autorizzazioni del chiamante implichino un MBeanPermission appropriato per l'operazione. action className#member[objectName] Se hai un'autorizzazione MBean, consente le operazioni solo se tutti e quattro gli elementi corrispondono. |
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 un codebase. |
register | NO |
* | NO | |
javax.management.remote.SubjectDelegationPermission
|
NO |