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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline lstef  
#1 Оставлено : 31 мая 2017 г. 10:04:07(UTC)
lstef

Статус: Активный участник

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

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 2 раз в 2 постах
Есть приложение для взаимодействия со СМЭВ 3 (smev3), построено на базе клиента, использует рекомендованные для клиента
jre 1.7.05 и jcp 1.54. Кроме того сейчас пробую по аналогии с примерами из wss4j.wss4j1_6_3.tests.forum сделать приложение для СМЭВ 2 (smev2).

smev3 использует xmlsec-1.4.8
если положить в jre/lib/ext xmlsec-1.5.0 выдаёт эксепшен:
Цитата:

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.xml.security.algorithms.SignatureAlgorithm.providerInit()V
at ru.voskhod.crypto.DigitalSignatureFactory.initXmlSec(DigitalSignatureFactory.java:71)
at ru.voskhod.crypto.DigitalSignatureFactory.init(DigitalSignatureFactory.java:37)

если убрать xmlsec из jre/lib/ext и добавить xmlsec-1.4.8 к проекту, то
Цитата:

Exception in thread "main" 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 java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:186)
at ru.voskhod.crypto.DigitalSignatureFactory.initXmlSec(DigitalSignatureFactory.java:70)
at ru.voskhod.crypto.DigitalSignatureFactory.init(DigitalSignatureFactory.java:37)
at Test.initMessageExchangeEndpoint(Test.java:257)
at Test.main(Test.java:90)


При этом smev2 использует xmlsec-1.5.0 и при подключении 1.4.8 через jre/lib/ext

Цитата:

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.xml.security.utils.resolver.ResourceResolver.getInstance(Lorg/w3c/dom/Attr;Ljava/lang/String;Z)Lorg/apache/xml/security/utils/resolver/ResourceResolver;
at ru.CryptoPro.JCPxml.dsig.internal.dom.DOMURIDereferencer.dereference(DOMURIDereferencer.java:95)
at ru.CryptoPro.JCPxml.dsig.internal.dom.DOMReference.dereference(DOMReference.java:395)
at ru.CryptoPro.JCPxml.dsig.internal.dom.DOMReference.digest(DOMReference.java:329)
at ru.CryptoPro.JCPxml.dsig.internal.dom.DOMXMLSignature.digestReference(DOMXMLSignature.java:453)
at ru.CryptoPro.JCPxml.dsig.internal.dom.DOMXMLSignature.sign(DOMXMLSignature.java:352)
at wss4j.wss4j1_6_3.tests.forum.SMEVExample.main(SMEVExample.java:169)


если убрать xmlsec из jre/lib/ext и подключить xmlsec-1.5.0 к проекту, то выдаёт

Цитата:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xml/security/exceptions/AlgorithmAlreadyRegisteredException
at ru.CryptoPro.JCPxml.xmldsig.JCPXMLDSigInit.isInitialized(Unknown Source)
at wss4j.wss4j1_6_3.tests.forum.SMEVExample.main(SMEVExample.java:91)
Caused by: java.lang.ClassNotFoundException: org.apache.xml.security.exceptions.AlgorithmAlreadyRegisteredException
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)
... 2 more


Хотелось бы найти способ подружить оба проекта на одной JRE чтобы не заниматься костылингом
Offline Ardi  
#2 Оставлено : 30 сентября 2017 г. 11:34:26(UTC)
Ardi

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

Группы: Участники
Зарегистрирован: 07.03.2015(UTC)
Сообщений: 1

Сейчас столкнулся с такой же проблемой. Удалось ли найти решение?
Offline Евгений Афанасьев  
#3 Оставлено : 4 октября 2017 г. 17:47:45(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 688 раз в 649 постах
Здравствуйте.
jcpxml из jcp 1.0.54 зависит от xmlsec-1.4.4. Попробуйте использовать jcp 2.0, в нем jcpxml зависит от xmlsec-1.5.0.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.