Referência de permissão do Java

Você está vendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
informações

O que você precisa saber sobre as políticas de permissão do Java

Se você estiver desenvolvendo políticas de chamadas em Java, precisará saber quais políticas de permissão estão em vigor na JVM do Edge e como elas vão afetar 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).

Como ativar restrições de segurança

No Edge para nuvem privada, as restrições de segurança estão desativadas por padrão. Isso significa que seu código de chamada Java personalizado pode acessar todos os recursos sem restrições. Para ativar restrições de segurança no Edge para instalação de nuvem privada, siga o procedimento abaixo:

  1. No primeiro nó do processador de mensagens, abra o arquivo $APIGEE_ROOT/customer/application/message-processor.properties em um editor. Se o arquivo não existir, crie-o.
  2. Adicione a linha abaixo ao arquivo:
    conf_security-policy_enable.security.manager=true
  3. Save the file and ensure the file is owned by the apigee user:
    chown apigee:apigee $APIGEE_ROOT/customer/application/message-processor.properties
  4. Reinicie o processador de mensagens:
    apigee-service message-processor restart
  5. Repita essas etapas em todos os demais processadores de mensagens.
Tipo de permissão Nome do destino ou da ação Permissão concedida
java.awt.AWTPermission
accessClipboard Noruega
accessEventQueue Noruega
accessSystemTray Noruega
createRobot NÃO
fullScreenExclusive NÃO
listenToAllAWTEvents Noruega
readDisplayPixels NÃO
replaceKeyboardFocusManager Noruega
setAppletStub Noruega
setWindowsAlwaysOnTop Noruega
showWindowWithoutWarningBanner NÃO
toolkitModality Noruega
watchMousePointer Noruega
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 Noruega
execute Noruega
excluir Noruega
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 Noruega
java.lang.management.ManagementPermission

Métodos definidos na interface de gerenciamento da plataforma Java
controle Noruega
monitor Noruega
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} Noruega
java.lang.RuntimePermission

Contém um nome (também conhecido como "nome de destino"), mas nenhuma lista de ações. Você tem a permissão nomeada ou não.
createClassLoader Noruega
getClassLoader SIM
setContextClassLoader SIM
enableContextClassLoaderOverride SIM
closeClassLoader Noruega
setSecurityManager Noruega
createSecurityManager NÃO
getenv.{variable name} NÃO
exitVM.{exit status} NÃO
shutdownHooks Noruega
setFactory NÃO
setIO Noruega
modifyThread SIM
stopThread SIM
modifyThreadGroup SIM
getProtectionDomain SIM
getFileSystemAttributes NÃO
readFileDescriptor SIM
writeFileDescriptor Noruega
loadLibrary.{library name} Noruega
accessClassInPackage. {package name} SIM
defineClassInPackage. {package name} Noruega
accessDeclaredMembers Noruega
queuePrintJob NÃO
getStackTrace Noruega
setDefaultUncaughtExceptionHandler Noruega
preferences NÃO
usePolicy Noruega
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 Noruega
requestPasswordAuthentication NÃO
specifyStreamHandler SIM
setProxySelector Noruega
getProxySelector Noruega
setCookieHandler NÃO
getCookieHandler NÃO
setResponseCache Noruega
getResponseCache Noruega
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.

listen,
accept
Noruega
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 Noruega
symbolic Noruega
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 Noruega
getDomainCombiner Noruega
getPolicy Noruega
setPolicy Noruega
createPolicy.{policy type} Noruega
getProperty.{key} Noruega
setProperty.{key} NÃO
insertProvider Noruega
removeProvider.{provider name} NÃO
clearProviderProperties.{provider name} Noruega
putProviderProperty.{provider name} Noruega
removeProviderProperty.{provider name} NÃO
SQLPermission setLog Noruega
callAbort Noruega
setSyncFactory Noruega
setNetworkTimeout Noruega
deregisterDriver Noruega
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 Noruega
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 Noruega
javax.xml.bind.JAXBPermission setDatatypeConverter Noruega
javax.sound.sampled.AudioPermission

Direitos de acesso aos recursos do sistema de áudio.
play Noruega
record Noruega
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 Noruega
javax.security.auth.AuthPermission

Atualmente, o objeto AuthPermission é usado para proteger o acesso aos objetos Subject, SubjectDomainCombiner, LoginContext e Configuration.
doAs Noruega
doAsPrivileged Noruega
getSubject NÃO
getSubjectFromDomainCombiner Noruega
setReadOnly Noruega
modifyPrincipals NÃO
modifyPublicCredentials Noruega
modifyPrivateCredentials Noruega
refreshCredential NÃO
destroyCredential NÃO
createLoginContext.{name} Noruega
getLoginConfiguration Noruega
setLoginConfiguration NÃO
createLoginConfiguration.{configuration type} Noruega
refreshLoginConfiguration Noruega
javax.net.ssl.SSLPermission
setHostnameVerifier Noruega
getSSLSessionContext NÃO
setDefaultSSLContext Noruega
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 Noruega
getClassLoader Noruega
getClassLoaderFor Noruega
getClassLoaderRepository Noruega
getDomains Noruega
getMBeanInfo Noruega
getObjectInstance Noruega
instantiate NÃO
invocar NÃO
isInstanceOf Noruega
queryMBeans Noruega
queryNames Noruega
registerMBean NÃO
removeNotificationListener Noruega
setAttribute Noruega
unregisterMBean Noruega
javax.management.MBeanServerPermission
createMBeanServer NÃO
findMBeanServer NÃO
newMBeanServer Noruega
releaseMBeanServer Noruega
javax.management.MBeanTrustPermission

Essa permissão representa a "confiança" em um signatário ou base do código.
register Noruega
* Noruega
javax.management.remote.SubjectDelegationPermission
Noruega