Статус: Новичок
Группы: Участники
Зарегистрирован: 03.09.2012(UTC) Сообщений: 2
|
Здравствуйте!
При попытке запустить тестовый пример из статьи "Подпись сообщений SOAP для СМЭВ с использованием КриптоПро JCP" вылетает следующая ошибка:
сен 03, 2012 8:32:09 PM ru.CryptoPro.JCP.tools.Starter check INFO: Loading JCP 1.0.53 сен 03, 2012 8:32:10 PM ru.CryptoPro.JCP.tools.Starter check INFO: JCP loaded. Exception in thread "main" java.lang.ClassCastException: content[0] is not a valid X509Data type at ru.CryptoPro.JCPxml.dsig.internal.dom.DOMX509Data.<init>(DOMX509Data.java:68) at ru.CryptoPro.JCPxml.dsig.internal.dom.DOMKeyInfoFactory.newX509Data(DOMKeyInfoFactory.java:88) at wss4j.wss4j1_6_3.tests.forum.SMEVExample.main(Unknown Source)
ОС: Linux Debian 6 Java 7 Sun JCP 1.0.53.
В чём может быть проблема?
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 03.09.2012(UTC) Сообщений: 2
|
Вопрос решился правильным указанием путя к хранилищу сертификата с помощью HDImageStore.setDir();
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 28.04.2016(UTC) Сообщений: 35 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Moscow Сказал(а) «Спасибо»: 1 раз Поблагодарили: 2 раз в 2 постах
|
Автор: SaBo ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) Вопрос решился правильным указанием путя к хранилищу сертификата с помощью HDImageStore.setDir(); А что нужно указать, если сертификат лежит на ruToken ? сейчас crypto.properties выглядит следующим образом: Код:
org.apache.ws.security.crypto.provider=wss4j.wss4j1_6_3.ws.security.components.crypto.MerlinEx
org.apache.ws.security.crypto.merlin.keystore.provider=JCP
org.apache.ws.security.crypto.merlin.keystore.type=HDImageStore
org.apache.ws.security.crypto.merlin.keystore.alias=RaUser-...........
org.apache.ws.security.crypto.merlin.keystore.password=............
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,003 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 714 раз в 674 постах
|
Вероятно, Код:
org.apache.ws.security.crypto.merlin.keystore.type=RutokenStore
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 28.04.2016(UTC) Сообщений: 35 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Moscow Сказал(а) «Спасибо»: 1 раз Поблагодарили: 2 раз в 2 постах
|
К сожалению не помогло, всё равно падает там же, на строке Код:X509Data x509d = kif.newX509Data(Collections.singletonList(cert));
Переменная cert - пустая. Не может получить сертификат тут Код:X509Certificate cert = (X509Certificate) keyStore.getCertificate(SpecUtility.DEFAULT_ALIAS);
добавил после этой строчки блок вывода: Код:
System.out.println("cert:");
System.out.println(cert);
System.out.println("keyStore:");
System.out.println(keyStore);
System.out.println("keyStore.getDefaultType():");
System.out.println(keyStore.getDefaultType());
System.out.println("keyStore.getType():");
System.out.println(keyStore.getType());
System.out.println("keyStore.getProvider():");
System.out.println(keyStore.getProvider());
System.out.println("SpecUtility.DEFAULT_ALIAS:");
System.out.println(SpecUtility.DEFAULT_ALIAS);
System.out.println("keyStore.getCertificate(SpecUtility.DEFAULT_ALIAS):");
System.out.println(keyStore.getCertificate(SpecUtility.DEFAULT_ALIAS));
на выходе имею Код:
cert:
null
keyStore:
java.security.KeyStore@50d17ec3
keyStore.getDefaultType():
jks
keyStore.getType():
HDImageStore
keyStore.getProvider():
JCP version 1.0
SpecUtility.DEFAULT_ALIAS:
RaUser-............
keyStore.getCertificate(SpecUtility.DEFAULT_ALIAS):
null
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,003 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 714 раз в 674 постах
|
Может быть, есть еще копия этого файла - crypto.properties? |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 28.04.2016(UTC) Сообщений: 35 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Moscow Сказал(а) «Спасибо»: 1 раз Поблагодарили: 2 раз в 2 постах
|
В проекте больше нету. Так на ФС есть ещё несколько штук, там где распакованы изначально архивы библиотек. Но файл из проекта точно подтягивается, т.к. Алиас он берёт из конфига в проекте
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,003 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 714 раз в 674 постах
|
Тогда странно, что видит keyStore.getType(): HDImageStore но не видит изменения. Попробуйте другие параметры тоже поменять. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 28.04.2016(UTC) Сообщений: 35 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Moscow Сказал(а) «Спасибо»: 1 раз Поблагодарили: 2 раз в 2 постах
|
Он их видит, если попробовать на том же алиасе - то сразу видно, что новое значение подхватывает. Если вывести System.out.println(SpecUtility.DEFAULT_KEYSTORE); System.out.println(SpecUtility.DEFAULT_STORETYPE); То видно, что он подтягивает значение org.apache.ws.security.crypto.merlin.keystore.type=RutokenStore в DEFAULT_STORETYPE. А в конструктор KeyStore берётся значение JCP.HD_STORE_NAME - KeyStore keyStore = KeyStore.getInstance(JCP.HD_STORE_NAME); Которое определено в классе как HDImageStore. Поменял в вызове JCP.HD_STORE_NAME на SpecUtility.DEFAULT_STORETYPE и сертификат подцепился. Хотя пока всё равно падает на подписи - sig.sign(signContext); Цитата: 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:186)
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,003 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 714 раз в 674 постах
|
Автор: lstef ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) 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:186)
Возможно, версия xmlsec неподходящая. |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close