0

solaris で signtool を使用してサードパーティの jar に署名しようとしています。jar には既に manifest.mf ファイルがありますが、signtool は META-INF/ ディレクトリに新しい MANIFEST.MF ファイルを作成し、それを使用して jar に署名します。署名された jar を検証しようとすると、マニフェスト ファイルに 2 つの異なるバージョンがあるため失敗します。現在の manifest.mf ファイルの内容を MANIFESET.MF にコピーすると、signtool によってデータが上書きされます。

とにかく、jar に署名するために使用するファイルを指定する方法はありますか (MANIFEST.MF よりも manifest.mf など)? または、新しい MANIFEST.MF に何を含めるかを signtool に伝える方法はありますか?

Java の次の更新では、jar に署名する必要があり、アプレットのアクセス許可タグを含める必要があるため、これは差し迫った問題です。

4

1 に答える 1

0

私が維持しなければならない 1 つのアプレットだけを試してみたところ、このトピックに関する情報はまばらなものしか見つかりませんでした。私が見つけたのは、signtool 引数「-m」(メタファイル) の不可解なドキュメントにあるものだけでした。https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Tools/signtoolから、「+ グローバル メタデータ (つまり、JAR アーカイブ自体またはすべてに関するメタデータ) を指定する場合は、アーカイブ内のエントリ)」は、META-INF/MANIFEST.MF への不可解な参照である可能性があり、そのようです。

build.xml で蟻塚を使用し、より良い規則を知らずに、「src\antBuild\signtool-extras.mf」を作成し、signtool 呼び出しで「-m {basedir}\src\antBuild\signtool-extras.mf」を使用しました。 . 「+」で始まる「signtool-extras.mf」に入れたコンテンツは、signtool によって生成された MANIFEST.MF に拡張されました。

私の場合、「+ Permissions: all-permissions」という 2 行と、「+ Application-Name: Cris Mooney FTP Applet」のような識別行を 1 行追加しました。これらは、生成された jar ファイルの META-INF/MANIFEST.MF に表示され、現在の Java 1.7.0_55 エンジンを満たしています。また、私が他の場所で読んだこととは反対に、Java は現在、「コードベース」がないことについて不平を言うことはありませんでした。これについてはほとんど知りませんが、私のツールが QA で不平を言うだろうと予想していたため、無視することにしました。

これが誰かの助けになることを願っています.

注 - 私の解決策は、次の 2 つの Java 1.7.0_55 の苦情に対処することでした。

次のパーミッション マニフェスト属性がありません: URL/FTPApplet.jar

次の Application-Name マニフェスト属性がありません: URL/FTPpplet.jar

于 2014-06-06T15:32:09.213 に答える