簡體   English   中英

發出將庫負載授予Java代碼的問題

[英]Issue granting library load to Java code

我在我的應用程序中使用Java安全管理器。 我正在經歷授予權限,並且遇到了一個似乎無法授予的權限。 允許加載庫。 這是$ JAVA_HOME / lib / ext目錄中的java * .jar庫。

at com.theatsgroup.startup.startup_managers.startup(startup_managers.jav
a:98)
at com.theatsgroup.startup.app_startup.main(app_startup.java:357)
Caused by: java.security.AccessControlException: access denied ("java.lang.Runti
mePermission" "loadLibrary.sunec")
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkLink(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)

我的授權文件如下:

grant codeBase "file:../bin/atsapp.jar" {
permission java.lang.RuntimePermission "loadLibrary.sunec";
};

以下是我調用Java應用程序的方式:

java -Djava.security.manager -Djava.security.policy==..\cfg\atsapp.security.poli
cy -jar atsapp.jar

有任何想法嗎?

謝謝,

-賈斯汀

由於您使用的是“ ==”,因此您將覆蓋jvm的“默認”權限。 有一項重要的默認授予,您很可能需要將其復制到策略文件中才能使jvm正常工作。 此權限授予作為jvm一部分安裝的所有擴展庫的權限,它們需要執行所有“內部”操作。 不知道為什么這不是內置的,因為沒有這個,jvm無法做很多事情。

grant codeBase "file:${{java.ext.dirs}}/*" {
  permission java.security.AllPermission;
};

這是從與jre一起安裝的“ lib / security / java.policy”文件的開頭開始的。 您可能需要研究此文件的其余部分,以查看是否還需要其他重要的基本權限。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM