Статус: Участник
Группы: Участники
Зарегистрирован: 03.05.2016(UTC) Сообщений: 24
|
Что есть: 1) Установлено КриптоПро CSP 3.9.8001 KC2 2) Установлено КриптоПро JCP (jcp-2.0.38674) на JDK8_60\JRE (jre внутри JDK8_60). В само JDK8_60(а не в JDK8_60\JRE) JCP ставится не хочет - выдает ошибки (да и в списке предлагаемых установок его нет). Попытки тупо скопировать jar-библиотеки JCP не дают желаемого результата! 3) Отлично работающее тестовой клиентское приложение(public static void main(String[] args){}) под JDK8_60\JRE\JCSP(jcp-2.0.38674) - авторизация по сертификату + подпись soap сообщения по Госту(ГИС ЖКХ).
Что нужно: 1) В связи с тем, что используются Spring, Hibernate и т.д. возникла необходимость перенести это на JBoss7. Для запуска JBoss7 нужна именно JDK, а не JDK\JRE или просто JRE. Приложение диплоится на JBoss7 без ошибок. При вызове ru.CryptoPro.CAdES.tools.Utility.initJCPAlgorithms()(авторизация) или JCPXMLDSigInit.init()(подпись) получаю ошибку времени выполнения:
09:45:39,639 ERROR [org.springframework.scheduling.support.TaskUtils$LoggingErrorHandler] (gisGkhScheduler-1) Unexpected error occurred in scheduled task.: java.lang.NoClassDefFoundError: ru/CryptoPro/CAdES/tools/Utility at kmh.gis.gkh.util.SSLSocketFactoryGisGkh.getInstance(SSLSocketFactoryGisGkh.java:70) [classes:] at kmh.gis.gkh.soap.controller.ReplicationControllerAll.replicateAll(ReplicationControllerAll.java:43) [classes:] at kmh.gis.gkh.scheduler.SchedulerForReplication.processReplication(SchedulerForReplication.java:55) [classes:] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.8.0_60] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [rt.jar:1.8.0_60] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.8.0_60] at java.lang.reflect.Method.invoke(Method.java:497) [rt.jar:1.8.0_60] at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:65) [spring-context-4.1.4.RELEASE.jar:4.1.4.RELEASE] at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) [spring-context-4.1.4.RELEASE.jar:4.1.4.RELEASE] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [rt.jar:1.8.0_60] at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [rt.jar:1.8.0_60] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [rt.jar:1.8.0_60] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [rt.jar:1.8.0_60] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_60] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_60] at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_60]
Библиотеки jcp-2.0.38674 приложил куда только смог - в само приложение и в JBoss, прописывал пути jar-файлов в java_class конфигурации запуска JBoss. НЕ ПОМОГЛО.
Похоже что JDK8 и как следствие JBoss7 в упор не видит установленной JCP. Но в саму JDK8 (не JDK8\JRE) ставить JCP не получается!
Вопрос (в основном к сотрудникам КриптоПро): 1) Как решить проблему работы JCP/JCSP на JDK? 2) Есть ли какая-то серверная версия JCP\JCSP под JDK8?! (мы купим).
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,005 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Здравствуйте. Не совсем понятно, куда именно в JDK вы хотите установить jcp. ext - это папка расширений, куда и ставится jcp, дополняющий своей функциональностью jre (стандартная процедура установки, описанная в руководстве администратора). Просто скопировать jcp не выйдет. Вероятно, есть какие-то особенности работы загрузчика(-ов) библиотек jboss. Кроме того, если вы повсюду скопировали, например, CAdES.jar, то его jboss должен видеть, т.к., например, эта библиотека в отличие от библиотек провайдера (jcp, jcryptop, jcsp) может быть скопирована отдельно; по идее, библиотека CAdES должна быть загружена, но будет получена ошибка - не найден класс jcp или алгоритм и т.п. (если не виден провайдер в ext). Отредактировано пользователем 14 мая 2016 г. 13:02:04(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 03.05.2016(UTC) Сообщений: 24
|
Проблема в том, что JCP дополняет JRE, а JBoss использует JDK, которое почему-то не видит JCP в JRE, физически находящееся в JDK. Попробую еще покопать JBoss+Приложение.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 03.05.2016(UTC) Сообщений: 24
|
1) От безисходности залез внутрь jar-файлов jcp-2.0.38674 (CAdES.jar, JCSP.zip) смотрю META-INF\MANIFEST.MF Вижу: Manifest-Version: 1.0 Build-TimeStamp: 2016-02-15T13:18:28Z Implementation-Title: JCSP Implementation-Version: 38674 Built-By: root Created-By: Apache Maven 3.2.3 Release-Version: 2.0.38674 Implementation-Vendor: ООО «КРИПТО-ПРО» Implementation-Vendor-Id: ru.CryptoPro Build-Jdk: 1.6.0_45Specification-Version: 4.0 Main-Class: ru.CryptoPro.JCSP.ManifestInstall Archiver-Version: Plexus Archiver т.е. jar файлы откомпилированы под Jdk: 1.6.0_45 - скорее всего поэтому с JBoss7 под JDK7 b JDK8 их не видит.Запустить JBoss7 под Jdk: 1.6.0_45 пока не получается - перестает работать Spring4. 2) Еще один момент - Сделал EAR (вместо WAR) для диплоинга на Jboss7. В Eclipse сделал библиотеку JCP+зависимости (все в одной директории), сказал проекту собирать и диплоить вместе с этой библиотекой. Посмотрел на сервере что получилось - зависимости пошли в EAR\lib, а jar файлы JCP - в корень EAR! JDK8 не понимает эти файлы как библиотеки!!! ![Brick wall](/forum2/Images/Emoticons/eusa_wall.gif) Как заставить работать JCP под JBoss7(JDK7 или JDK8)?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,005 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Сделайте консольный пример с main (не в jboss) с хешированием или чем-то подобным, например: Код:
MessageDigest md = MessageDigest.getInstance(JCP.GOST_DIGEST_NAME, JCP.PROVIDER_NAME);
byte[] result = md.digest("test".getBytes());
скомпилируйте его и выполните в java 8 в командной строке: <java8>/bin/java my.test.class - он должен работать, т.к. у java8 есть обратная совместимость. Если вы кладете JCP в зависимости приложения (что нельзя делать, например, для jcp.jar, jcryptop.jar, jcsp.jar), то куда они попадут - сложно сказать, если библиотеки собраны для jdk 6 и выше, а вы собираете приложение в jdk 8. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 03.05.2016(UTC) Сообщений: 24
|
JDK1.8_60\jre: public static void main(String[] args) throws NoSuchAlgorithmException, NoSuchProviderException { // TODO Auto-generated method stub System.out.println("Test1"); MessageDigest md = MessageDigest.getInstance(JCP.GOST_DIGEST_NAME, JCP.PROVIDER_NAME); byte[] result = md.digest("test".getBytes()); } Работает (настроена на JCSP): Test1 мая 16, 2016 11:04:26 AM ru.CryptoPro.JCSP.JCSP <init> INFO: Loading JCSP 4.0 38674 мая 16, 2016 11:04:26 AM ru.CryptoPro.JCSP.KeyStore.KeyStoreConfig enumInstalledProviders WARNING: No provider with type of 80 found. мая 16, 2016 11:04:26 AM ru.CryptoPro.JCSP.KeyStore.KeyStoreConfig enumInstalledProviders WARNING: No provider with type of 81 found. мая 16, 2016 11:04:26 AM ru.CryptoPro.JCSP.JCSP <init> INFO: JCSP loaded. Отредактировано пользователем 16 мая 2016 г. 11:49:13(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,005 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close