Questa pagina si applica ad Apigee e Apigee hybrid.
Visualizza la documentazione di Apigee Edge.
Cosa devi sapere sui criteri di autorizzazione Java
Se stai sviluppando criteri di callout Java, devi sapere quali criteri di autorizzazione sono in vigore nella JVM Apigee e come incideranno sul codice. Ad esempio, il tuo codice Java personalizzato non ha accesso illimitato al file system. Tuttavia, nel caso di 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 viene bloccato. In questo argomento sono elencati tutti i tipi di autorizzazione JDK e i rispettivi 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 ciò che ogni autorizzazione consente, consulta Autorizzazioni nel Java Development Kit (JDK).
Tipo di autorizzazione | Target o nome 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 java.io.FilePermission rappresenta l'accesso a un file o a una directory. Un FilePermission è costituito da un nome di percorso e da un insieme di azioni valide per quel nome. |
read | SÌ, ma si applicano limitazioni. Consulta le Restrizioni. |
write | NO | |
execute | NO | |
delete | NO | |
readLink | SÌ | |
java.io.SerializablePermission Un SerializablePermission contiene un nome (chiamato anche "nome destinazione"), ma nessun elenco di azioni. Se disponi dell'autorizzazione denominata o no. |
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. Un'autorizzazione ReflectPermission è un'autorizzazione con nome e non ha azioni |
suppressAccessChecks | NO |
newProxyInPackage.{nome pacchetto} | NO | |
java.lang.RuntimePermission Contiene un nome (chiamato anche "nome target"), ma nessun elenco di azioni. Puoi avere l'autorizzazione denominata o no. |
createClassLoader | NO |
getClassLoader | SÌ | |
setContextClassLoader | SÌ | |
enableContextClassLoaderOverride | SÌ | |
closeClassLoader | NO | |
setSecurityManager | NO | |
createSecurityManager | NO | |
getenv.{nome variabile} | NO | |
uscitaVM.{exit status} | NO | |
shutdownHooks | NO | |
setFactory | NO | |
setIO | NO | |
modifyThread | SÌ | |
stopThread | SÌ | |
modifyThreadGroup | SÌ | |
getProtectionDomain | SÌ | |
getFileSystemAttributes | NO | |
readFileDescriptor | SÌ | |
writeFileDescriptor | NO | |
loadLibrary.{nome libreria} | NO | |
accessClassInPackage {nome pacchetto} | SÌ | |
defineClassInPackage. {nome pacchetto} | NO | |
accessDeclaredMembers | NO | |
queuePrintJob | NO | |
getStackTrace | NO | |
setDefaultUncaughtExceptionHandler | NO | |
preferenze | NO | |
usePolicy | NO | |
java.net.NetPermission Un NetPermission contiene un nome, ma non un elenco di azioni. Puoi avere o meno l'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 SocketPermission è costituito da una specifica host e da un insieme di "azioni" che specificano i modi per connettersi all'host. host = (nomehost | indirizzo IP)[:portrange] portrange = numero porta | -numeroporta | numeroporta-[numeroporta] I modi possibili per connettersi all'host sono accetta connetti ascolta risolvi L'azione "listen" è significativa solo se utilizzata con "localhost". L'azione "resolve" (risoluzione delle ricerche del servizio dei nomi IP/host) è implicita quando è presente una qualsiasi delle altre azioni. |
resolve | SÌ |
connessione |
SÌ, ma si applicano limitazioni. Consulta le Restrizioni. Apigee limita l'accesso agli indirizzi sitelocal, anylocal, loopback e linklocal. |
|
ascolta, accetta |
NO | |
java.net.URLPermission Rappresenta l'autorizzazione ad accedere 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 delle richieste impostabili dall'utente. Il nome dell'autorizzazione è la stringa dell'URL. La stringa delle azioni è una concatenazione di metodi e intestazioni di richiesta. 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 Un SecurityPermission contiene un nome (chiamato anche "nome destinazione"), ma nessun elenco di azioni. Se disponi dell'autorizzazione denominata o no. Il nome della destinazione è il nome di un parametro di configurazione di 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.{nome provider} | NO | |
clearProviderProperties.{nome provider} | NO | |
putProviderProperty.{nome provider} | NO | |
removeProviderProperty.{nome provider} | 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 di logging (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 quella gerarchica delle proprietà. Inoltre, può essere visualizzato un asterisco alla fine del nome, dopo ".", 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 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. |
giocare | 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 entità. Il nome target di questa autorizzazione specifica un nome di classe delle 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 accedere a questi servizi. |
initiate | NO |
accetta | NO | |
javax.security.auth.kerberos.DelegationPermission Utilizzata per limitare l'utilizzo del modello di delega Kerberos, ad esempio ticket con inoltro e proxy. Il nome target di questa autorizzazione specifica una coppia di entità servizio kerberos. Il primo è il fornitore di servizi subordinato a cui è incaricato l'utilizzo del Ticket Granting Ticket (TGT). La seconda entità del servizio indica il servizio di destinazione con cui l'entità del servizio subordinato interagisce per conto del KerberosPrincipal che avvia. |
initiate | NO |
accetta | NO | |
javax.security.auth.AuthPermission Attualmente l'oggetto AuthPermission viene utilizzato per proteggere l'accesso agli oggetti Subject, SubjectDomainJoinr, 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 di sicurezza utilizzando System.setSecurityManager(java.lang.SecurityManager), la maggior parte delle operazioni su MBeanServer richiede che le autorizzazioni del chiamante suggeriscano un'autorizzazione MBeanPermission appropriata per l'operazione. action className#member[objectName] Se disponi di un'autorizzazione MBeanPermission, questa funzionalità 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 l'"attendibilità" in un firmatario o codebase. |
register | NO |
* | NO | |
javax.management.remote.SubjectDelegationPermission
|
NO |