Referência de autorizações Java

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