Esta página aplica-se ao Apigee e ao Apigee Hybrid.
Veja a documentação do
Apigee Edge.
O que precisa de saber sobre as políticas de autorização do Java
Se estiver a desenvolver a política JavaCallout, tem de saber que políticas de autorização estão em vigor na JVM do Apigee e como vão afetar o seu código. Por exemplo, o seu código Java personalizado não tem acesso ilimitado ao sistema de ficheiros. No entanto, no caso do acesso ao sistema de ficheiros, pode ler determinados ficheiros, como ficheiros de recursos de políticas. No entanto, a maioria dos outros acessos ao sistema de ficheiros é bloqueada. Este tópico lista todos os tipos de autorizações da JDK e os respetivos destinos ou ações. Para cada destino ou ação, especificamos a política de autorizações e quaisquer exceções que precise de conhecer.
Para saber mais sobre os tipos de autorizações do JDK e o que cada autorização permite, consulte o artigo Autorizações no Java Development Kit (JDK).
Tipo de autorização | Nome do alvo ou da ação | Autorização concedida |
java.awt.AWTPermission | ||
accessClipboard | NÃO | |
accessEventQueue | NÃO | |
accessSystemTray | NÃO | |
createRobot | NÃO | |
fullScreenExclusive | NÃO | |
listenToAllAWTEvents | NÃO | |
readDisplayPixels | NÃO | |
replaceKeyboardFocusManager | NÃO | |
setAppletStub | NÃO | |
setWindowsAlwaysOnTop | NÃO | |
showWindowWithoutWarningBanner | NÃO | |
toolkitModality | NÃO | |
watchMousePointer | NÃO | |
java.io.FilePermission Um java.io.FilePermission representa o acesso a um ficheiro ou a um diretório. Uma FilePermission consiste num caminho e num conjunto de ações válidas para esse caminho. |
ler | SIM, mas aplicam-se restrições. Consulte as restrições. |
escrever | NÃO | |
executar | NÃO | |
eliminar | NÃO | |
readLink | SIM | |
java.io.SerializablePermission Um SerializablePermission contém um nome (também denominado "nome de destino"), mas não uma lista de ações. Tem a autorização com o nome ou não. |
enableSubclassImplementation | SIM |
enableSubstitution | NÃO | |
java.lang.management.ManagementPermission Métodos definidos na interface de gestão para a plataforma Java |
controlo | NÃO |
monitorizar | NÃO | |
java.lang.reflect.ReflectPermission Para operações reflexivas. Um ReflectPermission é uma autorização com nome e não tem ações |
suppressAccessChecks | NÃO |
newProxyInPackage.{package name} | NÃO | |
java.lang.RuntimePermission Contém um nome (também denominado "nome de destino"), mas não uma lista de ações. Tem a autorização com o nome ou não. |
createClassLoader | NÃO |
getClassLoader | SIM | |
setContextClassLoader | SIM | |
enableContextClassLoaderOverride | SIM | |
closeClassLoader | NÃO | |
setSecurityManager | NÃO | |
createSecurityManager | NÃO | |
getenv.{variable name} | NÃO | |
exitVM.{exit status} | NÃO | |
shutdownHooks | NÃO | |
setFactory | NÃO | |
setIO | NÃO | |
modifyThread | SIM | |
stopThread | SIM | |
modifyThreadGroup | SIM | |
getProtectionDomain | SIM | |
getFileSystemAttributes | NÃO | |
readFileDescriptor | SIM | |
writeFileDescriptor | NÃO | |
loadLibrary.{library name} | NÃO | |
accessClassInPackage. {package name} | SIM | |
defineClassInPackage. {package name} | NÃO | |
accessDeclaredMembers | NÃO | |
queuePrintJob | NÃO | |
getStackTrace | NÃO | |
setDefaultUncaughtExceptionHandler | NÃO | |
de notificação | NÃO | |
usePolicy | NÃO | |
java.net.NetPermission Um NetPermission contém um nome, mas não uma lista de ações. Tem a autorização com o nome ou não a tem. |
setDefaultAuthenticator | NÃO |
requestPasswordAuthentication | NÃO | |
specifyStreamHandler | SIM | |
setProxySelector | NÃO | |
getProxySelector | NÃO | |
setCookieHandler | NÃO | |
getCookieHandler | NÃO | |
setResponseCache | NÃO | |
getResponseCache | NÃO | |
getNetworkInformation | NÃO | |
java.net.SocketPermission Representa o acesso a uma rede através de sockets. Uma SocketPermission consiste numa especificação de anfitrião e num conjunto de "ações" que especificam formas de estabelecer ligação a esse anfitrião. host = (hostname | IPaddress)[:portrange] portrange = portnumber | -portnumber | portnumber-[portnumber] As formas possíveis de estabelecer ligação ao anfitrião são accept connect listen resolve A ação "listen" só é significativa quando usada com "localhost". A ação "resolve" (resolver consultas de serviço de nomes de anfitrião/IP) está implícita quando qualquer uma das outras ações está presente. |
resolver | SIM |
ligar |
SIM, mas aplicam-se restrições. Consulte as restrições. O Apigee restringe o acesso a endereços sitelocal, anylocal, loopback e linklocal, bem como a intervalos IPv4 privados definidos na RFC1918. |
|
ouvir, aceitar |
NÃO | |
java.net.URLPermission Representa a autorização para aceder a um recurso ou a um conjunto de recursos definidos por um determinado URL e para um determinado conjunto de métodos de pedido e cabeçalhos de pedido configuráveis pelo utilizador. O nome da autorização é a string do URL. A string de ações é uma concatenação dos métodos de pedido e dos cabeçalhos. O intervalo de nomes de métodos e cabeçalhos não é restrito por esta classe. |
SIM | |
LinkPermission A classe Permission para operações de criação de associações. |
difícil | NÃO |
simbólico | NÃO | |
java.security.SecurityPermission Um SecurityPermission contém um nome (também denominado "nome de destino"), mas não uma lista de ações. Tem a autorização com o nome ou não a tem. O nome do destino é o nome de um parâmetro de configuração de segurança (veja abaixo). Atualmente, o objeto SecurityPermission é usado para proteger o acesso aos objetos Policy, Security, Provider, Signer e Identity. |
createAccessControlContext | NÃO |
getDomainCombiner | NÃO | |
getPolicy | NÃO | |
setPolicy | NÃO | |
createPolicy.{policy type} | NÃO | |
getProperty.{key} | NÃO | |
setProperty.{key} | NÃO | |
insertProvider | NÃO | |
removeProvider.{provider name} | NÃO | |
clearProviderProperties.{provider name} | NÃO | |
putProviderProperty.{provider name} | NÃO | |
removeProviderProperty.{provider name} | NÃO | |
SQLPermission | setLog | NÃO |
callAbort | NÃO | |
setSyncFactory | NÃO | |
setNetworkTimeout | NÃO | |
deregisterDriver | NÃO | |
java.util.logging.LoggingPermission Um SecurityManager verifica o objeto java.util.logging.LoggingPermission quando o código executado com um SecurityManager chama um dos métodos de controlo de registo (como Logger.setLevel). |
controlo | NÃO |
java.util.PropertyPermission O nome é o nome da propriedade ("java.home", "os.name", etc.). A convenção de nomenclatura segue a convenção de nomenclatura de propriedades hierárquica. Além disso, pode aparecer um asterisco no final do nome, após um "." ou sozinho, para indicar uma correspondência com carateres universais. Por exemplo: "java.*" ou "*" é válido, "*java" ou "a*b" não é válido. As ações a conceder são transmitidas ao construtor numa string que contém uma lista de zero ou mais palavras-chave separadas por vírgulas. |
ler | SIM |
escrever | NÃO | |
javax.xml.ws.WebServicePermission
|
publishEndpoint | NÃO |
javax.xml.bind.JAXBPermission | setDatatypeConverter | NÃO |
javax.sound.sampled.AudioPermission Direitos de acesso aos recursos do sistema de áudio. |
jogar | NÃO |
gravar | NÃO | |
javax.security.auth.PrivateCredentialPermission Proteja o acesso a credenciais privadas pertencentes a um determinado assunto. O sujeito é representado por um conjunto de principais. O nome do destino desta autorização especifica um nome da classe de credenciais e um conjunto de diretores. O único valor válido para as ações desta autorização é "read". |
CredentialClass {PrincipalClass "PrincipalName"}* | NÃO |
javax.security.auth.kerberos.ServicePermission Proteger os serviços Kerberos e as credenciais necessárias para aceder a esses serviços. |
iniciar | NÃO |
aceitar | NÃO | |
javax.security.auth.kerberos.DelegationPermission Usado para restringir a utilização do modelo de delegação do Kerberos; ou seja, permissões encaminháveis e com proxy. O nome de destino desta autorização especifica um par de principais do serviço Kerberos. O primeiro é o principal de serviço subordinado ao qual é confiada a utilização do pedido para obter pedidos (TGT). O segundo nome principal do serviço designa o serviço de destino com o qual o nome principal do serviço subordinado deve interagir em nome do KerberosPrincipal iniciador. |
iniciar | NÃO |
aceitar | NÃO | |
javax.security.auth.AuthPermission Atualmente, o objeto AuthPermission é usado para proteger o acesso aos objetos Subject, SubjectDomainCombiner, LoginContext e Configuration. |
doAs | NÃO |
doAsPrivileged | NÃO | |
getSubject | NÃO | |
getSubjectFromDomainCombiner | NÃO | |
setReadOnly | NÃO | |
modifyPrincipals | NÃO | |
modifyPublicCredentials | NÃO | |
modifyPrivateCredentials | NÃO | |
refreshCredential | NÃO | |
destroyCredential | NÃO | |
createLoginContext.{name} | NÃO | |
getLoginConfiguration | NÃO | |
setLoginConfiguration | NÃO | |
createLoginConfiguration.{configuration type} | NÃO | |
refreshLoginConfiguration | NÃO | |
javax.net.ssl.SSLPermission |
setHostnameVerifier | NÃO |
getSSLSessionContext | NÃO | |
setDefaultSSLContext | NÃO | |
javax.management.MBeanPermission Autorização que controla o acesso às operações MBeanServer. Se um gestor de segurança tiver sido definido através de System.setSecurityManager(java.lang.SecurityManager), a maioria das operações no MBeanServer requer que as autorizações do autor da chamada impliquem uma MBeanPermission adequada para a operação. action className#member[objectName] Se tiver uma MBeanPermission, permite operações apenas se todos os quatro itens corresponderem. |
addNotificationListener | NÃO |
getAttribute | NÃO | |
getClassLoader | NÃO | |
getClassLoaderFor | NÃO | |
getClassLoaderRepository | NÃO | |
getDomains | NÃO | |
getMBeanInfo | NÃO | |
getObjectInstance | NÃO | |
instanciar | NÃO | |
invocar | NÃO | |
isInstanceOf | NÃO | |
queryMBeans | NÃO | |
queryNames | NÃO | |
registerMBean | NÃO | |
removeNotificationListener | NÃO | |
setAttribute | NÃO | |
unregisterMBean | NÃO | |
javax.management.MBeanServerPermission |
createMBeanServer | NÃO |
findMBeanServer | NÃO | |
newMBeanServer | NÃO | |
releaseMBeanServer | NÃO | |
javax.management.MBeanTrustPermission Esta autorização representa a "confiança" num signatário ou numa base de código. |
registar | NÃO |
* | NÃO | |
javax.management.remote.SubjectDelegationPermission
|
NÃO |