JDeveloper не обнаруживает, что SignerEPES имеет xades4j.jar

Я использую код @lgoncalves для подписи XML с помощью XADES4J EPES. Но, однако, jdeveloper не находит (SignerEPES), когда у меня есть xades4j.jar в моем пути к классам. Я даю вам изображение моей библиотеки и код:

Библиотека проектов

private static void signBes(Document doc) throws XadesProfileResolutionException, XAdES4jException,
                                                 KeyStoreException {
    //Document doc = getTestDocument();
    Element elemToSign = doc.getDocumentElement();
    
    SignaturePolicyInfoProvider policyInfoProvider = new SignaturePolicyInfoProvider()
    {
        @Override
        public SignaturePolicyBase getSignaturePolicy()
        {
            return new SignaturePolicyIdentifierProperty(
                    new ObjectIdentifier("oid:/1.2.4.0.9.4.5", IdentifierType.OIDAsURI, "Policy description"),
                    new ByteArrayInputStream("Test policy input stream".getBytes()))
                .withLocationUrl(""); //<- I really don't know what to put right here.
        }
    };        

    KeyingDataProvider kdp = new FileSystemKeyStoreKeyingDataProvider("pkcs12","C:/****/****.pfx",new FirstCertificateSelector(),new DirectPasswordProvider("****"),new DirectPasswordProvider("****"),true);

    SignerEPES signer = (SignerEPES) new XadesEpesSigningProfile(kdp, policyInfoProvider).newSigner();
    new Enveloped(signer).sign(elemToSign); 

}

Ссылка на образец кода на GitHub: https://github.com/luisgoncalves/xades4j/blob/master/src/test/java/xades4j/production/SignerEPESTest.java

РЕДАКТИРОВАТЬ: я пытался принудительно выполнить импорт, например (import xades4j.production.SignerEPES), но IDE сообщает, что к нему нельзя получить доступ из внешнего пакета, но на самом деле не знаю, что это означает


person Pau Haro    schedule 16.02.2021    source источник


Ответы (1)


SignerEPES - это частный класс пакета, поэтому код приложения не сможет его импортировать. Тесты используют его только для того, чтобы убедиться, что возвращается правильный тип.

В вашем коде вы можете просто использовать XadesSigner как тип вашей переменной.

person lgoncalves    schedule 16.02.2021