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.SecurityManager
com 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-as
de 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_HOME
da variável do ambiente seja configurado à localização do JDK suportada pela Plataforma do Aplicativo JBoss Enterprise 5. Você deve configurar oJAVA_HOME
quando instalar a Plataforma do Aplicativo Enterprise 5 pela primeira vez. Refira-se ao Installation Guide para maiores informações.Nota
Você pode usar o comandoalternatives
para 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/alternatives
para 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.