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()egetCredential(). 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()epopSubjectContext(). 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 pushRunAsRoleepopRunAsRole,pushRunAsIdentityepopRunAsIdentity. 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"eaccessContextInfo, "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,createSubcontexteall.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.