我有三個類,一個叫做Capture,AppletLogging和AbstractJLabel。我已經在我的%USERPROFILE%/ java.policy文件設置以下權限:AccessControlException與在同一代碼庫中的小程序類
grant codeBase "file:/C:/project/abc/target/test-classes/-" {
permission java.util.logging.LoggingPermission "control";
};
所有的類都在代碼庫從上面的撥款。當Capture在AppletLogging中調用靜態方法時,一切正常。當AbstractJLabel調用AppletLogging相同的靜態方法,然後我得到
java.security.AccessControlException: access denied (java.util.logging.LoggingPermission control)
這將運行在Sun Java插件版本6更新35.沒有人有一個解釋?我得到即使我以下所有的代碼庫批塊相同的錯誤:
permission java.security.AllPermission;
注意捕獲和AbstractJLabel從靜態塊調用靜態方法。
罐子和數字簽名的代碼,如果小程序需要信任。我不明白爲什麼人們會爲applet制定策略文件。除了您控制的機器外,策略文件不適合部署,如果是這種情況,JWS可能是更好的分發選項。 –
(請注意,不幸的是,靜態初始化程序不會被「Java 2安全模型」專門處理。基於堆棧的安全檢查通過類加載器並返回到導致類初始化的任何代碼中。 –