Украина. Цифровая подпись. Библиотека EUSignJava.jar

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
Всем привет!
Кто-то сталкивался с библиотекой цифровой подписи EUSignJava.jar?
Поделитесь опытом.
Подпись оформлена в виде серверного агента. Метод VerifySign();
Суть проблемы - последовательный запуск метода VerifySign(); через раз вызывает ошибку совершенно не информативную ошибку Error at reading settings, хотя путь к найстроечному файлу указан в коде. Где библиотека ищет файл - не ясно.

Самое интересное - этот же агент на клиенте отрабатывает всегда и без ошибки.
Структура каталогов с сертификатами и настройками на сервере и клиенте одинаковая.

На сервере Win2008 R2, 64 Bit. Domino Server 9.0.1 FP3

Проблема явно на сервере, но локализовать ее не получается.

От продавца толковой консультации получить не удается


Код:
    public static String VerifySign( String user, String pass ){
        try {
          
            EndUser endUser = new EndUser();
            endUser.SetUIMode(false);
            endUser.SetLanguage(EndUser.EU_EN_LANG);
           
            // указывам путь к настроечному файлу
            endUser.SetSettingsFilePathEx("d:\\E_Sign\\certs\\", EndUser.EU_REG_KEY_ROOT_PATH_HKLM, null);
          
            endUser.Initialize();
            endUser.SetUIMode(false);
      
            System.out.println( endUser.IsInitialized() );
          
            EndUserFileStoreSettings settings = endUser.GetFileStoreSettings();
            System.out.println( settings.GetPath() );          
          
            EndUserSignInfo signInfo = endUser.VerifyFileWithExternalSign( "d:\\Doc.docx", "d:\\Doc.docx.p7s" );      
            EndUserOwnerInfo info = signInfo.GetOwnerInfo();
          
            System.out.println(  info.GetSubjFullName() );
            System.out.println(  info.GetSubjOrg()  );
            System.out.println(  info.GetSubjOrgUnit() );
            System.out.println(  info.GetSubjTitle()  );
          
            System.out.println(  "Готово!"  );
            endUser.Finalize();  
          
            endUser = null;
            signInfo = null;
                      
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return e.getMessage();
        }

        return "Готово!!!";
      
    }
 
Последнее редактирование:
B

Bob84

Файл на сервере точно есть по указанному пути? Какие разрешения установлены для агента, который выполняет этот код на сервере?
Известна строка на которой код падает?
 

garrick

Lotus Team
26.10.2009
1 283
141
Может такое быть, что при начале работы в endUser.SetSettingsFilePathEx() или endUser.Initialize() файл с настройками лочится, а в endUser.Finalize() "отпускается"? И если в первый раз что-то пошло не так, то при повторном запуске файл отстаётся залоченным предыдущим запуском и недоступен программе.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 795
586
как вариант - не оформлять код в агенте, написать, скомпилить, выложить в jvm/lib/ext
обозначить синглтон для контроля ресурсов
еще вариант - декомпилить либу и попытаться написать "нормально" (т.е. файл чтобы не лочился)
 
T

Tarik_ua_79

Подскажите, пожалуйста, при endUser.Initialize(); выкидывает ошибку:

java.lang.Exception: Error at loading interaction library
at com.iit.certificateAuthority.endUser.libraries.signJava.EndUser.CheckLibraryLoad(EndUser.java:121)
at com.iit.certificateAuthority.endUser.libraries.signJava.EndUser.Initialize(EndUser.java:207)
at JavaAgent.test1(JavaAgent.java:84)
at JavaAgent.NotesMain(JavaAgent.java:26)
at lotus.domino.AgentBase.runNotes(Unknown Source)
at lotus.domino.NotesThread.run(Unknown Source)

Не пинайте сильно, в Java не силен :(, где я что забыл добавить или прописать?

Библиотека EUSignJava.jar лежит в папке Notes\jvm\lib\ext. Dll-ки запихнул в нее в \EUSignJava.jar\Libraries\Win\
При старте распаковывает их в папку AppData\Local\Temp\EUSign-x86-1.3.57
Но вылетает на функции EndUser.CheckLibraryLoad, переменная library==null.
Не разобрался где и как прописывать файл настроек. В реестре все прописано, как в мануале.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 795
586
Мы в соцсетях: