JDeveloper 找不到具有 xades4j.jar 的 SignerEPES
JDeveloper don't find SignerEPES having xades4j.jar
我正在使用@lgoncalves 代码通过 XADES4J EPES 签署 XML。但是,当我的类路径上有 xades4j.jar 时,jdeveloper 找不到 (SignerEPES)。我给你我图书馆的图片和代码:
Project Library
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);
}
Link 到 GitHub 上的示例代码:https://github.com/luisgoncalves/xades4j/blob/master/src/test/java/xades4j/production/SignerEPESTest.java
编辑:
我试图像 (import xades4j.production.SignerEPES) 那样强制导入,但是 IDE 说“无法从外部包访问”但真的不知道那是什么意思
SignerEPES
是包私有 class,因此应用程序代码将无法导入它。测试使用它只是为了确保返回正确的类型。
在您的代码中,您可以只使用 XadesSigner
作为变量的类型。
我正在使用@lgoncalves 代码通过 XADES4J EPES 签署 XML。但是,当我的类路径上有 xades4j.jar 时,jdeveloper 找不到 (SignerEPES)。我给你我图书馆的图片和代码:
Project Library
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);
}
Link 到 GitHub 上的示例代码:https://github.com/luisgoncalves/xades4j/blob/master/src/test/java/xades4j/production/SignerEPESTest.java
编辑: 我试图像 (import xades4j.production.SignerEPES) 那样强制导入,但是 IDE 说“无法从外部包访问”但真的不知道那是什么意思
SignerEPES
是包私有 class,因此应用程序代码将无法导入它。测试使用它只是为了确保返回正确的类型。
在您的代码中,您可以只使用 XadesSigner
作为变量的类型。