Я использую SunPKCS11 с NSS для получения сертификата клиента со смарт-карты. Для получения PIN я использую DialogCallbackHandler. Они оба указаны в файле java.security.
Мне нужен способ запросить у пользователя его PIN-код. Он не может быть сохранен, прочитан из файла, передан в качестве аргумента командной строки и т. Д.
Обратите внимание, что я не контролирую код, используемый для аутентификации. Он использует стандартную реализацию безопасности Java.
Я посмотрел на все реализации Java 11 CallbackHandler. Кажется, никто из них не делает то, что я хочу.
Вот соответствующие строки из java.security , которые работают в Java 8, но не в Java 9:
security.provider.10=sun.security.pkcs11.SunPKCS11 /etc/pkcs11.cfg
auth.login.defaultCallbackHandler=com.sun.security.auth.callback.DialogCallbackHandler
Когда запрашивается проверка подлинности сертификата клиента, у пользователя должен быть запрошен его PIN-код, как если бы он был DialogCallbackHandler .
- Есть ли замена для DialogCallbackHandler ?
- Если ответом на вопрос # 1 является no , в Java 8 был каталог одобренный , куда можно добавить дополнительные JAR-файлы. Есть ли подобное средство в Java 9+? Могу ли я просто создать JAR с DialogCallbackHandler и добавить его куда-нибудь, чтобы он действовал в масштабе всей системы?