Por padrão, aplicativos Java™ não possuem restrições de segurança em atividades solicitadas de uma API
Java. Para usar a segurança
Java para evitar que um
aplicativo Java execute ações
potencialmente não-seguras, você pode ativar um gerenciador de
segurança para a JVM no qual o aplicativo é executado.
Sobre Esta Tarefa
O gerenciador de segurança impinge uma política de segurança, que é um
conjunto de permissões (privilégios de acesso ao sistema) que são designadas a
origens de código. Um arquivo de política padrão é fornecido com a
plataforma Java. No entanto,
para permitir que os aplicativos Java sejam executados com
sucesso no CICS quando a
segurança Java estiver ativada,
será necessário especificar um arquivo de política adicional que
fornece ao CICS as permissões
necessárias para executar o aplicativo.
É preciso
especificar esse arquivo de políticas adicional para cada tipo de JVM que tenha
um gerenciador de segurança ativado. O CICS
fornece alguns exemplos que podem ser usados para criar suas próprias
políticas.
Notas: A ativação do gerenciador de segurança Java não é suportada em um
servidor JVM Liberty.
- O exemplo de agente de segurança OSGi cria um pacote configurável de middleware OSGi chamado com.ibm.cics.server.examples.security no seu projeto que contém um perfil de segurança. Esse perfil se aplica a todos
os pacotes configuráveis na estrutura na qual ele é instalado.
- O arquivo example.permissions contém permissões que são específicas para executar aplicativos em um servidor JVM, incluindo uma verificação para garantir que os aplicativos não usem o método System.exit().
- O CICS deve ter acesso de
leitura e execução ao diretório no zFS onde o pacote configurável
OSGi é implementado.
Para aplicativos que são executados na estrutura OSGi de um
servidor JVM:
Procedimento
- Crie um projeto de plug-in no CICS Explorer SDK e
selecione o exemplo de agente de segurança OSGi fornecido.
- No projeto, selecione o arquivo example.permissions
para editar as permissões para sua política de segurança.
- Confirme que os diretórios de instalação CICS zFS
e DB2 tenham sido especificados
corretamente.
- Inclua outras permissões, conforme necessário.
- Implemente o pacote configurável OSGi em um diretório adequado no zFS como /u/bundles.
- Edite o perfil de JVM para o servidor JVM para incluir o pacote configurável OSGi
na opção OSGI_BUNDLES antes de qualquer outro
pacote configurável:
- OSGI_BUNDLES=/u/bundles/com.ibm.cics.server.examples.security_1.0.0.jar
- Inclua a seguinte propriedade Java
no perfil JVM para ativar a segurança.
- -Djava.security.policy=all.policy
- Inclua a seguinte variável de ambiente Java
no perfil da JVM para habilitar a segurança na estrutura OSGi:
- org.osgi.framework.security=osgi
- Para permitir que a estrutura OSGi seja iniciada com a segurança Java 2, inclua a
seguinte política:
- grant { permission java.security.AllPermission; };
- Salve as alterações e ative o recurso JVMSERVER
para instalar o pacote configurável de middleware no servidor JVM.
- Opcional: Ative a segurança Java 2.
- Para ativar um mecanismo de política de segurança Java 2, inclua-o no perfil JVM apropriado.
Também será necessário editar sua política de segurança Java 2
para conceder as permissões adequadas.
- Para usar JDBC ou SQLJ a partir de um aplicativo
Java com um mecanismo de
política de segurança Java 2
ativo, use o IBM® Data
Server Driver para JDBC e SQLJ.
- Para ativar um mecanismo de política de segurança Java 2, edite o
perfil da JVM. descreve como configurar uma política de segurança Java 2.
- Edite a política de segurança Java 2
para conceder permissões ao driver JDBC, incluindo as linhas
mostradas no Exemplo 1. No lugar de
db2xxx, especifique um
diretório abaixo onde todas as suas bibliotecas do
DB2 estão localizadas. As permissões são aplicadas a todos os diretórios e arquivos abaixo
deste nível. Isto permite que você use JDBC e SQLJ.
- Edite a política de segurança Java 2
para conceder permissões de leitura, incluindo as linhas mostradas no
Exemplo 2. caso não inclua a permissão de leitura, a execução de um
programa Java produzirá
a exceção AccessControlExceptions e outros resultados imprevisíveis. É
possível usar JDBC e SQLJ com uma política de segurança Java 2.
Exemplo 1:
grant codeBase "file:/usr/lpp/db2xxx/-" {
permission java.security.AllPermission;
};
Exemplo 2:
grant {
// permite que qualquer pessoa leia as propriedades
permission java.util.PropertyPermission "*", "read";
};
Resultados
Quando o aplicativo Java é chamado, a JVM
determina o código fonte da classe e consulta a política de
segurança antes de conceder as permissões apropriadas à classe.