Configurando o Arquivo was.policy para Segurança Java 2
Você deve atualizar o arquivo was.policy se o aplicativo tiver recursos específicos para acessar.
Antes de Iniciar
profile_root/config/cells/cell_name/applications/
ear_file_name/deployments/application_name/META-INF/was.policy
Consulte os arquivos de política de segurança Java 2 para obter a lista de arquivos de políticas disponíveis que são suportados pelo WebSphere Application Server Versão 6.1.
A união das permissões contidas nos seguintes arquivos
é aplicada no aplicativo corporativo do WebSphere Application
Server:
- Qualquer arquivo de políticas que é especificado nas propriedades policy.url.* no arquivo java.security.
- Os arquivos app.policy, que são gerenciados pelos serviços de configuração e replicação de arquivos.
- O arquivo server.policy.
- O arquivo java.policy.
- O arquivo was.policy do aplicativo.
- A especificação de permissão do arquivo ra.xml.
- A biblioteca compartilhada, que é o arquivo library.policy.
As mudanças feitas nesses arquivos são replicadas a outros nós na célula.
Símbolo | Definição |
---|---|
file:${application} | As permissões se aplicam a todos os recursos utilizados no aplicativo. |
file:${jars} | As permissões aplicam-se a todos os arquivos JAR (Java archive) do utilitário no aplicativo |
file:${ejbComponent} | As permissões aplicam-se aos recursos do enterprise bean dentro do aplicativo |
file:${webComponent} | As permissões aplicam-se aos recursos da Web dentro do aplicativo |
file:${connectorComponent} | As permissões aplicam-se aos recursos do conector dentro do aplicativo |
No WebSphere Application Server, os aplicativos que
manipulam encadeamentos devem possuir as permissões de encadeamento apropriadas 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. 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 os encadeamentos:
grant codeBase "file:${application}" {
permission java.lang.RuntimePermission "stopThread";
permission java.lang.RuntimePermission "modifyThread";
permission java.lang.RuntimePermission "modifyThreadGroup";
};
Um administrador pode incluir as permissões de encadeamento no arquivo app.policy,
mas a alteração de permissão exigirá reiniciar o WebSphere Application Server.Importante: As palavras-chave Signed By e do proprietário do JAAS (Java Authentication and Authorization Service)
não são suportadas no arquivo was.policy. A palavra-chave Signed By é suportada nos arquivos de política java.policy, server.policy
e client.policy. A palavra-chave do proprietário do JAAS é suportada em um arquivo de políticas do JAAS quando é especificada pela propriedade de sistema java.security.auth.policy da Java Virtual Machine (JVM). É possível configurar de forma estática os arquivos de políticas de autorização no arquivo java.security.auth.policy com auth.policy.url.n=URL, em que URL é a localização da política de autorização.
Além desses blocos, é possível especificar o nome do módulo para definições granulares.
Por exemplo:
grant codeBase "file:DefaultWebApplication.war" {
permission java.security.SecurityPermission "printIdentity";
};
grant codeBase "file:IncCMP11.jar" {
permission java.io.FilePermission
"${user.install.root}${/}bin${/}DefaultDB${/}-",
"read,write,delete";
};
Símbolo | Definição |
---|---|
${app.installed.path} | O caminho onde o aplicativo está instalado |
${was.module.path} | O caminho em que o módulo está instalado |
${current.cell.name} | Nome da célula Current |
${current.node.name} | Nome do nó Current |
${current.server.name} | Nome do servidor Current |
Sobre Esta Tarefa
Dica: Os erros de sintaxe dos arquivos de critérios fazem com que o servidor de aplicativos falhe. Tome cuidado ao editar esses arquivos de políticas.
Procedimento
Resultados
Exemplo
![[IBM i]](../images/iseries.gif)
![[z/OS]](../images/ngzos.gif)
java.security.AccessControlException: acesso negado (java.io.FilePermission
${was.install.root}/java/ext/mail.jar read)
![[z/OS]](../images/ngzos.gif)
![[IBM i]](../images/iseries.gif)
Nota: Os exemplos a seguir são divididos em várias linhas apenas para ilustração. Na realidade, é possível digitar
a permissão em uma linha.
![[IBM i]](../images/iseries.gif)
![[z/OS]](../images/ngzos.gif)
java.security.AccessControlException: acesso negado (java.io.FilePermission
${was.install.root}/java/ext/mail.jar read)
Quando um programa Java receber esta exceção e a inclusão dessa permissão for justificada, inclua a seguinte permissão no arquivo was.policy:
![[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";
};
Para determinar se deve incluir uma permissão, consulte a exceção de controle de acesso para a segurança Java 2.