2014-01-06 73 views
0

我想簽署在solaris上使用signtool的第三方罐子。 jar文件已經有了manifest.mf文件,但是signtool在META-INF /目錄下創建了一個新的MANIFEST.MF文件,並用它來簽署該jar文件。如果我嘗試驗證簽名的jar,它會失敗,因爲有兩個不同版本的清單文件。如果我將當前的manifest.mf文件中的內容複製到MANIFESET.MF,則signtool將覆蓋數據。使用signtool簽名罐子

是否有指定使用什麼文件簽名的jar(例如MANIFEST.MF上的manifest.mf)?或者有什麼方法可以告訴signtool在新的MANIFEST.MF中包含什麼?

這是一個緊迫的問題,因爲Java的下一次更新需要對jar進行簽名以及包含applet的權限標記。

回答

0

僅在一個Applet中涉水我必須維護,而不是專家本人,我只在這個主題上找到了稀疏的信息。我發現的所有內容都是關於signtool參數「-m」(metafile)的神祕文檔。從https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Tools/signtool,我猜想「+如果你想指定全局元數據(即有關JAR歸檔本身的元數據或歸檔中的所有條目)」可能是META-INF/MANIFEST.MF的一個神祕的參考 - 並且它似乎是。我創建了一個「src \ antBuild \ signtool-extras.mf」,並使用了「-m {basedir} \ src \ antBuild \ signtool-extras.mf」來創建一個「src \ antBuild \ signtool-extras.mf」在我的signtool調用。我以「+」開頭的「signtool-extras.mf」內容被擴充到signtool生成的MANIFEST.MF中。

在我的情況下,我添加了兩行「+ Permissions:all-permissions」和一個名爲「+ Application-Name:Cris Mooney FTP Applet」的標識。這些顯示在生成的jar文件的META-INF/MANIFEST.MF中,這滿足了當前的Java 1.7.0_55引擎。另外,與我在其他地方閱讀的內容相反,Java目前並沒有抱怨沒有「代碼庫」,但我不知道這個代碼庫,因爲我預計我的工具會在QA中投訴,而這已經足以導致無證的痛苦。

希望這可以幫助別人,我希望聽到澄清和更正我在相對黑暗中的猜測。

注 - 我的解決辦法來解決這些兩個Java 1.7.0_55投訴:

缺少權限控制的屬性:URL/FTPApplet.jar

缺少的應用程序名稱清單屬性:URL/FTPpplet。罐子

相關問題