java.security.AccessControlException:Acesso negado (preferências java.lang.RuntimePermission)

StackOverflow https://stackoverflow.com/questions/9465728

Pergunta

Estou tentando executar um agente Java no console do servidor e recebo esta exceção:

Agent Manager: Agent printing: WARN  AppLogger.java:246 initialize() Could not find a log4j.properties resource! Defaulting to app.log output. 
Agent Manager: Agent  error: Exception in thread "AgentThread: FTPBB" 
Agent Manager: Agent  error: java.lang.ExceptionInInitializerError
Agent Manager: Agent  error:  at java.lang.J9VMInternals.initialize(J9VMInternals.java:222)
Agent Manager: Agent  error:  at java.lang.J9VMInternals.initialize(J9VMInternals.java:167)
Agent Manager: Agent  error:  at com.bloomberg.datalic.api.ExtendedFTPConnection.<clinit>(ExtendedFTPConnection.java:2780)
Agent Manager: Agent  error:  at java.lang.J9VMInternals.initializeImpl(Native Method)
Agent Manager: Agent  error:  at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
Agent Manager: Agent  error:  at FTP.<init>(FTP.java:93)
Agent Manager: Agent  error:  at FTPBB.NotesMain(FTPBB.java:110)
Agent Manager: Agent  error:  at lotus.domino.AgentBase.runNotes(Unknown Source)
Agent Manager: Agent  error:  at lotus.domino.NotesThread.run(Unknown Source)
Agent Manager: Agent  error: Caused by: 
Agent Manager: Agent  error: java.security.AccessControlException: Access denied (java.lang.RuntimePermission preferences)
Agent Manager: Agent  error:  at java.security.AccessController.checkPermission(AccessController.java:108)
Agent Manager: Agent  error:  at java.lang.SecurityManager.checkPermission(SecurityManager.java:544)
Agent Manager: Agent  error:  at java.util.prefs.Preferences.userRoot(Preferences.java:443)
Agent Manager: Agent  error:  at com.bloomberg.datalic.util.DLPreferencesTree.<init>(DLPreferencesTree.java:29)
Agent Manager: Agent  error:  at com.bloomberg.datalic.util.DLPreferencesTree.getInstance(DLPreferencesTree.java:44)
Agent Manager: Agent  error:  at com.bloomberg.datalic.util.DLPreferenceNode.<clinit>(DLPreferenceNode.java:19)
Agent Manager: Agent  error:  at java.lang.J9VMInternals.initializeImpl(Native Method)
Agent Manager: Agent  error:  at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
Agent Manager: Agent  error:  ... 8 more

O agente usa duas bibliotecas jar externas da Bloomberg.Esses dois são importados para o agente e também colocados no diretório domino/jvm/lib no servidor.

A exceção é lançada ao chamar o construtor de classe de uma das classes da biblioteca importada.

O agente funciona bem ao ser executado manualmente no cliente Designer.

Acho que devo editar os arquivos java.pol* mas minha experiência aqui é bastante limitada, infelizmente…

Conselho por favor

/Mike

Foi útil?

Solução 2

Agora eu descobri isso.O arquivo java.pol não é usado, apesar do arquivo java.security indicar que ele deveria ser incluído.

Para fazer isso funcionar, você precisa alterar o arquivo java.policy.Posso dizer que isso não é a solução preferida, pois o arquivo .pol deve ser deixado para concessões adicionadas pelo usuário e o arquivo .policy é o arquivo JVM padrão do Domino.

Outras dicas

Você está sentindo falta do preferências Permissão de tempo de execução:

java.security.AccessControlException:Acesso negado (java.lang.RuntimePermission preferências)

O mínimo que você precisa fazer é adicionar um RuntimePermission para seu arquivo de política:

grant {
    permission java.lang.RuntimePermission "preferences";
};

Depois de superar essa exceção, você provavelmente obterá mais, mas é melhor do que permitir todas as permissões.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top