当前位置: 首页>>代码示例>>Java>>正文


Java XMLSignContext.setURIDereferencer方法代码示例

本文整理汇总了Java中javax.xml.crypto.dsig.XMLSignContext.setURIDereferencer方法的典型用法代码示例。如果您正苦于以下问题:Java XMLSignContext.setURIDereferencer方法的具体用法?Java XMLSignContext.setURIDereferencer怎么用?Java XMLSignContext.setURIDereferencer使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在javax.xml.crypto.dsig.XMLSignContext的用法示例。


在下文中一共展示了XMLSignContext.setURIDereferencer方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: testJsr105SignatureExternalXML

import javax.xml.crypto.dsig.XMLSignContext; //导入方法依赖的package包/类
@Test
public void testJsr105SignatureExternalXML() throws Exception {
	KeyPair keyPair = PkiTestUtils.generateKeyPair();

	DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
	documentBuilderFactory.setNamespaceAware(true);
	DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
	Document document = documentBuilder.newDocument();
	Element rootElement = document.createElementNS("urn:test", "tns:root");
	rootElement.setAttributeNS(Constants.NamespaceSpecNS, "xmlns:tns", "urn:test");
	document.appendChild(rootElement);
	Element dataElement = document.createElementNS("urn:test", "tns:data");
	dataElement.setAttributeNS(null, "Id", "id-1234");
	dataElement.setTextContent("data to be signed");
	rootElement.appendChild(dataElement);

	XMLSignatureFactory signatureFactory = XMLSignatureFactory.getInstance("DOM", new XMLDSigRI());

	XMLSignContext signContext = new DOMSignContext(keyPair.getPrivate(), document.getDocumentElement());
	signContext.setURIDereferencer(new MyURIDereferencer());
	signContext.putNamespacePrefix(javax.xml.crypto.dsig.XMLSignature.XMLNS, "ds");

	DigestMethod digestMethod = signatureFactory.newDigestMethod(DigestMethod.SHA1, null);

	List<Transform> transforms = new LinkedList<Transform>();
	Transform transform = signatureFactory.newTransform(CanonicalizationMethod.INCLUSIVE,
			(TransformParameterSpec) null);
	transforms.add(transform);
	Reference reference = signatureFactory.newReference("/helloworld.xml", digestMethod, transforms, null, null);

	DOMReference domReference = (DOMReference) reference;
	assertNull(domReference.getCalculatedDigestValue());
	assertNull(domReference.getDigestValue());

	SignatureMethod signatureMethod = signatureFactory.newSignatureMethod(SignatureMethod.RSA_SHA1, null);
	CanonicalizationMethod canonicalizationMethod = signatureFactory.newCanonicalizationMethod(
			CanonicalizationMethod.EXCLUSIVE_WITH_COMMENTS, (C14NMethodParameterSpec) null);
	SignedInfo signedInfo = signatureFactory.newSignedInfo(canonicalizationMethod, signatureMethod,
			Collections.singletonList(reference));

	javax.xml.crypto.dsig.XMLSignature xmlSignature = signatureFactory.newXMLSignature(signedInfo, null);

	DOMXMLSignature domXmlSignature = (DOMXMLSignature) xmlSignature;
	domXmlSignature.marshal(document.getDocumentElement(), "ds", (DOMCryptoContext) signContext);
	domReference.digest(signContext);
	// xmlSignature.sign(signContext);
	// LOG.debug("signed document: " + toString(document));

	Element nsElement = document.createElement("ns");
	nsElement.setAttributeNS(Constants.NamespaceSpecNS, "xmlns:ds", Constants.SignatureSpecNS);
	Node digestValueNode = XPathAPI.selectSingleNode(document, "//ds:DigestValue", nsElement);
	assertNotNull(digestValueNode);
	String digestValueTextContent = digestValueNode.getTextContent();
	LOG.debug("digest value text content: " + digestValueTextContent);
	assertFalse(digestValueTextContent.isEmpty());
}
 
开发者ID:e-Contract,项目名称:eid-applet,代码行数:57,代码来源:AbstractXmlSignatureServiceTest.java

示例2: testJsr105SignatureExternalXMLWithDTD

import javax.xml.crypto.dsig.XMLSignContext; //导入方法依赖的package包/类
@Test
public void testJsr105SignatureExternalXMLWithDTD() throws Exception {
	KeyPair keyPair = PkiTestUtils.generateKeyPair();

	DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
	documentBuilderFactory.setNamespaceAware(true);
	DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
	Document document = documentBuilder.newDocument();
	Element rootElement = document.createElementNS("urn:test", "tns:root");
	rootElement.setAttributeNS(Constants.NamespaceSpecNS, "xmlns:tns", "urn:test");
	document.appendChild(rootElement);
	Element dataElement = document.createElementNS("urn:test", "tns:data");
	dataElement.setAttributeNS(null, "Id", "id-1234");
	dataElement.setTextContent("data to be signed");
	rootElement.appendChild(dataElement);

	XMLSignatureFactory signatureFactory = XMLSignatureFactory.getInstance("DOM", new XMLDSigRI());

	XMLSignContext signContext = new DOMSignContext(keyPair.getPrivate(), document.getDocumentElement());
	signContext.setURIDereferencer(new MyURIDereferencer());
	signContext.putNamespacePrefix(javax.xml.crypto.dsig.XMLSignature.XMLNS, "ds");

	DigestMethod digestMethod = signatureFactory.newDigestMethod(DigestMethod.SHA1, null);

	List<Transform> transforms = new LinkedList<Transform>();
	Transform transform = signatureFactory.newTransform(CanonicalizationMethod.INCLUSIVE,
			(TransformParameterSpec) null);
	LOG.debug("transform type: " + transform.getClass().getName());
	transforms.add(transform);
	Reference reference = signatureFactory.newReference("/bookstore.xml", digestMethod, transforms, null, null);

	DOMReference domReference = (DOMReference) reference;
	assertNull(domReference.getCalculatedDigestValue());
	assertNull(domReference.getDigestValue());

	SignatureMethod signatureMethod = signatureFactory.newSignatureMethod(SignatureMethod.RSA_SHA1, null);
	CanonicalizationMethod canonicalizationMethod = signatureFactory.newCanonicalizationMethod(
			CanonicalizationMethod.EXCLUSIVE_WITH_COMMENTS, (C14NMethodParameterSpec) null);
	SignedInfo signedInfo = signatureFactory.newSignedInfo(canonicalizationMethod, signatureMethod,
			Collections.singletonList(reference));

	javax.xml.crypto.dsig.XMLSignature xmlSignature = signatureFactory.newXMLSignature(signedInfo, null);

	DOMXMLSignature domXmlSignature = (DOMXMLSignature) xmlSignature;
	domXmlSignature.marshal(document.getDocumentElement(), "ds", (DOMCryptoContext) signContext);
	domReference.digest(signContext);
	// xmlSignature.sign(signContext);
	// LOG.debug("signed document: " + toString(document));

	Element nsElement = document.createElement("ns");
	nsElement.setAttributeNS(Constants.NamespaceSpecNS, "xmlns:ds", Constants.SignatureSpecNS);
	Node digestValueNode = XPathAPI.selectSingleNode(document, "//ds:DigestValue", nsElement);
	assertNotNull(digestValueNode);
	String digestValueTextContent = digestValueNode.getTextContent();
	LOG.debug("digest value text content: " + digestValueTextContent);
	assertFalse(digestValueTextContent.isEmpty());
}
 
开发者ID:e-Contract,项目名称:eid-applet,代码行数:58,代码来源:AbstractXmlSignatureServiceTest.java


注:本文中的javax.xml.crypto.dsig.XMLSignContext.setURIDereferencer方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。