2

スマートカードを使用して何かに署名するアプレットがあります。Mac OS での新しい Java アップデートまで、すべて問題ありませんでした。説明します。macos に Java 6 とそのための特別なプラグインがあれば、すべてが機能しました。しかし、今ではプラグインが削除されており、ユーザーは Java 7 のブラウザ プラグインを Oracle の Web サイトからダウンロードする必要があります。

アプレットは引き続きカード リーダーを認識しますが、スマートカードを認識しません。reader.isCardPresent() メソッドを使用すると、「false」が返され、例外はなく、すべて問題なく、カードリーダーにカードがありません。6つのJavaとMacOS独自のプラグインがあったときに、OSのバックアップを復元します。すべてが機能します。しかし、新しい iMac や MacBook を購入したばかりの多くのクライアントは、Java 6 と Apple のプラグインを使用できません。

すべてが Windows 上で動作します。非推奨のメソッドは使用しません。Mac OS 用の Oracle のプラグインに問題があるようです。

誰もが同様の問題を抱えていたか、何かアイデアがあるかもしれません。

4

1 に答える 1

2

サンプルからコードを取得し、少し変更して、いくつかのテストを行います。macosx 10.8.2 の jdk1.7.0_09 でサンプルを実行します。PCSC フレームワーク 1.4.0。

terminal.isCardPresent() は false を返しますが、カードにはアクセスできます。Java が 32 ビット モードと 64 ビット モードの両方を実行している場合にバグが存在します。pcscd は 32 ビット モードでのみ実行されます。これは、汎用の pcsc ドライバーがまだ 32 ビットのみであるためです。

pcscd デバッグ ログで、SHMMessageReceive にいくつかの解析エラーが表示されるため、バグは Java または pcsc フレームワーク ( winscard_msg.cpp) にある可能性があります。

于 2012-11-27T10:32:07.740 に答える