<ph type="x-smartling-placeholder"></ph>
Vous consultez la documentation Apigee Edge.
Accédez à la page
Documentation sur Apigee X. En savoir plus
Ce que vous devez savoir sur les stratégies d'autorisation Java
Si vous développez des stratégies d'appel Java, vous devez savoir quelles règles d'autorisation figurent dans la JVM Edge et leur impact sur votre code. Par exemple, votre code Java personnalisé ne dispose pas d'un accès illimité au système de fichiers. Toutefois, dans le cas d'accès au système de fichiers, vous pouvez lire certains fichiers, tels que les fichiers de ressources de stratégies. Cependant, la plupart des autres accès au système de fichiers sont bloqués. Cette rubrique répertorie tous les types d'autorisations JDK, ainsi que leurs cibles ou actions respectives. Pour chaque cible ou action, nous indiquons la stratégie d'autorisation et les exceptions que vous devez connaître.
Pour en savoir plus sur les types d'autorisations JDK et les autorisations associées aux différentes autorisations, consultez la section Autorisations dans le kit de développement Java (JDK).
Activer les restrictions de sécurité
Dans Edge pour Private Cloud, les restrictions de sécurité sont désactivées par défaut. Cela signifie que votre code d'accroche Java personnalisé peut accéder à toutes les ressources sans restriction. Pour activer restrictions de sécurité dans votre installation Edge pour Private Cloud, suivez la procédure ci-dessous:
- Sur le premier nœud du processeur de messages, ouvrez le fichier
$APIGEE_ROOT/customer/application/message-processor.properties
dans un éditeur. Si le fichier n'existe pas, créez-le. - Ajoutez la ligne suivante au fichier:
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
- Redémarrez le processeur de messages:
apigee-service message-processor restart
- Répétez ces étapes sur tous les processeurs de messages restants.
Type d'autorisation | Nom de la cible ou de l'action | Autorisation accordée |
java.awt.AWTPermission | ||
accessClipboard | NON | |
accessEventQueue | NON | |
accessSystemTray | NON | |
createRobot | NON | |
fullScreenExclusive | NON | |
listenToAllAWTEvents | NON | |
readDisplayPixels | NON | |
replaceKeyboardFocusManager | NON | |
setAppletStub | NON | |
setWindowsAlwaysOnTop | NON | |
showWindowWithoutWarningBanner | NON | |
toolkitModality | NON | |
watchMousePointer | NON | |
java.io.FilePermission Une autorisation java.io.FilePermission représente l'accès à un fichier ou à un répertoire. Une autorisation FilePermission comprend un chemin d'accès et un ensemble d'actions valides pour ce chemin. |
read | OUI, mais des restrictions s'appliquent. Consultez la section Restrictions. |
write | NON | |
execute | NON | |
delete | NON | |
readLink | OUI | |
java.io.SerializablePermission Une autorisation SerializablePermission contient un nom (également appelé "nom de la cible"), mais pas de liste d'actions. Soit vous disposez de l'autorisation nommée, soit d'aucune autorisation. |
enableSubclassImplementation | OUI |
enableSubstitution | NON | |
java.lang.management.ManagementPermission Méthodes définies dans l'interface de gestion de la plate-forme Java |
contrôler | NON |
monitor | NON | |
java.lang.reflect.ReflectPermission Pour les opérations réflexives. Une autorisation ReflectPermission est une autorisation nommée et ne comporte aucune action. |
suppressAccessChecks | NON |
newProxyInPackage.{package name} | NON | |
java.lang.RuntimePermission contient un nom (également appelé "nom de la cible"), mais pas de liste d'actions. Soit vous disposez de l'autorisation nommée, soit d'aucune autorisation. |
createClassLoader | NON |
getClassLoader | OUI | |
setContextClassLoader | OUI | |
enableContextClassLoaderOverride | OUI | |
closeClassLoader | NON | |
setSecurityManager | NON | |
createSecurityManager | NON | |
getenv.{variable name} | NON | |
exitVM.{exit status} | NON | |
shutdownHooks | NON | |
setFactory | NON | |
setIO | NON | |
modifyThread | OUI | |
stopThread | OUI | |
modifyThreadGroup | OUI | |
getProtectionDomain | OUI | |
getFileSystemAttributes | NON | |
readFileDescriptor | OUI | |
writeFileDescriptor | NON | |
loadLibrary.{library name} | NON | |
accessClassInPackage. {package name} | OUI | |
defineClassInPackage. {package name} | NON | |
accessDeclaredMembers | NON | |
queuePrintJob | NON | |
getStackTrace | NON | |
setDefaultUncaughtExceptionHandler | NON | |
preferences | NON | |
usePolicy | NON | |
java.net.NetPermission Une autorisation NetPermission contient un nom, mais pas de liste d'actions. Soit vous disposez de l'autorisation nommée, soit d'aucune autorisation. |
setDefaultAuthenticator | NON |
requestPasswordAuthentication | NON | |
specifyStreamHandler | OUI | |
setProxySelector | NON | |
getProxySelector | NON | |
setCookieHandler | NON | |
getCookieHandler | NON | |
setResponseCache | NON | |
getResponseCache | NON | |
getNetworkInformation | NON | |
java.net.SocketPermission Représente l'accès à un réseau via des sockets. Une autorisation SocketPermission se compose d'une spécification d'hôte et d'un ensemble d'"actions" spécifiant des moyens de se connecter à cet hôte. host = (hostname | IPaddress)[:portrange] portrange = portnumber | -portnumber | portnumber-[portnumber] Les méthodes possibles de connexion à l'hôte sont les suivantes : accept connect listen resolve L'action "listen" n'a du sens qu'avec "localhost". L'action "resolve" (résoudre les recherches du service de nom d'hôte/adresse IP) est implicite lorsque toute autre action est présente. |
resolve | OUI |
associer |
OUI, mais des restrictions s'appliquent. Consultez la section Restrictions. Apigee restreint l'accès aux adresses sitelocal, anylocal, loopback et linklocal. |
|
listen, accept |
NON | |
java.net.URLPermission Représente l'autorisation d'accéder à une ressource ou à un ensemble de ressources défini par une URL donnée, et pour un ensemble donné d'en-têtes de requête et de méthodes de requête définies par l'utilisateur. Le nom de l'autorisation correspond à la chaîne d'URL. La chaîne d'actions est une concaténation des méthodes et des en-têtes de requête. La plage des noms de méthodes et d'en-tête n'est pas limitée par cette classe. |
OUI | |
LinkPermission Classe d'autorisation pour les opérations de création de liaison. |
hard | NON |
symbolic | NON | |
java.security.SecurityPermission Un objet SecurityPermission contient un nom (également appelé "nom de la cible"), mais pas de liste d'actions. Soit vous avez l'autorisation nommée ou pas. Le nom de la cible correspond au nom d'un paramètre de configuration de sécurité (voir ci-dessous). Actuellement, l'objet SecurityPermission est utilisé pour protéger l'accès aux objets Policy, Security, Provider, Signer et Identity. |
createAccessControlContext | NON |
getDomainCombiner | NON | |
getPolicy | NON | |
setPolicy | NON | |
createPolicy.{policy type} | NON | |
getProperty.{key} | NON | |
setProperty.{key} | NON | |
insertProvider | NON | |
removeProvider.{provider name} | NON | |
clearProviderProperties.{provider name} | NON | |
putProviderProperty.{provider name} | NON | |
removeProviderProperty.{provider name} | NON | |
SQLPermission | setLog | NON |
callAbort | NON | |
setSyncFactory | NON | |
setNetworkTimeout | NON | |
deregisterDriver | NON | |
java.util.logging.LoggingPermission Un objet SecurityManager vérifie l'objet java.util.logging.LoggingPermission lorsque le code exécuté avec un objet SecurityManager appelle l'une des méthodes de contrôle de journalisation. (par exemple, Logger.setLevel). |
contrôler | NON |
java.util.PropertyPermission Le nom correspond au nom de la propriété ("java.home", "os.name", etc.). La convention d'attribution de noms suit la convention d'attribution de noms de propriété hiérarchique. En outre, un astérisque peut apparaître à la fin du nom, après un "." ou par lui-même, pour indiquer une correspondance avec un caractère générique. Par exemple : "java.*" ou "*" est valide, "*java" ou "a*b" n'est pas valide. Les actions à accorder sont transmises au constructeur dans une chaîne contenant une liste de zéro ou plusieurs mots clés séparés par une virgule. |
read | OUI |
write | NON | |
javax.xml.ws.WebServicePermission
|
publishEndpoint | NON |
javax.xml.bind.JAXBPermission | setDatatypeConverter | NON |
javax.sound.sampled.AudioPermission Droits d'accès aux ressources du système audio. |
play | NON |
record | NON | |
javax.security.auth.PrivateCredentialPermission Protégez l'accès aux identifiants privés appartenant à un objet Sujet particulier. Le Sujet est représenté par un ensemble de comptes principaux. Le nom cible de cette autorisation spécifie un nom de classe d'identification et un ensemble de comptes principaux. La seule valeur valide pour les actions de cette autorisation est "lecture". |
CredentialClass {PrincipalClass "PrincipalName"}* | NON |
javax.security.auth.kerberos.ServicePermission Protégez les services Kerberos et les identifiants nécessaires pour y accéder. |
initiate | NON |
accept | NON | |
javax.security.auth.kerberos.DelegationPermission Utilisé pour restreindre l'utilisation du modèle de délégation Kerberos. par exemple les tickets transférables et transitables. Le nom cible de cette autorisation spécifie deux comptes principaux de service kerberos. Le premier est le compte principal du service subordonné autorisé à utiliser le ticket d'octroi de ticket (TGT). Le second compte principal de service désigne le service cible avec lequel le compte principal de service subordonné doit interagir au nom du compte KerberosPrincipal émetteur. |
initiate | NON |
accept | NON | |
javax.security.auth.AuthPermission Actuellement, l'objet AuthPermission est utilisé pour protéger l'accès aux objets Subject, SubjectDomainCombiner, LoginContext et Configuration. |
doAs | NON |
doAsPrivileged | NON | |
getSubject | NON | |
getSubjectFromDomainCombiner | NON | |
setReadOnly | NON | |
modifyPrincipals | NON | |
modifyPublicCredentials | NON | |
modifyPrivateCredentials | NON | |
refreshCredential | NON | |
destroyCredential | NON | |
createLoginContext.{name} | NON | |
getLoginConfiguration | NON | |
setLoginConfiguration | NON | |
createLoginConfiguration.{configuration type} | NON | |
refreshLoginConfiguration | NON | |
javax.net.ssl.SSLPermission |
setHostnameVerifier | NON |
getSSLSessionContext | NON | |
setDefaultSSLContext | NON | |
javax.management.MBeanPermission Autorisation de contrôler l'accès aux opérations MoleanServer. Si un gestionnaire de sécurité a été défini à l'aide de System.setSecurityManager(java.lang.SecurityManager), la plupart des opérations sur MBeanServer exigent que les autorisations de l'appelant impliquent un objet MBeanPermission appropriée pour l'opération. action className#member[objectName] Si vous disposez d'une autorisation MBeanPermission, elle n'autorise les opérations que si les quatre éléments correspondent. |
addNotificationListener | NON |
getAttribute | NON | |
getClassLoader | NON | |
getClassLoaderFor | NON | |
getClassLoaderRepository | NON | |
getDomains | NON | |
getMBeanInfo | NON | |
getObjectInstance | NON | |
instancier | NON | |
appeler | NON | |
isInstanceOf | NON | |
queryMBeans | NON | |
queryNames | NON | |
registerMBean | NON | |
removeNotificationListener | NON | |
setAttribute | NON | |
unregisterMBean | NON | |
javax.management.MBeanServerPermission |
createMBeanServer | NON |
findMBeanServer | NON | |
newMBeanServer | NON | |
releaseMBeanServer | NON | |
javax.management.MBeanTrustPermission Cette autorisation représente la "confiance" d'un signataire ou d'un codebase. |
register | NON |
* | NON | |
javax.management.remote.SubjectDelegationPermission
|
NON |