Java-апплет для подписи (с помощью токена / смарт-карты) и загрузки документов в сервлет

file-upload applet digital-signature smartcard

1249 просмотра

1 ответ

16 Репутация автора

Любые указания о том, как бороться с этим сценарием: у меня есть одно веб-приложение, которое должно загрузить локальный файл (например, еще не подписанный, текстовый файл), а затем подписать его локально (таким образом, один апплет), используя закрытый ключ, хранящийся в токен / смарт-карта, принадлежащая автору текстового файла (java stuff / api / etc) и, наконец, сделать HTTP (S) / POST для моего выбранного сервлета?

если бы мне не приходилось писать апплет самому, это было бы лучше :), поэтому я ищу что-то (с открытым исходным кодом или нет, так как здесь и там должен быть какой-то обман), который может просто выполнить "все дело" в клиентская сторона (браузер) для меня самым чистым способом, например: откройте диалог для пользователя, чтобы выбрать файл для подписи; выбор сертификата из токена / смарт-карты; обёртывание (эффективная подпись) исходного документа в подписанный XML и, наконец, выполнение HTTP / HTTPS POST для моего сервлета.

Автор: user1150355 Источник Размещён: 15.01.2012 12:54

Ответы (1)


0 плюса

106 Репутация автора

Современные браузеры больше не поддерживают Java-апплеты или ActiveX. Вам нужно будет использовать расширение браузера, которое может получить доступ к вашему локальному хранилищу сертификатов, чтобы подписать хэш на устройстве клиента.

Для сценариев подписи на основе браузера одним из таких бесплатных расширений Chrome, предоставляемых моей компанией, является расширение Chrome Signer.Digital. Установку, устанавливаемую на клиентское устройство, можно загрузить по адресу https://download.cnet.com/Signer-Digital-Chrome-Extension/3000-33362_4-78042540.html.

После установки этого хоста и перезапуска Chrome автоматически добавится расширение Signer.Digital Chrome.

Фактическая работа этого расширения иллюстрируется здесь

JavaScript для вызова метода из расширения:

    //Calculate Sign for the Hash by Calling function from Extension SignerDigital
    SignerDigital.signPdfHash(hash, $("#CertThumbPrint").val(), "SHA-256")      //or "SHA256"
     .then(
            function (signDataResp) {
              //Send signDataResp to Server
        },
            function (errmsg) {
                //Send errmsg to server or display the result in browser.
              }
     );

В случае успеха возвращает подпись pkcs7 в кодировке Base64 - используйте любой компонент pdf для вставки знака в pdf. Если файл Failed, возвращает сообщение об ошибке, начиная с «SDHost Error:»

Автор: Bharat Vasant Размещён: 24.05.2019 11:32
Вопросы из категории :
32x32