Access Denied

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.

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 :cry:

ajudou sim…
vou dar uma olhada nesse Security Manager do TomCat que vc falou.
talvez seja esse o caminho.

obrigado,
mindu.

Pessoal, ainda estou com dificuldades nesse assunto.
Alguém teria mais alguma idéia ?

valeu.
mindu.

Dificuldades com o que, tecnicamente, mindu?

Resolvi o problema cv, graças…
Meu emprego está garantido por enquanto…

faltava a seguinte linha no arquivo .jnlp

acesso full hehehe :wink:

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