mindu
Junho 17, 2003, 10:40am
#1
Pessoal,
Na minha aplicação tenho a seguinte linha de código:
System.setProperty(“org.omg.CORBA.ORBInitialHost”,“192.168.0.1”);
Criei um JAR da minha aplicação, testei localmente e funcionou sem erros, mas quando tento rodar essa minha aplicação no WebStart com o jnlp configurado rodando pelo tomcat tudo conforme o figurino manda da o seguinte erro:
:: java.security.AccessControlException: access denied (java.util.PropertyPermission org.omg.CORBA.ORBInitialHost write)
Segui um tutorial para criar chave e assinar o jar, acredito que tenha feito da maneira correta, mas o mesmo erro persiste.
alguém teria alguma idéia do que pode ser isso ?
mindu.
Manja de “sandbox” ? Direitos de acesso ?
Está bem claro que o erro é de política de acesso !
Tente usar o policytool e adicionar uma PropertyPermission adequada.
mindu
Junho 17, 2003, 11:33am
#3
Não, não sei.
Claro que se eu soubesse, como vc mesmo disse “Está bem Claro !” , eu nem teria perguntado.
Onde vejo sobre isso ?
mindu.
Hhhhhmmm, foi mau, eu devia ter sido mais claro.
Isso tem a ver com segurança em Java.
O Tutorial de Java da Sun tem um capítulo completo destinado a esse tópico.
Procure em: Specialized Trails -> Security in 1.2.
É um tópico muito grande, vou sair para almoçar agora, e quando voltar te passo um link mais direto.
… então:
Este link: http://java.sun.com/docs/books/tutorial/security1.2/tour2/index.html , mostra um passo-a-passo para gerenciar direitos de acesso à variáveis de ambiente.
Mas, observando melhor, acho que você não precisa disso.
De fato o que ocorre é que a aplicação rodando sem um Security Manager tem direitos de acesso irrestrito à sua máquina, por isso funciona quando você roda localmente na sua máquina.
Quando você roda a aplicação dentro de um container (não entendo nada de Webstart, jnlp, mas Tomcat é um container), ele deve ter um Security Manager configurado. Não posso afirmar isso com certeza, mas imagino que você deveria configurar direitos de acesso nesse Security Manager, e não no computador local, nunca fiz isso antes.
Infelizmente acho que não posso ajudar muito
mindu
Junho 17, 2003, 1:58pm
#6
ajudou sim…
vou dar uma olhada nesse Security Manager do TomCat que vc falou.
talvez seja esse o caminho.
obrigado,
mindu.
mindu
Junho 18, 2003, 2:27pm
#7
Pessoal, ainda estou com dificuldades nesse assunto.
Alguém teria mais alguma idéia ?
valeu.
mindu.
cv1
Junho 18, 2003, 2:45pm
#8
Dificuldades com o que, tecnicamente, mindu?
mindu
Junho 18, 2003, 3:55pm
#9
Resolvi o problema cv, graças…
Meu emprego está garantido por enquanto…
faltava a seguinte linha no arquivo .jnlp
acesso full hehehe
valeu galera pela ajuda.
mindu.
Valeu, vou guardar essa também !!!
Substitua o java.policy com esse policy,.
# todas classes dentro do jre/lib/ext tem AllPermision
grant codeBase "file:${java.home}/lib/ext/*" {
permission java.security.AllPermission;
};
# todas classes fora do jre/lib/ext tem essas permissoes.
# NAO USE AllPermission, pois cria uma Queijo Suico na aplicacao.
grant {
permission java.lang.RuntimePermission "stopThread";
permission java.net.SocketPermission "localhost:1024-", "listen";
permission java.util.PropertyPermission "java.version", "read";
permission java.util.PropertyPermission "java.vendor", "read";
permission java.util.PropertyPermission "java.vendor.url", "read";
permission java.util.PropertyPermission "java.class.version", "read";
permission java.util.PropertyPermission "os.name", "read";
permission java.util.PropertyPermission "os.version", "read";
permission java.util.PropertyPermission "os.arch", "read";
permission java.util.PropertyPermission "file.separator", "read";
permission java.util.PropertyPermission "path.separator", "read";
permission java.util.PropertyPermission "line.separator", "read";
permission java.util.PropertyPermission "java.specification.version", "read";
permission java.util.PropertyPermission "java.specification.vendor", "read";
permission java.util.PropertyPermission "java.specification.name", "read";
permission java.util.PropertyPermission "java.vm.specification.version", "read";
permission java.util.PropertyPermission "java.vm.specification.vendor", "read";
permission java.util.PropertyPermission "java.vm.specification.name", "read";
permission java.util.PropertyPermission "java.vm.version", "read";
permission java.util.PropertyPermission "java.vm.vendor", "read";
permission java.util.PropertyPermission "java.vm.name", "read";
permission java.util.PropertyPermission "org.omg.CORBA.ORBInitialHost", "read, write";
};
Existe tbm na JDK o policytool, uma ferramenta que facilita a criacao de policies.
[]'s