javax.xml.crypto.dsig.Reference类的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(14.5k)|赞(0)|评价(0)|浏览(154)

本文整理了Java中javax.xml.crypto.dsig.Reference类的一些代码示例,展示了Reference类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Reference类的具体详情如下:
包路径:javax.xml.crypto.dsig.Reference
类名称:Reference

Reference介绍

[英]A representation of the Reference element as defined in the W3C Recommendation for XML-Signature Syntax and Processing. The XML schema is defined as: <<$0$>>

A Reference instance may be created by invoking one of the XMLSignatureFactory#newReference methods of the XMLSignatureFactory class; for example:

  1. XMLSignatureFactory factory = XMLSignatureFactory.getInstance("DOM");
  2. Reference ref = factory.newReference
  3. ("http://www.ietf.org/rfc/rfc3275.txt",
  4. factory.newDigestMethod(DigestMethod.SHA1, null));

[中][W3C Recommendation for XML-Signature Syntax and Processing](http://www.w3.org/TR/xmldsig-core/)中定义的Reference元素的表示形式。XML模式定义为:<<$0$>>
Reference实例可以通过调用XMLSignatureFactory类的一个XMLSignatureFactory#newReference方法来创建;例如:

  1. XMLSignatureFactory factory = XMLSignatureFactory.getInstance("DOM");
  2. Reference ref = factory.newReference
  3. ("http://www.ietf.org/rfc/rfc3275.txt",
  4. factory.newDigestMethod(DigestMethod.SHA1, null));

代码示例

代码示例来源:origin: org.apache.poi/poi-ooxml

  1. public int compare(Reference o1, Reference o2) {
  2. return o1.getURI().compareTo(o2.getURI());
  3. }
  4. });

代码示例来源:origin: org.apache.poi/poi-ooxml

  1. xmlSignature.sign(xmlSignContext);
  2. List<Reference> manifestReferences = manifest.getReferences();
  3. for (Reference manifestReference : manifestReferences) {
  4. if (manifestReference.getDigestValue() != null) {
  5. continue;
  6. List<Reference> signedInfoReferences = signedInfo.getReferences();
  7. for (Reference signedInfoReference : signedInfoReferences) {
  8. DOMReference domReference = (DOMReference)signedInfoReference;

代码示例来源:origin: org.picketlink/picketlink-fed

  1. boolean coreValidity = signature.validate(valContext);
  2. boolean sv = signature.getSignatureValue().validate(valContext);
  3. log.trace("Signature validation status: " + sv);
  4. List<Reference> references = signature.getSignedInfo().getReferences();
  5. for (Reference ref : references)
  6. log.trace("[Ref id=" + ref.getId() + ":uri=" + ref.getURI() + "]validity status:"
  7. + ref.validate(valContext));

代码示例来源:origin: se.vgregion.commons-util/commons-util-core-bc-composite-security

  1. boolean coreValidity = signature.validate(valContext);
  2. boolean sv = signature.getSignatureValue().validate(valContext);
  3. System.out.println("signature validation status: " + sv);
  4. Iterator i = signature.getSignedInfo().getReferences().iterator();
  5. for (int j=0; i.hasNext(); j++) {
  6. boolean refValid =
  7. ((Reference) i.next()).validate(valContext);
  8. System.out.println("ref["+j+"] validity status: " + refValid);

代码示例来源:origin: org.apache.juddi/uddi-tck-base

  1. valContext.setProperty("javax.xml.crypto.dsig.cacheReference", Boolean.TRUE);
  2. XMLSignature signature = fac.unmarshalXMLSignature(valContext);
  3. boolean coreValidity = signature.validate(valContext);
  4. boolean sv = signature.getSignatureValue().validate(valContext);
  5. System.out.println("signature validation status: " + sv);
  6. Iterator<Reference> i = signature.getSignedInfo().getReferences().iterator();
  7. System.out.println("---------------------------------------------");
  8. for (int j = 0; i.hasNext(); j++) {
  9. Reference ref = (Reference) i.next();
  10. boolean refValid = ref.validate(valContext);
  11. System.out.println("ref[" + j + "] validity status: " + refValid);
  12. System.out.println("Ref type: " + ref.getType() + ", URI: " + ref.getURI());
  13. for (Object xform : ref.getTransforms()) {
  14. System.out.println("Transform: " + xform);
  15. String calcDigValStr = digestToString(ref.getCalculatedDigestValue());
  16. String expectedDigValStr = digestToString(ref.getDigestValue());
  17. System.out.println(" Calc Digest: " + calcDigValStr);
  18. System.out.println("Expected Digest: " + expectedDigValStr);
  19. InputStream is = ref.getDigestInputStream();
  20. InputStreamReader isr = new InputStreamReader(is);
  21. BufferedReader br = new BufferedReader(isr);

代码示例来源:origin: org.apache.wss4j/wss4j-ws-security-dom

  1. xmlSignature.getSignedInfo().getSignatureMethod().getAlgorithm();
  2. for (Object refObject : xmlSignature.getSignedInfo().getReferences()) {
  3. Reference reference = (Reference)refObject;
  4. if ("".equals(reference.getURI())
  5. || reference.getURI().equals(samlAssertion.getId())
  6. || reference.getURI().equals("#" + samlAssertion.getId())) {
  7. WSDataRef ref = new WSDataRef();
  8. ref.setWsuId(reference.getURI());
  9. ref.setProtectedElement(token);
  10. ref.setAlgorithm(signatureMethod);
  11. ref.setDigestAlgorithm(reference.getDigestMethod().getAlgorithm());
  12. ref.setDigestValue(reference.getDigestValue());
  13. List<Transform> transforms = (List<Transform>)reference.getTransforms();
  14. List<String> transformAlgorithms = new ArrayList<>(transforms.size());
  15. for (Transform transform : transforms) {

代码示例来源:origin: be.fedict.eid-dss/eid-dss-document-odf

  1. private void checkIntegrity(XMLSignature xmlSignature, byte[] document,
  2. byte[] originalDocument) throws IOException {
  3. if (null != originalDocument) {
  4. throw new IllegalArgumentException(
  5. "cannot perform original document verifications");
  6. }
  7. Set<String> dsReferenceUris = new HashSet<String>();
  8. SignedInfo signedInfo = xmlSignature.getSignedInfo();
  9. @SuppressWarnings("unchecked")
  10. List<Reference> references = signedInfo.getReferences();
  11. for (Reference reference : references) {
  12. String referenceUri = reference.getURI();
  13. dsReferenceUris.add(referenceUri);
  14. }
  15. ZipInputStream odfZipInputStream = new ZipInputStream(
  16. new ByteArrayInputStream(document));
  17. ZipEntry zipEntry;
  18. while (null != (zipEntry = odfZipInputStream.getNextEntry())) {
  19. if (false == ODFUtil.isToBeSigned(zipEntry)) {
  20. continue;
  21. }
  22. String uri = zipEntry.getName().replaceAll(" ", "%20");
  23. if (false == dsReferenceUris.contains(uri)) {
  24. LOG.warn("no ds:Reference for ODF entry: " + zipEntry.getName());
  25. throw new RuntimeException("no ds:Reference for ODF entry: "
  26. + zipEntry.getName());
  27. }
  28. }
  29. }
  30. }

代码示例来源:origin: org.apache.ws.security/wss4j

  1. xmlSignature.getSignedInfo().getSignatureMethod().getAlgorithm();
  2. checkSignatureMethod(signatureMethod);
  3. xmlSignature.getSignedInfo().getCanonicalizationMethod().getAlgorithm();
  4. checkC14nAlgorithm(c14nMethod);
  5. for (Object refObject : xmlSignature.getSignedInfo().getReferences()) {
  6. Reference reference = (Reference)refObject;
  7. String digestMethod = reference.getDigestMethod().getAlgorithm();
  8. Set<String> allowedDigestAlgorithms = algorithmSuite.getDigestAlgorithms();
  9. if (!allowedDigestAlgorithms.isEmpty()
  10. for (int i = 0; i < reference.getTransforms().size(); i++) {
  11. Transform transform = (Transform)reference.getTransforms().get(i);
  12. String algorithm = transform.getAlgorithm();
  13. Set<String> allowedTransformAlgorithms =

代码示例来源:origin: be.fedict.eid-dss/eid-dss-document-zip

  1. SignedInfo signedInfo = xmlSignature.getSignedInfo();
  2. @SuppressWarnings("unchecked")
  3. List<Reference> references = signedInfo.getReferences();
  4. Set<String> referenceUris = new HashSet<String>();
  5. for (Reference reference : references) {
  6. String referenceUri = reference.getURI();
  7. referenceUris.add(URLDecoder.decode(referenceUri, "UTF-8"));
  8. if (null != reference.getType()) {
  9. String digestAlgo = reference.getDigestMethod()
  10. .getAlgorithm();
  11. LOG.debug("ds:Reference digest algo: " + digestAlgo);
  12. String referenceUri = reference.getURI();
  13. LOG.debug("ds:Reference URI: " + referenceUri);
  14. byte[] digestValue = reference.getDigestValue();
  15. Set<String> referencedEntryNames = new HashSet<String>();
  16. for (Reference reference : references) {
  17. if (null != reference.getType()) {
  18. continue;
  19. referencedEntryNames.add(reference.getURI());

代码示例来源:origin: org.apache.ws.security/wss4j

  1. ) throws WSSecurityException {
  2. List<WSDataRef> protectedRefs = new java.util.ArrayList<WSDataRef>();
  3. List<?> referencesList = signedInfo.getReferences();
  4. for (int i = 0; i < referencesList.size(); i++) {
  5. Reference siRef = (Reference)referencesList.get(i);
  6. String uri = siRef.getURI();
  7. NodeSetData data = (NodeSetData)siRef.getDereferencedData();
  8. if (data != null) {
  9. java.util.Iterator<?> iter = data.iterator();
  10. ref.setWsuId(uri);
  11. ref.setProtectedElement(se);
  12. ref.setAlgorithm(signedInfo.getSignatureMethod().getAlgorithm());
  13. ref.setDigestAlgorithm(siRef.getDigestMethod().getAlgorithm());
  14. List<Transform> transforms = (List<Transform>)siRef.getTransforms();
  15. List<String> transformAlgorithms = new ArrayList<String>(transforms.size());
  16. for (Transform transform : transforms) {

代码示例来源:origin: org.apache.ws.security/wss4j

  1. ) throws WSSecurityException {
  2. for (Object object : xmlSignature.getObjects()) {
  3. if (object instanceof XMLObject) {
  4. XMLObject xmlObject = (XMLObject)object;
  5. xmlSignature.getSignedInfo().getCanonicalizationMethod().getAlgorithm();
  6. if (!WSConstants.C14N_EXCL_OMIT_COMMENTS.equals(c14nMethod)) {
  7. throw new WSSecurityException(WSSecurityException.INVALID_SECURITY, "badC14nAlgo");
  8. for (Object refObject : xmlSignature.getSignedInfo().getReferences()) {
  9. Reference reference = (Reference)refObject;
  10. if (reference.getTransforms().isEmpty()) {
  11. throw new WSSecurityException(WSSecurityException.INVALID_SECURITY, "R5416");
  12. for (int i = 0; i < reference.getTransforms().size(); i++) {
  13. Transform transform = (Transform)reference.getTransforms().get(i);
  14. String algorithm = transform.getAlgorithm();
  15. if (!(WSConstants.C14N_EXCL_OMIT_COMMENTS.equals(algorithm)
  16. throw new WSSecurityException(WSSecurityException.INVALID_SECURITY, "R5423");
  17. if (i == (reference.getTransforms().size() - 1)
  18. && (!(WSConstants.C14N_EXCL_OMIT_COMMENTS.equals(algorithm)
  19. || STRTransform.TRANSFORM_URI.equals(algorithm)

代码示例来源:origin: be.fedict.eid-dss/eid-dss-document-asic

  1. XMLSignature xmlSignature = xmlSignatureFactory
  2. .unmarshalXMLSignature(domValidateContext);
  3. boolean valid = xmlSignature.validate(domValidateContext);
  4. if (!valid) {
  5. continue;
  6. SignedInfo signedInfo = xmlSignature.getSignedInfo();
  7. @SuppressWarnings("unchecked")
  8. List<Reference> references = signedInfo.getReferences();
  9. Set<String> referenceUris = new HashSet<String>();
  10. for (Reference reference : references) {
  11. String referenceUri = reference.getURI();
  12. referenceUris.add(URLDecoder.decode(referenceUri, "UTF-8"));

代码示例来源:origin: be.fedict.eid-dss/eid-dss-spi-utils

  1. @SuppressWarnings("unchecked")
  2. public static String findReferenceUri(XMLSignature xmlSignature, String type) {
  3. SignedInfo signedInfo = xmlSignature.getSignedInfo();
  4. List<Reference> references = signedInfo.getReferences();
  5. for (Reference reference : references) {
  6. if (type.equals(reference.getType())) {
  7. return reference.getURI();
  8. }
  9. }
  10. return null;
  11. }

代码示例来源:origin: org.apache.santuario/xmlsec

  1. @Override
  2. public boolean equals(Object o) {
  3. if (this == o) {
  4. return true;
  5. }
  6. if (!(o instanceof Reference)) {
  7. return false;
  8. }
  9. Reference oref = (Reference)o;
  10. boolean idsEqual = id == null ? oref.getId() == null
  11. : id.equals(oref.getId());
  12. boolean urisEqual = uri == null ? oref.getURI() == null
  13. : uri.equals(oref.getURI());
  14. boolean typesEqual = type == null ? oref.getType() == null
  15. : type.equals(oref.getType());
  16. boolean digestValuesEqual =
  17. Arrays.equals(digestValue, oref.getDigestValue());
  18. return digestMethod.equals(oref.getDigestMethod()) && idsEqual &&
  19. urisEqual && typesEqual &&
  20. allTransforms.equals(oref.getTransforms()) && digestValuesEqual;
  21. }

代码示例来源:origin: com.hynnet/xws-security

  1. public void constructSignaturePolicy(SignedInfo signedInfo, boolean isBSP,SignaturePolicy policy){
  2. List referencesList = signedInfo.getReferences();
  3. //SignatureMethod sm = signedInfo.getSignatureMethod();
  4. CanonicalizationMethod cm = signedInfo.getCanonicalizationMethod();
  5. policy.isBSP(isBSP);
  6. SignaturePolicy.FeatureBinding featureBinding = (SignaturePolicy.FeatureBinding )policy.getFeatureBinding();
  7. featureBinding.setCanonicalizationAlgorithm(cm.getAlgorithm());
  8. Iterator itr = referencesList.iterator();
  9. while(itr.hasNext()){
  10. Reference ref = (Reference) itr.next();
  11. SignatureTarget.Transform transform = getSignatureTransform(ref);
  12. SignatureTarget target = new SignatureTarget();
  13. target.isBSP(isBSP);
  14. if(transform != null){
  15. target.addTransform(transform);
  16. }
  17. target.setDigestAlgorithm(ref.getDigestMethod().getAlgorithm());
  18. if(ref.getURI().length() >0){
  19. target.setValue(SecurableSoapMessage.getIdFromFragmentRef(ref.getURI()));
  20. }else{
  21. target.setValue(ref.getURI());
  22. }
  23. target.setType(SignatureTarget.TARGET_TYPE_VALUE_URI);
  24. featureBinding.addTargetBinding(target);
  25. }
  26. }

代码示例来源:origin: be.fedict.eid-dss/eid-dss-document-xml

  1. TransformationException, XMLSignatureException,
  2. ReferenceNotInitializedException, Base64DecodingException {
  3. SignedInfo signedInfo = xmlSignature.getSignedInfo();
  4. @SuppressWarnings("unchecked")
  5. List<Reference> references = signedInfo.getReferences();
  6. for (Reference reference : references) {
  7. LOG.debug("reference type: " + reference.getType());
  8. if (null != reference.getType()) {
  9. String digestAlgo = reference.getDigestMethod().getAlgorithm();
  10. LOG.debug("ds:Reference digest algo: " + digestAlgo);
  11. byte[] digestValue = reference.getDigestValue();

代码示例来源:origin: be.fedict.eid-applet/eid-applet-service-signer

  1. boolean valid = xmlSignature.validate(domValidateContext);
  2. List<XMLObject> objects = xmlSignature.getObjects();
  3. XMLObject idPackageObject = null;
  4. for (XMLObject object : objects) {
  5. Set<String> remainingIdPackageObjectReferenceUris = new HashSet<String>();
  6. for (Reference idPackageObjectReference : idPackageObjectReferences) {
  7. idPackageObjectReferenceUris.add(idPackageObjectReference.getURI());
  8. remainingIdPackageObjectReferenceUris.add(idPackageObjectReference.getURI());

代码示例来源:origin: org.apache.santuario/xmlsec

  1. for (int i = 0, size = refs.size(); validateRefs && i < size; i++) {
  2. Reference ref = refs.get(i);
  3. boolean refValid = ref.validate(vc);
  4. LOG.debug("Reference [{}] is valid: {}", ref.getURI(), refValid);
  5. validateRefs &= refValid;
  6. for (int k = 0; validateMans && k < rsize; k++) {
  7. Reference ref = manRefs.get(k);
  8. boolean refValid = ref.validate(vc);
  9. LOG.debug(
  10. "Manifest ref [{}] is valid: {}", ref.getURI(), refValid
  11. );
  12. validateMans &= refValid;

代码示例来源:origin: net.java.xades/jxades

  1. public InvalidSignatureReason(Reference reference)
  2. {
  3. invalidSignature = InvalidSignature.BAD_REFERENCE;
  4. StringBuilder sb = new StringBuilder();
  5. sb.append("Bad reference");
  6. String id = reference.getId();
  7. if (id != null && (id = id.trim()).length() > 0)
  8. sb.append(" with Id '").append(id).append("'");
  9. String uri = reference.getURI();
  10. if (uri != null && (uri = uri.trim()).length() > 0)
  11. {
  12. if (id != null && id.length() > 0)
  13. sb.append(" and URI = '");
  14. else
  15. sb.append(" with URI = '");
  16. sb.append(uri).append("'");
  17. }
  18. reason = sb.toString();
  19. }

代码示例来源:origin: be.fedict.eid-applet/eid-applet-service-signer

  1. List<Reference> manifestReferences = manifest.getReferences();
  2. for (Reference manifestReference : manifestReferences) {
  3. if (null != manifestReference.getDigestValue()) {
  4. continue;
  5. List<Reference> signedInfoReferences = signedInfo.getReferences();
  6. for (Reference signedInfoReference : signedInfoReferences) {
  7. DOMReference domReference = (DOMReference) signedInfoReference;

相关文章