Я погуглил множество ссылок, таких как oracle и обзор скорости и stackoverlow, но все еще безуспешно.
Суть проста.Jar подписывается с использованием:
keytool -genkey -alias signFiles -keystore compstore -keypass bca321 -dname "cn=test" -storepass abc123
jarsigner -keystore compstore -storepass abc123 -keypass bca321 -signedjar SignedJar.jar UnsignedJar.jar signFiles
И он отлично работает на локальной машине.Но когда SignedJar.jar используется как апплет через HTTP (S), даже если пользователь принимает сертификат (IE или FF или Chrome - без разницы), он перестает работать с:
java.security.AccessControlException: access denied (javax.smartcardio.CardPermission Broadcom Corp Contacted SmartCard 0 connect)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at sun.security.smartcardio.TerminalImpl.connect(Unknown Source)
Да, он пытаетсячитать со смарт-карты, вставленной в терминал, и получает исключение при вызове соединения.
Да, я тоже пробовал этот подход:
AccessController.doPrivileged(new PrivilegedAction() {
...
Но без удачи.Так в чем же подвох?
Заранее спасибо, Кирилл