private Reference findReferenceFromURI(List<Reference> refs, String referenceURI) { for (Reference ref : refs) { if (ref.getURI().equals(referenceURI)) { LOG.debug("Found \"" + referenceURI + "\" ds:reference"); return ref; } } return null; }
public InvalidSignatureReason(Reference reference) { invalidSignature = InvalidSignature.BAD_REFERENCE; StringBuilder sb = new StringBuilder(); sb.append("Bad reference"); String id = reference.getId(); if (id != null && (id = id.trim()).length() > 0) sb.append(" with Id '").append(id).append("'"); String uri = reference.getURI(); if (uri != null && (uri = uri.trim()).length() > 0) { if (id != null && id.length() > 0) sb.append(" and URI = '"); else sb.append(" with URI = '"); sb.append(uri).append("'"); } reason = sb.toString(); }
private void checkIntegrity(XMLSignature xmlSignature, byte[] document, byte[] originalDocument) throws IOException { if (null != originalDocument) { throw new IllegalArgumentException( "cannot perform original document verifications"); } Set<String> dsReferenceUris = new HashSet<String>(); SignedInfo signedInfo = xmlSignature.getSignedInfo(); @SuppressWarnings("unchecked") List<Reference> references = signedInfo.getReferences(); for (Reference reference : references) { String referenceUri = reference.getURI(); dsReferenceUris.add(referenceUri); } ZipInputStream odfZipInputStream = new ZipInputStream( new ByteArrayInputStream(document)); ZipEntry zipEntry; while (null != (zipEntry = odfZipInputStream.getNextEntry())) { if (false == ODFUtil.isToBeSigned(zipEntry)) { continue; } String uri = zipEntry.getName().replaceAll(" ", "%20"); if (false == dsReferenceUris.contains(uri)) { LOG.warn("no ds:Reference for ODF entry: " + zipEntry.getName()); throw new RuntimeException("no ds:Reference for ODF entry: " + zipEntry.getName()); } } } }
@SuppressWarnings("unchecked") public static String findReferenceUri(XMLSignature xmlSignature, String type) { SignedInfo signedInfo = xmlSignature.getSignedInfo(); List<Reference> references = signedInfo.getReferences(); for (Reference reference : references) { if (type.equals(reference.getType())) { return reference.getURI(); } } return null; }
@Override public boolean equals(Object o) { if (this == o) { return true; } if (!(o instanceof Reference)) { return false; } Reference oref = (Reference)o; boolean idsEqual = id == null ? oref.getId() == null : id.equals(oref.getId()); boolean urisEqual = uri == null ? oref.getURI() == null : uri.equals(oref.getURI()); boolean typesEqual = type == null ? oref.getType() == null : type.equals(oref.getType()); boolean digestValuesEqual = Arrays.equals(digestValue, oref.getDigestValue()); return digestMethod.equals(oref.getDigestMethod()) && idsEqual && urisEqual && typesEqual && allTransforms.equals(oref.getTransforms()) && digestValuesEqual; }
private static Data getData(Reference reference,DOMValidateContext context) throws Exception{ final String uri = reference.getURI(); URIReference uriRef = new URIReference(){ public String getURI(){ return uri; } public String getType(){ return null; } }; Data inputData = DSigResolver.getInstance().dereference(uriRef, context); if(inputData instanceof AttachmentData){ return inputData; } List transformList = reference.getTransforms(); Iterator itr = transformList.iterator(); while(itr.hasNext()){ Transform transform = (Transform)itr.next(); inputData = getData(transform,inputData,context); } return inputData; }
for (Reference ref : references) log.trace("[Ref id=" + ref.getId() + ":uri=" + ref.getURI() + "]validity status:" + ref.validate(valContext));
for (Reference ref : references) log.trace("[Ref id=" + ref.getId() + ":uri=" + ref.getURI() + "]validity status:" + ref.validate(valContext));
Reference reference = (Reference)refObject; if ("".equals(reference.getURI()) || reference.getURI().equals(samlAssertion.getId()) || reference.getURI().equals("#" + samlAssertion.getId())) { WSDataRef ref = new WSDataRef(); ref.setWsuId(reference.getURI()); ref.setProtectedElement(token); ref.setAlgorithm(signatureMethod);
Reference reference = (Reference)refObject; if ("".equals(reference.getURI()) || reference.getURI().equals(samlAssertion.getId()) || reference.getURI().equals("#" + samlAssertion.getId())) { WSDataRef ref = new WSDataRef(); ref.setWsuId(reference.getURI()); ref.setProtectedElement(token); ref.setAlgorithm(signatureMethod);
Reference reference = (Reference)refObject; if ("".equals(reference.getURI()) || reference.getURI().equals(samlAssertion.getId()) || reference.getURI().equals("#" + samlAssertion.getId())) { WSDataRef ref = new WSDataRef(); ref.setWsuId(reference.getURI()); ref.setProtectedElement(token); ref.setAlgorithm(signatureMethod);
String uri = reference.getURI(); Element element = callbackLookup.getElement(uri, null, true); if (element == null) {
String uri = reference.getURI(); Element element = callbackLookup.getElement(uri, null, true); if (element == null) {
public void constructSignaturePolicy(SignedInfo signedInfo, boolean isBSP,SignaturePolicy policy){ List referencesList = signedInfo.getReferences(); //SignatureMethod sm = signedInfo.getSignatureMethod(); CanonicalizationMethod cm = signedInfo.getCanonicalizationMethod(); policy.isBSP(isBSP); SignaturePolicy.FeatureBinding featureBinding = (SignaturePolicy.FeatureBinding )policy.getFeatureBinding(); featureBinding.setCanonicalizationAlgorithm(cm.getAlgorithm()); Iterator itr = referencesList.iterator(); while(itr.hasNext()){ Reference ref = (Reference) itr.next(); SignatureTarget.Transform transform = getSignatureTransform(ref); SignatureTarget target = new SignatureTarget(); target.isBSP(isBSP); if(transform != null){ target.addTransform(transform); } target.setDigestAlgorithm(ref.getDigestMethod().getAlgorithm()); if(ref.getURI().length() >0){ target.setValue(SecurableSoapMessage.getIdFromFragmentRef(ref.getURI())); }else{ target.setValue(ref.getURI()); } target.setType(SignatureTarget.TARGET_TYPE_VALUE_URI); featureBinding.addTargetBinding(target); } }
logger.trace("[Ref id=" + ref.getId() + ":uri=" + ref.getURI() + "]validity status:" + ref.validate(valContext));
logger.trace("[Ref id=" + ref.getId() + ":uri=" + ref.getURI() + "]validity status:" + ref.validate(valContext));
logger.trace("[Ref id=" + ref.getId() + ":uri=" + ref.getURI() + "]validity status:" + ref.validate(valContext));