Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione
Documentazione di Apigee X. Informazioni
Cosa devi sapere sull'autorizzazione Java norme
Se stai sviluppando criteri per i callout Java, devi sapere quali criteri di autorizzazione sono sulla JVM perimetrale e il modo in cui influiranno sul 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. Ma la maggior parte degli altri accessi al file system bloccato. Questo argomento elenca tutti i tipi di autorizzazione JDK e i relativi target o azioni. Per ogni obiettivo o azione, specifichiamo le norme di autorizzazione ed eventuali eccezioni necessarie che conosci.
Per ulteriori informazioni sui tipi di autorizzazione JDK e su ciò che ciascuna autorizzazione consente, consulta Autorizzazioni in Java Development Kit (JDK).
Attivazione delle limitazioni di sicurezza
In Edge per il cloud privato, le limitazioni di sicurezza sono disabilitate per impostazione predefinita. Ciò significa che il codice callout Java personalizzato può accedere a tutte le risorse senza limitazioni. Per attivare limitazioni di sicurezza nell'installazione di Edge per il cloud privato, segui la procedura seguente:
- Sul primo nodo del processore di messaggi, apri il file
$APIGEE_ROOT/customer/application/message-processor.properties
in un editor. Se il file non esiste, crealo. - Aggiungi la seguente riga al file:
conf_security-policy_enable.security.manager=true
- Save the file and ensure the file is owned by the
apigee
user:chown apigee:apigee $APIGEE_ROOT/customer/application/message-processor.properties
- Riavvia il processore di messaggi:
apigee-service message-processor restart
- Ripeti questi passaggi su tutti gli altri processori di messaggi.
Tipo di autorizzazione | Nome del target o dell'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'istruzione java.io.FilePermission rappresenta l'accesso a un file o a una directory. Un'autorizzazione File è composto da un nome di percorso e da un insieme di azioni valide per quel nome di percorso. |
leggere | SÌ, ma si applicano limitazioni. Vedi Restrizioni. |
write | NO | |
execute | NO | |
elimina | NO | |
readLink | SÌ | |
java.io.SerializablePermission Un'autorizzazione SerializablePermission contiene un nome (chiamato anche "nome di destinazione"), ma non elenco delle azioni; 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 operazioni riflessive. Una ReflectPermission è un'autorizzazione con nome e non ha azioni |
suppressAccessChecks | NO |
newProxyInPackage.{package name} | NO | |
java.lang.RuntimePermission Contiene un nome (chiamato anche "nome destinazione"), ma non un elenco di azioni. o di avere l'autorizzazione denominata o no. |
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. {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; disponi dell'autorizzazione denominata o meno. |
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. Una SocketPermission è composta da un host e un insieme di "azioni" che specifica modi per connettersi a quell'host. host = (nome host | indirizzo IP)[:portrange] portrange = numero porta | -numero porta | numeroporta-[numero porta] I modi possibili per connettersi all'host sono accetta connetti ascolta risolvere La funzionalità "ascolto" l'azione è significativa solo se utilizzata con "localhost". La risoluzione (risolvi l'azione è implicita quando una qualsiasi delle altre azioni viene presenti. |
risolvere | SÌ |
connessione |
SÌ, ma si applicano limitazioni. Vedi Restrizioni. Apigee limita l'accesso agli indirizzi sitelocal, anylocal, loopback e linklocal. |
|
ascolta, accetta |
NO | |
java.net.URLPermission Rappresenta l'autorizzazione per accedere 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 delle richieste impostabili dall'utente. Il nome del autorizzazione è la stringa dell'URL. La stringa actions è una concatenazione dei metodi di richiesta e intestazioni. L'intervallo di nomi di metodi e intestazioni non è limitato da questa classe. |
SÌ | |
LinkPermission La classe di autorizzazione per le operazioni di creazione dei link. |
difficile | NO |
simbolico | NO | |
java.security.SecurityPermission Un'Autorizzazione Security contiene un nome (chiamato anche "nome destinazione") ma nessuna azione elenco; disponi dell'autorizzazione denominata o no. Il nome della destinazione è il nome di un parametro di configurazione di sicurezza (vedi di seguito). Attuale l'oggetto SecurityPermission viene utilizzato per proteggere l'accesso ai criteri Firmatario e Identità. |
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 viene generato il codice in esecuzione con SecurityManager chiama uno dei metodi di controllo della registrazione (come 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. Potrebbe essere visualizzato anche un asterisco la parte finale del nome, dopo il carattere ".", o da sola, per indicare una corrispondenza con caratteri jolly. Ad esempio: "java.*" o "*" è valido, "*java" o "a*b" non è valido. Le azioni da concedere vengono passate al costruttore in una stringa contenente un elenco zero o più parole chiave separate da virgole. |
leggere | 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 Proteggere l'accesso alle credenziali private appartenenti a un determinato soggetto. L'oggetto è rappresentati da un insieme di entità. Il nome destinazione di questa autorizzazione specifica Nome della classe di credenziali e un insieme di entità. L'unico valore valido per questa autorizzazione azioni è "lettura". |
CredentialClass {PrincipalClass "PrincipalName"}* | NO |
javax.security.auth.kerberos.ServicePermission Proteggere i servizi Kerberos e le credenziali necessarie per accedervi. |
avvia | NO |
accetta | NO | |
javax.security.auth.kerberos.DelegationPermission Utilizzato per limitare l'utilizzo del modello di delega Kerberos. ovvero inoltrabile e proxable ticket di assistenza. Il nome di destinazione di questa autorizzazione specifica una coppia di entità di servizio Kerberos. La primo è il principio del servizio subordinato a cui viene affidato l'utilizzo del servizio Ticket (TGT). La seconda entità di servizio designa il servizio di destinazione come subordinato del servizio è interagire per conto del KerberosPrincipal che ha avviato. |
avvia | NO |
accetta | NO | |
javax.security.auth.AuthPermission Attualmente l'oggetto AuthPermission viene utilizzato per proteggere l'accesso all'oggetto, Oggetti 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 di sicurezza utilizzando System.setSecurityManager(java.lang.SecurityManager), la maggior parte delle operazioni MBeanServer richiede che le autorizzazioni del chiamante implichino un'autorizzazione MBeanPermission per l'operazione. azione className#member[objectName] Se disponi di un'autorizzazione MBeanPermission, sarà possibile eseguire 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 | |
creare un'istanza | 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 "attendibilità" in un firmatario o in un codebase. |
register | NO |
* | NO | |
javax.management.remote.SubjectDelegationPermission
|
NO |