Os usuários podem configurar arquivos de política de segurança do Java™ 2, de forma que a permissão necessária seja concedida para o aplicativo corporativo WebSphere Application Server especificado.
Antes de Iniciar
A segurança Java 2 utiliza vários arquivos de políticas para determinar
as permissões para cada programa Java.
Consulte
o tópico Arquivos de Política de Segurança Java 2 para obter a lista de arquivos de políticas
disponíveiss que são suportados pelo WebSphere Application Server.
Dois tipos de arquivos de políticas são suportados pelo WebSphere Application Server: arquivos de políticas dinâmicas e arquivos de políticas estáticas. Os arquivos de políticas estáticas
fornecem as permissões padrão. Os arquivos de políticas dinâmicas fornecem permissões de aplicativos. São
fornecidos seis arquivos de políticas dinâmicas:
Tabela 1. Arquivos de Critério Dinâmicos. Esta tabela lista os arquivos de política dinâmica.Nome do Arquivo de Políticas |
Descrição |
app.policy |
Contém permissões padrão para todos os aplicativos corporativos da célula. Nota: Atualizações no arquivo
app.policy só se aplicam aos aplicativos corporativos no nó ao qual pertence o
arquivo app.policy.
|
was.policy |
Contém permissões específicas do aplicativo para um aplicativo corporativo WebSphere Application
Server. Esse arquivo é fornecido em um arquivo EAR (enterprise archive). |
ra.xml |
Contém permissões específicas do aplicativo do conector para um aplicativo corporativo WebSphere Application
Server. Esse arquivo é fornecido em um arquivo RAR
(resource adapter archive). |
spi.policy |
Contém permissões para a SPI (Service Provider
Interface) ou para recursos de terceiros que são integrados no WebSphere Application
Server. O conteúdo padrão concede tudo. Atualize esse arquivo cuidadosamente quando a célula precisar de mais proteção contra a SPI da célula. Este arquivo é aplicado a todas as SPIs definidas no arquivo resources.xml. |
library.policy |
Contém permissões para a biblioteca compartilhada dos aplicativos corporativos. |
filter.policy |
Contém uma lista de permissões que requerem a filtragem do arquivo
was.policy e do arquivo app.policy na célula. Esse mecanismo de filtragem aplica-se somente aos arquivos was.policy e app.policy. |
No WebSphere Application
Server, os aplicativos devem ter as permissões de encadeamento adequadas, especificadas no arquivo
was.policy ou
app.policy.
Sem as permissões de encadeamento especificadas, o aplicativo não poderá manipular os encadeamentos e o WebSphere Application Server criará uma exceção java.security.AccessControlException. O arquivo
app.policy aplica-se a um nó especificado. Se você alterar
as permissões em um arquivo
app.policy, deverá incorporar a nova
política de encadeamento no mesmo arquivo nos nós restantes. Além disso, se você incluir as permissões de encadeamento no arquivo
app.policy, deverá reiniciar o WebSphere Application Server para forçar as novas permissões. Entretanto, se você incluir as permissões no arquivo
was.policy de um aplicativo específico, não precisará reiniciar o WebSphere Application Server. Um administrador deve incluir
o seguinte código em um arquivo
was.policy ou
app.policy
para que um aplicativo manipule encadeamentos:
grant codeBase "file:${application}" {
permission java.lang.RuntimePermission "stopThread";
permission java.lang.RuntimePermission "modifyThread";
permission java.lang.RuntimePermission "modifyThreadGroup";
};
Importante: A palavra-chave
Signed By não é suportada nos seguintes arquivos de políticas: arquivos app.policy, spi.policy, library.policy, was.policy
e filter.policy. No
entanto, a palavra-chave Signed By é suportada nos seguintes arquivos de
políticas: arquivos java.policy, server.policy e client.policy. O Java Authentication and Authorization Service
(JAAS) não é suportado nos arquivos app.policy, spi.policy, library.policy, was.policy e filter.policy. Entretanto, a palavra-chave do proprietário do JAAS é suportada
em um arquivo de políticas do JAAS quando ela é especificada pela propriedade de sistema da JVM (Java Virtual
Machine) java.security.auth.policy.
É possível configurar de forma
estática os arquivos de políticas de autorização em
java.security.auth.policy com auth.policy.url.n=URL,
em que URL é o local da política de autorização.
Procedimento
- Identifique o arquivo de políticas a ser atualizado.
Dica: Colete o arquivo de políticas com o menor escopo.
É possível evitar conceder uma permissão adicional aos programas Java e proteger os recursos. Você pode atualizar o arquivo ra.xml ou o arquivo was.policy em vez do arquivo app.policy.
Utilize símbolos específicos do componente ($(ejbcomponent),
${webComponent},${connectorComponent} e ${jars}) em vez de símbolos ${application}. Atualize os arquivos de política dinâmica, em vez dos arquivos de
políticas estáticas.
Inclua no arquivo filter.policy qualquer permissão que nunca tenha concedido ao aplicativo corporativo WebSphere Application Server na célula.
Consulte filter.policy file permissions.
- Reinicie o aplicativo corporativo WebSphere Application Server.
Resultados
A permissão necessária é concedida para o aplicativo corporativo WebSphere Application Server especificado.
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
Exemplo
Se um aplicativo corporativo WebSphere Application Server em uma célula exigir permissões, será necessário atualizar alguns dos arquivos de políticas dinâmicas. O sintoma da permissão ausente é a exceção java.security.AccessControlException.
A permissão ausente é listada nos dados de exceção a seguir, que aparecem como uma linha, mas são divididos em seções para que sejam legíveis.
![[IBM i]](../images/iseries.gif)
![[z/OS]](../images/ngzos.gif)
java.security.AccessControlException: access denied (java.io.FilePermission
${was.install.root}/java/ext/mail.jar read)
Quando um programa Java
receber esta exceção e a inclusão desta permissão for justificada, inclua uma permissão
em um arquivo de políticas dinâmicas adequado.
![[IBM i]](../images/iseries.gif)
![[z/OS]](../images/ngzos.gif)
grant codeBase "file:user_client_installed_location" {
permission java.io.FilePermission
"${was.install.root}$(/)java$(/)jre$(/)lib$(/)ext$(/)mail.jar", "read";
};
As linhas de informações de permissão anteriores são divididas para a
ilustração. Digite a permissão em uma linha.
Para decidir se uma permissão deve ser
incluída, consulte o tópico Exceção de Controle de Acesso para Segurança de Java 2.