Capítulo 14. Gerenciador de Segurança do Java
- Gerenciador de Segurança do Java
- O Gerenciador de Segurança do Java é uma classe que gerencia o limite externo da área restrita da Máquina Virtual do Java (JVM), controlando como a execução do código com o JVM pode interagir com os recursos fora do JVM. Quando o Gerenciador de Segurança do Java é ativado, o Java API checa com o gerenciador de segurança pela aprovação antes de executar uma porção de operações potencialmente perigosas.
- Política de Segurança
- Um conjunto de permissões definidas para classes diferentes de código. O Gerenciador de Segurança compara ações solicitadas por aplicativos em relação à política de segurança. Caso uma ação seja permitida pela política, o Gerenciador de Segurança permitirá que a ação seja efetuada. Caso a ação não seja permitida pela política, o Gerenciador de Segurança irá negar aquela ação. A política de segurança pode definir permissões baseadas na localização do código ou na assinatura do código.
java.security.manager e java.security.policy.
Opções relacionadas ao Gerenciador de Segurança
- java.security.manager
- Usa um gerenciador de segurança, opcionalmente especificando qual gerenciador de segurança a ser usado. Caso nenhum argumento seja fornecido com esta opção, o gerenciador de segurança JDK padrão,
java.lang.SecurityManager, será usado. Forneça o classname inteiramente qualificado de uma subclasse dojava.lang.SecurityManagercom esta opção, caso deseje usar outra implementação de segurança. - java.security.policy
- Especifica um arquivo de política para argumentar ou substituir a política de segurança para a MV. Esta opção possui duas formas:
java.security.policy=policyFileURL- O arquivo de política referenciado policyFileURL irá argumentar a política de segurança padrão configurada pela MV.
java.security.policy==policyFileURL- O arquivo de política referenciado pelo policyFileURL irá substiruir a política de MV.
O valor policyFileURL pode ser um URL ou um caminho de arquivo.
14.1. Uso do Gerenciador de Segurança
jboss-as/bin/server.policy.cert é adicionado como ponto inicial.
O arquivo run.conf (Linux) ou run.conf.bat (Windows) é usado para configurar o Gerenciador de Segurança e a política de segurança. Este arquivo é encontrado no diretório jboss-as/bin.
run.conf global ou arquivo run.conf.bat a partir do jboss-as/bin/ para o perfil do servidor (por exemplo: jboss-as/server/production/run.conf) e realizar as alterações da configuração. O arquivo de configuração no perfil do servidor possui precedência sobre o arquivo run.conf / run.conf.bat global quando o perfil do servidor é iniciado.
Procedimento 14.1. Ativação do Gerenciador de Segurança
run.conf (Linux) ou run.conf.bat (Windows) no diretório do perfil do servidor, caso existir algum, ou no jboss-as/bin. Refira-se ao Arquivo de Configuração para maiores detalhes sobre a localização deste arquivo.
Especificação do diretório da página principal do JBoss.
Edite o arquivorun.conf(Linux) ourun.conf.bat(Windows). Adicione a opçãojboss.home.dir, especificando o caminho ao diretóriojboss-asde sua instalação.LinuxJAVA_OPTS="$JAVA_OPTS -Djboss.home.dir=/path/to/jboss-eap-5.1/jboss-as"
WindowsJAVA_OPTS="%JAVA_OPTS% -Djboss.home.dir=c:\path\jboss-eap-5.1\jboss-as"
Especificação do diretório de página principal
Adicione a opçãojboss.server.home.dir, especificando o caminho para seu perfil de servidor.LinuxJAVA_OPTS="$JAVA_OPTS -Djboss.server.home.dir=path/to/jboss-eap-5.1/jboss-as/server/production"
WindowsJAVA_OPTS="%JAVA_OPTS% -Djboss.server.home.dir=c:\path\to\jboss-eap-5.1\jboss-as\server\production"
Especificação do Manuseador do Protocolo
Adicione a opçãojava.protocol.handler.pkgs, especificando o manuseador stub do JBoss.LinuxJAVA_OPTS="$JAVA_OPTS -Djava.protocol.handler.pkgs=org.jboss.handlers.stub"
WindowsJAVA_OPTS="%JAVA_OPTS% -Djava.protocol.handler.pkgs=org.jboss.handlers.stub"
Especificando a política de segurança para uso
Adicione a variável$POLICY, especificando a política de segurança em uso. Adicione a definição da variável antes da linha que ativa o Gerenciador de Segurança.Exemplo 14.1. Use a política de segurança incluída na Plataforma
POLICY="server.policy.cert"
Ativação do Gerenciador de Segurança
Descomente a linha seguinte pela remoção do#inicial:Linux#JAVA_OPTS="$JAVA_OPTS -Djava.security.manager -Djava.security.policy=$POLICY"
Windows#JAVA_OPTS="%JAVA_OPTS% -Djava.security.manager -Djava.security.policy=%POLICY%"
Resultado:A Plataforma do Aplicativo do JBoss Enterprise está configurada para iniciar com o Gerenciador de Segurança ativado.
Opcional: Importação da chave de assinatura do JBoss da Red Hat
A política de segurança incluída concede permissões ao código assinado do JBoss. Você deverá importar a chave de assinatura do JBoss para o armazenamento da chavecacerts, caso você use a política incluída.O seguinte comando assume que oJAVA_HOMEda variável do ambiente seja configurado à localização do JDK suportada pela Plataforma do Aplicativo JBoss Enterprise 5. Você deve configurar oJAVA_HOMEquando instalar a Plataforma do Aplicativo Enterprise 5 pela primeira vez. Refira-se ao Installation Guide para maiores informações.Nota
Você pode usar o comandoalternativespara selecionar a partir dos JDKs instalados em seu sistema Linux, com o objetivo de garantir de que o JVM correto está instalado. Refira-se ao Apêndice A, Configuração do JDK padrão com a Utilidade/usr/sbin/alternativespara maiores informações.Execute o seguinte comando num terminal:Linux[~]$ sudo $JBOSS_HOME/bin/keytool -import -alias jboss -file JBossPublicKey.RSA \ -keystore $JAVA_HOME/lib/security/cacerts
WindowsC:> $JBOSS_HOME\bin\keytool -import -alias jboss -file JBossPublicKey.RSA -keystore $JAVA_HOME\lib\security\cacerts
Os comandos acima devem ser inseridos em uma única linha num terminal, embora separados em linhas diferentes neste terminal.Nota
A senha padrão para o armazenamento da chave cacerts échangeit.Resultado:A chave usada para a assinatura do código da Plataforma do Aplicativo JBoss Enterprise está instalada.