Стандартный Калкан-апплет не позволяет подписывать SOAP-сообщения. Допустим, перед вами все-таки встала такая или подобная задача...
Теоретически можно расширить апплет, добавив свой метод, но для этого нужно убрать родную подпись апплета и установить свою.
Важно! Самоподписанный сертификат для подписания апплета не подойдет, нужен легально подписанный сертификат.
Дальшейшая практическая инструкция подразумевает, что у вас есть легальный сертификат для подписи апплета, иначе некоторые браузеры могут не принять самоподписанный сертификат.
Создаем maven-проект. Вот содержимое pom.xml:
4.0.0kz.kesh.blogkalkan-applet1.2.3kz.gov.pkiknca_applet0.1.1knca_applet_patchedorg.apache.maven.pluginsmaven-compiler-plugin3.21.71.7${project.build.sourceEncoding}org.apache.maven.pluginsmaven-shade-plugin2.4.1packageshade*:*META-INF/*.SFMETA-INF/*.DSAMETA-INF/*.RSAorg.apache.maven.pluginsmaven-jar-plugin2.4falsefalsetruetrue**trueall-permissions*Kesh blog
Необходимо добавить в локальный репозиторий maven jar-ку апплета, которую будем прокачивать. Это можно сделать командой:
storagePath - путь к подписи
alias - идентификатор сертификата
password - пароль
xml - SOAP-сообщение для подписи
При внедрении апплета в html нужно указать knca_applet_patched.jar (или ваше название) и kz.gov.pki.knca.applet.SuperKalkanApplet (тоже можно изменить).