14.3. Gravação da Política de Segurança para a Plataforma do Aplicativo do JBoss Enterprise

O arquivo jboss-as/bin/server.policy.cert é um exemplo da política de segurança para a Plataforma do Aplicativo JBoss Enterprise. Você pode utilizá-lo como base para sua própria política de segurança.
O aplicativo policytool, incluído com o JDK, fornece uma ferramenta gráfica para edição e gravação da política de segurança.

Importante

Considere cuidadosamente quais permissões você irá conceder. Tenha um cuidado especial ao conceder permissão ao java.security.AllPermission: você pode potencialmente permitir alterações ao binário do sistema, incluindo o ambiente do período de rodagem JVM.
Refira-se à documentação no http://download-llnw.oracle.com/javase/6/docs/technotes/guides/security/PolicyFiles.html para informações gerais sobre os arquivos da política de segurança e permissões Java. O java.lang.RuntimePermissions específico do JBoss está descrito abaixo:

Permissões do Período de Rodagem específico do JBoss

org.jboss.security.SecurityAssociation.getPrincipalInfo
Fornece acesso aos métodos org.jboss.security.SecurityAssociation getPrincipal() e getCredential(). O risco relacionado com o uso desta permissão do período de rodagem é a habilidade de verificar o chamador do segmento atual e credenciais.
org.jboss.security.SecurityAssociation.getSubject
Fornece acesso ao método org.jboss.security.SecurityAssociation getSubject().
org.jboss.security.SecurityAssociation.setPrincipalInfo
Fornece acesso aos métodos org.jboss.security.SecurityAssociation setPrincipal(), setCredential(), setSubject(), pushSubjectContext() e popSubjectContext(). O risco de uso desta permissão do período de rodagem é a habilidade de configurar o chamador do segmento atual e credenciais.
org.jboss.security.SecurityAssociation.setServer
Fornece acesso ao método org.jboss.security.SecurityAssociation setServer . O risco de uso desta permissão do período de rodagem é a habilidade de ativar ou desativar o armazenamento múltiplo de segmentação do chamador da entidade de segurança do chamador e credenciais.
org.jboss.security.SecurityAssociation.setRunAsRole
Fornece acesso aos métodos org.jboss.security.SecurityAssociation pushRunAsRole e popRunAsRole, pushRunAsIdentity e popRunAsIdentity. O risco de uso desta permissão do período de rodagem é a habilidade de alterar o chamador atual rodando como entidade de segurança da função.
org.jboss.security.SecurityAssociation.accessContextInfo
Fornece acesso aos métodos org.jboss.security.SecurityAssociation accessContextInfo, "Get" e accessContextInfo, "Set", permitindo que você determine e obtenha a informação do contexto de segurança atual.
org.jboss.naming.JndiPermission
Fornece permissões especiais aos arquivos e diretórios num caminho da árvore JNDI ou recursivamente a todos os arquivos e subdiretórios. Um JndiPermission consiste de um pathname e de um conjunto de permissões válidas relacionadas ao arquivo ou diretório.
As permissões disponíveis incluem: bind , rebind , unbind , lookup , list , listBindings , createSubcontext e all.
Os pathnames terminando com /* indicam que as permissões especificadas são aplicadas a todos os arquivos e diretórios do pathname. Os pathnames terminando em /- indicam permissões a todos os arquivos e diretórios do pathname. Os pathnames que contém um token <<ALL BINDINGS>> especial combinando com qualquer arquivo em qualquer diretório.
org.jboss.security.srp.SRPPermission
A classe de permissão personalizada para proteção de acesso à informação SRP confidencial como a chave de sessão privada e chave privada. Esta permissão não possui quaisquer ações definidas. O getSessionKey também fornece acesso à chave de sessão privada resultada a partir da negociação SRP. O acesso a esta chave permitirá que você criptografe e descriptografe as mensagens que foram criptografadas com a chave de sessão.
org.hibernate.secure.HibernatePermission
Esta classe de permissão fornece permissões básicas para proteção das sessões do Hibernate. O destino desta propriedade é o nome da entidade. As informações disponíveis incluem: insert , delete , update , read , * (all).
org.jboss.metadata.spi.stack.MetaDataStackPermission
Fornece uma classe de permissão personalizada para controle de como os chamadores interagem com a pilha dos metadados. As permissões disponíveis são: modify (push/pop na pilha), peek (peek an pilha) e * (todos).
org.jboss.config.spi.ConfigurationPermission
Protege a determinação das propriedades de configuração. Define apenas os nomes de destino da permissão e não as ações. Os destinos para esta propriedade incluem: <property name> - propriedade pela qual o código possui permissão para configuração; * - todas as propriedades.
org.jboss.kernel.KernelPermission
Protege o acesso à configuração do kernel. Isto define apenas os nomes do destino de permissão e nenhuma das ações. Os destinos para esta propriedade incluem: access - acesso à configuração do kernel, configure - configuração do kernel (o acesso é imperativo) e * - todos acima.
org.jboss.kernel.plugins.util.KernelLocatorPermission
Protege acesso ao kernel. Define apenas os nomes do destino de permissão e nenhuma ação. Os destinos para esta propriedade incluem: kernel - acesso ao kernel e * - acesso a todas as áreas.