Esta página se aplica à Apigee e à Apigee híbrida.
Confira a documentação da
Apigee Edge.
O que você precisa saber sobre as políticas de permissão do Java
Se você estiver desenvolvendo a política JavCallout, será necessário saber quais políticas de permissão estão em vigor na JVM da Apigee e como elas afetarão seu código. Por exemplo, seu código Java personalizado não tem acesso ilimitado ao sistema de arquivos. No entanto, no caso de acesso ao sistema de arquivos, é possível ler determinados arquivos, como arquivos de recursos de políticas. No entanto, a maioria dos outros acessos ao sistema de arquivos está bloqueada. Este tópico lista todos os tipos de permissão do JDK e os respectivos destinos ou ações. Para cada destino ou ação, especificamos a política de permissão e todas as exceções que você precisa saber.
Para saber mais sobre os tipos de permissão do JDK e o que cada uma permite, consulte Permissões no Java Development Kit (JDK).
Tipo de permissão | Nome do destino ou da ação | Permissã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 Uma java.io.FilePermission representa o acesso a um arquivo ou diretório. Uma FilePermission consiste em um nome de caminho e um conjunto de ações válidas para esse nome de caminho. |
read | SIM, mas há restrições. Consulte Restrições. |
write | NÃO | |
run | NÃO | |
delete | NÃO | |
readLink | SIM | |
java.io.SerializablePermission Uma SerializablePermission contém um nome (também conhecido como "nome de destino"), mas nenhuma lista de ações. Você tem ou não a permissão nomeada. |
enableSubclassImplementation | SIM |
enableSubstitution | NÃO | |
java.lang.management.ManagementPermission Métodos definidos na interface de gerenciamento da plataforma Java |
controle | NÃO |
monitor | NÃO | |
java.lang.reflect.ReflectPermission Para operações reflexivas. Uma ReflectPermission é uma permissão nomeada e não tem ações |
suppressAccessChecks | NÃO |
newProxyInPackage.{package name} | NÃO | |
java.lang.RuntimePermission Contém um nome (também conhecido como "nome de destino"), mas nenhuma lista de ações. Você tem ou não a permissão nomeada. |
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 | |
preferences | NÃO | |
usePolicy | NÃO | |
java.net.NetPermission Uma NetPermission contém um nome, mas nenhuma lista de ações. Você tem ou não a permissão nomeada. |
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 por meio de soquetes. Uma SocketPermission consiste em uma especificação de host e um conjunto de "ações" que especificam maneiras de se conectar ao host. host = (nomedohost | endereçoIP)[:intervalodeportas] intervalodeportas = númerodaporta | -númerodaporta | númerodaporta-[númerodaporta] As formas possíveis de se conectar ao host são accept connect listen resolve A ação "listen" é útil apenas quando usada com "localhost". A ação "resolve" (resolver pesquisas de serviço de nome de host/IP) está implícita quando qualquer uma das outras ações está presente. |
resolve | SIM |
conectar |
SIM, mas há restrições. Consulte Restrições. A Apigee restringe o acesso a endereços sitelocal, anylocal, loopback e linklocal, além de intervalos IPv4 particulares definidos na RFC1918. |
|
listen, accept |
NÃO | |
java.net.URLPermission Representa a permissão para acessar um recurso ou conjunto de recursos definidos por um determinado URL, e para um conjunto específico de métodos de solicitação e cabeçalhos de solicitação definidos pelo usuário. O nome da permissão é a string de URL. A string de ações é uma concatenação dos métodos e cabeçalhos de solicitação. O intervalo de nomes de métodos e cabeçalhos não é restrito por essa classe. |
SIM | |
LinkPermission A classe Permission para operações de criação de links. |
hard | NÃO |
symbolic | NÃO | |
java.security.SecurityPermission Uma SecurityPermission contém um nome (também chamado de "nome de destino"), mas nenhuma lista de ações. Você tem ou não a permissão nomeada. 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 de política, segurança, provedor, signatário e identidade. |
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 verificará o objeto java.util.logging.LoggingPermission quando o código em execução com um SecurityManager chamar um dos métodos de controle de geração de registros (como Logger.setLevel). |
controle | 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 da propriedade hierárquica. Além disso, um asterisco pode aparecer no final do nome, após um "." ou sozinho, para indicar uma correspondência de caractere curinga. Por exemplo: "java.*" ou "*" é válido, "*java" ou "a*b" não é válido. As ações a serem concedidas são transmitidas para o construtor em uma string que contém uma lista de zero ou mais palavras-chave separadas por vírgulas. |
read | SIM |
write | 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. |
play | NÃO |
record | NÃO | |
javax.security.auth.PrivateCredentialPermission Proteger o acesso a credenciais particulares pertencentes a um assunto específico. O assunto é representado por um conjunto de principais. O nome de destino dessa permissão especifica um nome de classe de credencial e um conjunto de principais. O único valor válido para as ações dessa permissão é "read". |
CredentialClass {PrincipalClass "PrincipalName"}* | NÃO |
javax.security.auth.kerberos.ServicePermission Proteger os serviços do Kerberos e as credenciais necessárias para acessar esses serviços. |
initiate | NÃO |
accept | NÃO | |
javax.security.auth.kerberos.DelegationPermission Usado para restringir o uso do modelo de delegação do Kerberos, ou seja, tíquetes que podem ser encaminhados e usados como proxy. O nome de destino desta permissão especifica um par de principais de serviço do Kerberos. O primeiro é o principal de serviço subordinado de confiança para usar o tíquete de concessão de tíquete (TGT, na sigla em inglês). O segundo principal de serviço designa o serviço de destino com o qual o principal de serviço subordinado interage em nome do KerberosPrincipal de inicialização. |
initiate | NÃO |
accept | 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 Permissão que controla o acesso a operações do MBeanServer. Se um gerenciador de segurança foi definido com System.setSecurityManager(java.lang.SecurityManager), a maioria das operações no MBeanServer exige que as permissões do chamador impliquem no MBeanPermission apropriado para a operação. ação className#member[objectName] Se você tiver uma MBeanPermission, ela permitirá operações somente 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 | |
instantiate | 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 Essa permissão representa a "confiança" em um signatário ou base do código. |
register | NÃO |
* | NÃO | |
javax.management.remote.SubjectDelegationPermission
|
NÃO |