2016-01-16 44 views
1

我創建了一個用於電子簽名的java小程序。 Applet運行正常,並且在ide(intelliJ)上運行時完美運行。但是,當我將項目部署到.jar文件並試圖在瀏覽器(Firefox)上運行時,我得到了一些錯誤,說.jar是不可信的。然後我做了一些研究,並與jarsigner簽署了我的小程序。我follewed下列步驟操作:已簽名Java Applet訪問被拒絕java.io.FilePermission已讀


  • 的keytool -genkey -keyalg RSA -alias MyCert

  • 的keytool -certreq -alias MyCert

  • 的jarsigner C:\ TestApplet.jar MyCert

也在oracle網站上試過命令。 link here


我簽署了我的小程序錯誤消失後,我可以運行我的小程序。但是,當我嘗試簽署一個文件,我得到一個錯誤,說該小程序沒有permision訪問證書存儲文件夾。錯誤是:

java.security.AccessControlException:否認( 「java.io.FilePermission中的」 「C:\用戶\ ChooseClick.sertifikadeposu」 「讀」)訪問

+0

正確。在發現許多安全漏洞之後,小應用程序(甚至是已簽名的小應用程序)沒有被授予證書存儲文件夾的權限。 –

+0

所以我有什麼事情要做。我可以安裝較低的Java版本? :( –

+0

不要使用小程序,你可以安裝一個較低的firefox版本,但是它容易被利用 –

回答

0

我找到了解決辦法。爲了能夠在Java來訪問文件或其他任何限制的動作,則必須使用prilivaged塊:

AccessController.doPrivileged(new PrivilegedAction() { 
    public Object run() { 
     //actions that need permission goes here 

     return null; 
    } 
    }); 

你可以在任何功能使用此塊。

相關問題