4.4. Gravação da Política do Java Security Manager

Introdução

Um aplicativo chamado policytool está incluído na maioria das distribuições JRE e JDK, para o propósito de criação e edição das políticas de segurança do Java Security Manager. A informação detalhada sobre policytool é conectado a partir do http://docs.oracle.com/javase/6/docs/technotes/tools/.

Informação Básica

A política de segurança consiste dos seguintes elementos de configuração:

CodeBase
A localização do URL (excluindo a informação domain e host) onde o código é originado. O parâmetro é opcional.
SignedBy
O alias usado no keystore para referência do assinante cuja chave privada era usada para entrar com o código. Isto pode ser um valor único ou lista de vírgula separada de valores. Este parâmetro é opcional. Caso omitido, a presença ou falta de assinatura não possui impacto no Java Security Manager.
Principals
A lista dos pares principal_type/principal_name, que devem ser apresentados com o conjunto principal de thread sendo executados. A entrada dos Principals é opcional. Caso seja omitida, isto significa "qualquer principals".
Permissões
A permissão é o acesso que é concedido ao código. Muitas permissões são fornecidas como parte da especificação do Java Enterprise Edition 6 (Java EE 6). Este documento descreve apenas as permissões adicionais que são fornecidas pelo JBoss Enterprise Application Plataform.

Procedimento 4.2. Configuração de uma nova Política do Java Security Manager

  1. Inicie o policytool.

    Inicie a ferramenta policytool em uma das seguintes manerias:
    • Red Hat Enterprise Linux

      A partir de seu GUI ou prompt de comando, execute o /usr/bin/policytool.
    • Servidor Microsoft Windows

      Execute o policytool.exe a partir do menu de Iniciação ou do bin\ de sua instalação do Java. A localização pode variar.
  2. Criação de uma nova política.

    Selecione Add Policy Entry para criar uma nova política. Adicione parâmetros que você precisa, e clique em Done.
  3. Edição de uma política existente

    Selecione a política a partir da lista das políticas existentes e selecione o botão Edit Policy Entry. Edite os parâmetros conforme seja necessário.
  4. Exclusão de uma política existente.

    Selecione a política da lista de políticas existentes e selecione o botão Delete Policy Entry.

Permissão específica ao JBoss Enterprise Application Plataform

org.jboss.security.SecurityAssociation.getPrincipalInfo
Fornece acesso aos métodos org.jboss.security.SecurityAssociationgetPrincipal() e getCredential(). O risco relacionado com o uso desta permissão do período de execução é a habilidade de ver o chamador de thread atual e credenciais.
org.jboss.security.SecurityAssociation.getSubject
Fornece o método org.jboss.security.SecurityAssociationgetSubject().
org.jboss.security.SecurityAssociation.setPrincipalInfo
Fornece acesso aos métodos org.jboss.security.SecurityAssociationsetPrincipal(), setCredential(), setSubject(), pushSubjectContext() e popSubjectContext(): O risco relacionado com o uso desta permissão do período de execução é a habilidade de determinar o chamador do thread atual e credenciais.
org.jboss.security.SecurityAssociation.setServer
Fornece acesso ao método org.jboss.security.SecurityAssociationsetServer. O risco relacionado com o uso desta permissão do período de execução é a habilidade de habilitar ou desabilitar o storage multi-thread do chamador principal e credencial.
org.jboss.security.SecurityAssociation.setRunAsRole
Fornece acesso aos métodos org.jboss.security.SecurityAssociationpushRunAsRole, popRunAsRole, pushRunAsIdentity e popRunAsIdentity. O risco relacionado com o uso desta permissão do período de execução é a habilidade de alterar o chamador atual para executar como função principal.
org.jboss.security.SecurityAssociation.accessContextInfo
Fornece acesso aos métodos getter e setter org.jboss.security.SecurityAssociationaccessContextInfo e accessContextInfo. Isto permite que você determine e configure a informação do contexto de segurança atual.
org.jboss.naming.JndiPermission
Fornece as permissões especiais para arquivos e diretórios num caminho de árvore JNDI especificado ou de forma recursiva a todos os subdiretórios. O JndiPermission consiste de um pathname e um conjunto de permissões válidas relacionadas ao arquivo ou diretório.
As permissões disponíveis incluem:
  • bind
  • rebind
  • unbind
  • pesquisa
  • lista
  • listBindings
  • createSubcontext
  • todos
Os pathnames finalizados em /* indicam que as permissões especificadas são aplicadas a todos os arquivos e diretórios do nome do pathname. Os pathnames finalizados em /- indicam permissões recursivas em todos os arquivos e subdiretórios do pathname. Os pathnames consistentes do <<ALL BINDINGS>> de token especial coincidem com qualquer arquivos do diretório.
org.jboss.security.srp.SRPPermission
A classe de permissão personalizada para proteção de acesso à informação SRP confidencial como sessão privada e chave privada. Essa permissão não possui quaisquer ações definidas. O destino getSessionKey fornece acesso à chave de sessão privada que resulta da negociação SRP. O acesso à esta chave permite a criptografia e descriptografia de mensagens que foram criptografadas à chave da sessão.
org.hibernate.secure.HibernatePermission
A classe de permissão fornece permissões básicas para segurança das sessões Hibernate. O destino para esta propriedade é o nome de entidade. As ações disponíveis incluem:
  • inserir
  • excluir
  • atualizar
  • ler
  • * (todos)
org.jboss.metadata.spi.stack.MetaDataStackPermission
Fornece uma classe de permissão personalizada para controle de como os chamadores interagem com a pilha metadata. As permissões disponíveis são:
  • modificar
  • enviar (à pilha)
  • pop (fora da pilha)
  • inspecionar (na pilha)
  • * (todos)
org.jboss.config.spi.ConfigurationPermission
Garante a determinação das propriedades de configuração. Define apenas os nomes de destino e nenhuma das ações. Os destinos para esta propriedade incluem:
  • <property name> (a propriedade que este código possui permissão de configurar)
  • * (todas as propriedades)
org.jboss.kernel.KernelPermission
Garante acesso à configuração do kernel. Define apenas os nomes do destino de permissão e sem ações. Os destinos para a propriedade incluem:
  • acesso (à configuração do kernel)
  • configuração (implica no acesso)
  • * (todos)
org.jboss.kernel.plugins.util.KernelLocatorPermission
Garante acesso ao kernel. Define apenas os nomes do destino de permissão e nenhuma ação. Os destinos para a propriedade incluem:
  • kernel
  • * (todos)