Refine search
Document doc = DocumentHelper.readDocument(signaturePart.getInputStream()); NodeList nl = (NodeList)xpath.compile("//*[@Id]").evaluate(doc, XPathConstants.NODESET); final int length = nl.getLength(); for (int i=0; i<length; i++) { ((Element)nl.item(i)).setIdAttribute("Id", true); DOMValidateContext domValidateContext = new DOMValidateContext(keySelector, doc); domValidateContext.setProperty(XMLSEC_VALIDATE_MANIFEST, Boolean.TRUE); domValidateContext.setURIDereferencer(signatureConfig.getUriDereferencer()); XMLSignature xmlSignature = xmlSignatureFactory.unmarshalXMLSignature(domValidateContext); boolean valid = xmlSignature.validate(domValidateContext);
Element signature = (Element) xp.evaluate("//dsig:Signature", root, XPathConstants.NODE); DOMValidateContext ctx = new DOMValidateContext(_cert.getPublicKey(), signature); NodeList idAttributes = (NodeList) xp.evaluate("//*[@ID]", root, XPathConstants.NODESET); for (int i = 0; i < idAttributes.getLength(); i++) { ctx.setIdAttributeNS((Element) idAttributes.item(i), null, "ID"); } XMLSignatureFactory sigF = XMLSignatureFactory.getInstance("DOM"); XMLSignature xmlSignature = sigF.unmarshalXMLSignature(ctx); if (xmlSignature.validate(ctx)) { ...
DOMValidateContext valContext = new DOMValidateContext(publicKey, nl.item(0)); NodeList nlb = doc.getElementsByTagNameNS("http://schemas.xmlsoap.org/soap/envelope/", "Body"); valContext.putNamespacePrefix("http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd", "wsu"); Node body = nlb.item(0); valContext.setIdAttributeNS((Element)body, "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd", "id");
public static boolean verifySignatureForXMLDocument(Element element) { boolean validity = true; // System.out.println("*** verifySignatureForXMLDocument ***"); NodeList nl = element.getElementsByTagName("ds:Signature"); if (nl != null) { // validity = verifySignature(nl); System.out.println("Node List Length: " +nl.getLength()); try { DOMValidateContext valContext = new DOMValidateContext(new PublicKeySelector(), nl.item(0)); if (! verifySignature(nl)) validity = false; } catch (Exception e) { System.out.println("DOMValidateContext Error: " + e.getMessage()); } } else validity = false; return validity; }
final DOMValidateContext aValidationContext = new DOMValidateContext (aKeySelector, aSignatureElement); try aSignature = aSignatureFactory.unmarshalXMLSignature (aValidationContext); if (aSignature.validate (aValidationContext)) return XMLDSigValidationResult.createSuccess (); if (!aSignature.getSignatureValue ().validate (aValidationContext)) return XMLDSigValidationResult.createSignatureError (); final Iterator <?> it = aSignature.getSignedInfo ().getReferences ().iterator (); for (int nIndex = 0; it.hasNext (); nIndex++)
new DOMValidateContext(KeySelectorImpl.getInstance(), signElement); XMLSignatureFactory signatureFactory = WSSPolicyConsumerImpl.getInstance().getSignatureFactory(); XMLSignature signature = signatureFactory.unmarshalXMLSignature(validationContext); validationContext.setURIDereferencer(DSigResolver.getInstance()); validationContext.put(MessageConstants.WSS_PROCESSING_CONTEXT, context); boolean coreValidity = signature.validate(validationContext); if (coreValidity == false){ boolean sv = signature.getSignatureValue().validate(validationContext); logger.log(Level.FINEST,"Signature validation status: " + sv); Iterator i = signature.getSignedInfo().getReferences().iterator(); for (int j=0; i.hasNext(); j++) { Reference ref = (Reference) i.next();
private static X509Certificate getVerifiedSignatureSigner(URL odfUrl, Node signatureNode) throws MarshalException, XMLSignatureException { if (null == odfUrl) { throw new IllegalArgumentException("odfUrl is null"); } KeyInfoKeySelector keySelector = new KeyInfoKeySelector(); DOMValidateContext domValidateContext = new DOMValidateContext(keySelector, signatureNode); ODFURIDereferencer dereferencer = new ODFURIDereferencer(odfUrl); domValidateContext.setURIDereferencer(dereferencer); XMLSignatureFactory xmlSignatureFactory = XMLSignatureFactory.getInstance(); LOG.debug("java version: " + System.getProperty("java.version")); /* * Requires Java 6u10 because of a bug. See also: * http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6696582 */ XMLSignature xmlSignature = xmlSignatureFactory.unmarshalXMLSignature(domValidateContext); boolean validity = xmlSignature.validate(domValidateContext); if (false == validity) { LOG.debug("invalid signature"); return null; } // TODO: check what has been signed. X509Certificate signer = keySelector.getCertificate(); if (null == signer) { throw new IllegalStateException("signer X509 certificate is null"); } LOG.debug("signer: " + signer.getSubjectX500Principal()); return signer; }
public XMLSignature getXMLSignature() throws MarshalException { DOMValidateContext valContext = new DOMValidateContext(getKeySelector(), signatureElement); XMLSignatureFactory fac = getXMLSignatureFactory(); return fac.unmarshalXMLSignature(valContext); }
... Node sigNode = nodeList.item(0); DOMValidateContext context = new DOMValidateContext(keySelector, sigNode); context.setIdAttributeNS((Element) sigNode.getParentNode(), null, "ID"); XMLSignatureFactory factory = XMLSignatureFactory.getInstance(); try { XMLSignature signature = factory.unmarshalXMLSignature(context); if (!signature.validate(context)) { // works now! ...
/** * If this method finds an attribute with names ID (case-insensitive) then declares it to be a user-determined ID attribute. * * @param childElement */ public static void setIDIdentifier(final DOMValidateContext context, final Element childElement) { final NamedNodeMap attributes = childElement.getAttributes(); for (int jj = 0; jj < attributes.getLength(); jj++) { final Node item = attributes.item(jj); final String localName = item.getNodeName(); if (localName != null) { final String id = localName.toLowerCase(); if (ID_ATTRIBUTE_NAME.equals(id)) { context.setIdAttributeNS(childElement, null, localName); break; } } } }
XMLValidateContext context = new DOMValidateContext(key, elem); context.setProperty("javax.xml.crypto.dsig.cacheReference", Boolean.TRUE); context.setProperty("org.apache.jcp.xml.dsig.secureValidation", Boolean.TRUE); XMLSignature xmlSignature = signatureFactory.unmarshalXMLSignature(context); if (data.getWssConfig().isWsiBSPCompliant()) { checkBSPCompliance(xmlSignature); testMessageReplay(elem, xmlSignature.getSignatureValue().getValue(), key, data, wsDocInfo); boolean signatureOk = xmlSignature.validate(context); if (signatureOk) { return xmlSignature; LOG.debug("XML Signature verification has failed"); boolean signatureValidationCheck = xmlSignature.getSignatureValue().validate(context); LOG.debug("Signature Validation check: " + signatureValidationCheck); java.util.Iterator<?> referenceIterator =
return 0; DOMValidateContext validationContext = new DOMValidateContext(KeySelectorImpl.getInstance(), signElement); XMLSignatureFactory signatureFactory = WSSPolicyConsumerImpl.getInstance().getSignatureFactory(); XMLSignature signature = signatureFactory.unmarshalXMLSignature(validationContext); scList.add(Base64.encode(signature.getSignatureValue().getValue())); validationContext.setURIDereferencer(DSigResolver.getInstance()); validationContext.put(MessageConstants.WSS_PROCESSING_CONTEXT, context); SignaturePolicy currentMessagePolicy = null; if(context.getMode() == FilterProcessingContext.ADHOC || boolean coreValidity = signature.validate(validationContext); SecurityPolicy securityPolicy = context.getSecurityPolicy(); boolean sv = signature.getSignatureValue().validate(validationContext); logger.log(Level.FINEST,"Signature validation status: " + sv);
XMLValidateContext context = new DOMValidateContext(key, sig.getDOM()); context.setProperty("org.apache.jcp.xml.dsig.secureValidation", Boolean.TRUE); context.setProperty("org.jcp.xml.dsig.secureValidation", Boolean.TRUE); xmlSignature = signatureFactory.unmarshalXMLSignature(context); } catch (MarshalException ex) { throw new WSSecurityException(
private boolean validateSignature(Node signatureNode, Node bodyTag, PublicKey publicKey) { boolean signatureIsValid = false; try { // Create a DOM XMLSignatureFactory that will be used to unmarshal the // document containing the XMLSignature String providerName = System.getProperty ("jsr105Provider", "org.jcp.xml.dsig.internal.dom.XMLDSigRI"); XMLSignatureFactory fac = XMLSignatureFactory.getInstance("DOM", (Provider) Class.forName(providerName).newInstance()); // Create a DOMValidateContext and specify a KeyValue KeySelector // and document context DOMValidateContext valContext = new DOMValidateContext(new X509KeySelector(publicKey), signatureNode); valContext.setIdAttributeNS((Element) bodyTag, "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd", "Id"); // Unmarshal the XMLSignature. XMLSignature signature = fac.unmarshalXMLSignature(valContext); // Validate the XMLSignature. signatureIsValid = signature.validate(valContext); } catch (Exception ex) { logger.error("An Error Raised while Signature Validation"); logger.error("Cause: " + ex.getCause()); logger.error("Message: " + ex.getMessage()); } return signatureIsValid; }
public boolean isValida(final InputStream xmlStream) throws Exception { final DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setNamespaceAware(true); final Document document = dbf.newDocumentBuilder().parse(xmlStream); final NodeList nodeList = document.getElementsByTagNameNS(XMLSignature.XMLNS, "Signature"); if (nodeList.getLength() == 0) { throw new IllegalStateException("Nao foi encontrada a assinatura do XML."); } final String providerName = System.getProperty("jsr105Provider", "org.jcp.xml.dsig.internal.dom.XMLDSigRI"); final XMLSignatureFactory signatureFactory = XMLSignatureFactory.getInstance("DOM", (Provider) Class.forName(providerName).newInstance()); final DOMValidateContext validateContext = new DOMValidateContext(new X509KeySelector(), nodeList.item(0)); for (final String tag : AssinaturaDigital.ELEMENTOS_ASSINAVEIS) { final NodeList elements = document.getElementsByTagName(tag); if (elements.getLength() > 0) { validateContext.setIdAttributeNS((Element) elements.item(0), null, "Id"); } } return signatureFactory.unmarshalXMLSignature(validateContext).validate(validateContext); }
XMLValidateContext context = new DOMValidateContext(key, elem); context.setProperty("javax.xml.crypto.dsig.cacheReference", Boolean.TRUE); context.setProperty("org.apache.jcp.xml.dsig.secureValidation", Boolean.TRUE); XMLSignature xmlSignature = signatureFactory.unmarshalXMLSignature(context); if (data.getWssConfig().isWsiBSPCompliant()) { checkBSPCompliance(xmlSignature); testMessageReplay(elem, xmlSignature.getSignatureValue().getValue(), key, data, wsDocInfo); boolean signatureOk = xmlSignature.validate(context); if (signatureOk) { return xmlSignature; LOG.debug("XML Signature verification has failed"); boolean signatureValidationCheck = xmlSignature.getSignatureValue().validate(context); LOG.debug("Signature Validation check: " + signatureValidationCheck); java.util.Iterator<?> referenceIterator =
XMLValidateContext context = new DOMValidateContext(key, sig.getDOM()); context.setProperty("org.apache.jcp.xml.dsig.secureValidation", Boolean.TRUE); context.setProperty("org.jcp.xml.dsig.secureValidation", Boolean.TRUE); xmlSignature = signatureFactory.unmarshalXMLSignature(context); } catch (MarshalException ex) { throw new WSSecurityException(
public Result validate ( final Document doc ) throws Exception { final NodeList nl = doc.getElementsByTagNameNS ( XMLSignature.XMLNS, "Signature" ); //$NON-NLS-1$ if ( nl.getLength () == 0 ) { return new Result ( StatusCodes.VALIDATE_NO_SIGNATURE_DATA, "No signature data found" ); } final DOMValidateContext dvc = new DOMValidateContext ( this.keySelector, nl.item ( 0 ) ); final XMLSignature signature = this.factory.unmarshalXMLSignature ( dvc ); try { final boolean result = signature.validate ( dvc ); return new Result ( result, signature ); } catch ( final XMLSignatureException e ) { logger.debug ( "Failed to perform validation", e ); return Result.INVALID; } }
XMLValidateContext context = new DOMValidateContext(key, elem); context.setProperty("javax.xml.crypto.dsig.cacheReference", Boolean.TRUE); context.setProperty("org.apache.jcp.xml.dsig.secureValidation", Boolean.TRUE); XMLSignature xmlSignature = signatureFactory.unmarshalXMLSignature(context); checkBSPCompliance(xmlSignature, data.getBSPEnforcer()); testMessageReplay(elem, xmlSignature.getSignatureValue().getValue(), key, data, wsDocInfo); boolean signatureOk = xmlSignature.validate(context); if (signatureOk) { return xmlSignature; LOG.debug("XML Signature verification has failed"); boolean signatureValidationCheck = xmlSignature.getSignatureValue().validate(context); LOG.debug("Signature Validation check: " + signatureValidationCheck); java.util.Iterator<?> referenceIterator =
XMLValidateContext context = new DOMValidateContext(key, sig.getDOM()); context.setProperty("org.apache.jcp.xml.dsig.secureValidation", Boolean.TRUE); context.setProperty("org.jcp.xml.dsig.secureValidation", Boolean.TRUE); xmlSignature = signatureFactory.unmarshalXMLSignature(context); } catch (MarshalException ex) { throw new WSSecurityException(