Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline a.cherednichenko  
#1 Оставлено : 29 марта 2016 г. 16:25:20(UTC)
a.cherednichenko

Статус: Новичок

Группы: Участники
Зарегистрирован: 29.03.2016(UTC)
Сообщений: 2
Российская Федерация
Откуда: Москва

Добрый день.

Пытаюсь использовать КриптоПро JCP для работы с клиентом СМЭВ 3.0.Х.Х, при запуске приложения (в процессе инициализации криптографии) выдаётся следующий exception:

Не удалось зарегистрировать алгоритм: http://www.w3.org/2001/0...g.SignatureGostR34102001$SignatureGostR34102001GostR3411. Убедитесь что выбраный провайдер действительно установлен!!

OS: Debian 7
Server: Apache Tomcat/7.0.28
Java: 1.7.0_21
JCP: 1.0.54

При старте сервера и попытке запуска приложения генерируется следующее исключение:
Mar 29, 2016 4:15:37 PM org.apache.catalina.core.ApplicationContext log
SEVERE: StandardWrapper.Throwable
java.lang.NoClassDefFoundError: org/apache/xml/security/algorithms/SignatureAlgorithmSpi
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at java.lang.ClassLoader.loadClass(ClassLoader.java:410)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1626)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:188)
at ru.voskhod.crypto.DigitalSignatureFactory.initXmlSec(DigitalSignatureFactory.java:70)
at ru.voskhod.crypto.DigitalSignatureFactory.init(DigitalSignatureFactory.java:37)
at main.App.Start(App.java:110)
at main.SmevConnectorServlet.init(SmevConnectorServlet.java:29)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1266)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1185)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1080)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5026)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5313)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:899)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:875)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:618)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:963)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1600)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.ClassNotFoundException: org.apache.xml.security.algorithms.SignatureAlgorithmSpi
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 49 more

Mar 29, 2016 4:15:37 PM org.apache.catalina.core.StandardContext loadOnStartup
SEVERE: Servlet /SmevConnector threw load() exception
java.lang.ClassNotFoundException: org.apache.xml.security.algorithms.SignatureAlgorithmSpi
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at java.lang.ClassLoader.loadClass(ClassLoader.java:410)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1626)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:188)
at ru.voskhod.crypto.DigitalSignatureFactory.initXmlSec(DigitalSignatureFactory.java:70)
at ru.voskhod.crypto.DigitalSignatureFactory.init(DigitalSignatureFactory.java:37)
at main.App.Start(App.java:110)
at main.SmevConnectorServlet.init(SmevConnectorServlet.java:29)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1266)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1185)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1080)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5026)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5313)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:899)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:875)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:618)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:963)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1600)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)

Может быть кто-то ещё сталкивался с подобной проблемой?
Спасибо!

Отредактировано пользователем 29 марта 2016 г. 16:26:48(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#2 Оставлено : 1 апреля 2016 г. 13:57:22(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,910
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Здравствуйте.
Автор: a.cherednichenko Перейти к цитате
NoClassDefFoundError: org/apache/xml/security/algorithms/SignatureAlgorithmSpi

Какая версия xmlsec используется? Возможно, у томката есть и своя.

Отредактировано пользователем 1 апреля 2016 г. 13:58:01(UTC)  | Причина: Не указана

Offline a.cherednichenko  
#3 Оставлено : 1 апреля 2016 г. 17:34:54(UTC)
a.cherednichenko

Статус: Новичок

Группы: Участники
Зарегистрирован: 29.03.2016(UTC)
Сообщений: 2
Российская Федерация
Откуда: Москва

На всякий случай опишу решение, если кто-то ещё столкнётся:

1. Библиотеки xmlsec.jar, commons-logging.jar из дистрибутива jcp.1.0.54/lib/dependencies надо было положить в JAVA_HOME/jre/lib/ext
2. Ключи, созданные под одной учётной записью (в моём случае это был root), не читались учётной записью tomcat - пришлось копировать ключи отдельно для root. Путь, где лежат ключи, можно найти в ControlPane.sh на вкладе «Hardware».
Offline aandreev  
#4 Оставлено : 8 июня 2017 г. 15:04:25(UTC)
aandreev

Статус: Новичок

Группы: Участники
Зарегистрирован: 08.06.2017(UTC)
Сообщений: 1
Российская Федерация

Тоже отпишусь, так как указанное выше не помогло)
Помогла перекомпиляция библиотеки crypto из пакета библиотек СМЭВ 3, с изменением импортов в классе DigitalSignatureFactory.
Поменял вот эти:

import com.sun.org.apache.xml.internal.security.algorithms.JCEMapper;
import com.sun.org.apache.xml.internal.security.algorithms.SignatureAlgorithm;
import com.sun.org.apache.xml.internal.security.transforms.Transform;

На вот эти:
import org.apache.xml.security.algorithms.JCEMapper;
import org.apache.xml.security.algorithms.SignatureAlgorithm;
import org.apache.xml.security.transforms.Transform;

И алгоритм сразу нашелся, так как стала цепляться нужная xmlsec.

Все либы были скопированы в jre/lib/ext

Отредактировано пользователем 8 июня 2017 г. 18:14:56(UTC)  | Причина: Не указана

RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.