Java Code Examples for org.w3c.dom.Element#cloneNode()
The following examples show how to use
org.w3c.dom.Element#cloneNode() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: BaseSAML2BindingBuilder.java From keycloak with Apache License 2.0 | 6 votes |
public void signAssertion(Document samlDocument) throws ProcessingException { Element originalAssertionElement = org.keycloak.saml.common.util.DocumentUtil.getChildElement(samlDocument.getDocumentElement(), new QName(JBossSAMLURIConstants.ASSERTION_NSURI.get(), JBossSAMLConstants.ASSERTION.get())); if (originalAssertionElement == null) return; Node clonedAssertionElement = originalAssertionElement.cloneNode(true); Document temporaryDocument; try { temporaryDocument = org.keycloak.saml.common.util.DocumentUtil.createDocument(); } catch (ConfigurationException e) { throw new ProcessingException(e); } temporaryDocument.adoptNode(clonedAssertionElement); temporaryDocument.appendChild(clonedAssertionElement); signDocument(temporaryDocument); samlDocument.adoptNode(clonedAssertionElement); Element parentNode = (Element) originalAssertionElement.getParentNode(); parentNode.replaceChild(clonedAssertionElement, originalAssertionElement); }
Example 2
Source File: XMLRipperOutput.java From AndroidRipper with GNU Affero General Public License v3.0 | 5 votes |
/** * Import Node into Document * * @param document XML Document * @param element Node to import * @return Document */ protected Node importElement(Document document, Element element) { try { return document.importNode((Node)element, true); } catch (DOMException ex) { Node newNode = (Node)element.cloneNode(true); return document.adoptNode(newNode); } }
Example 3
Source File: SamlSignatureTest.java From keycloak with Apache License 2.0 | 5 votes |
public static void applyXSW6(Document document){ Element evilAssertion = (Element) document.getElementsByTagNameNS(ASSERTION_NSURI.get(), "Assertion").item(0); Element originalSignature = (Element) evilAssertion.getElementsByTagNameNS(XMLSignature.XMLNS, "Signature").item(0); Element assertion = (Element) evilAssertion.cloneNode(true); Element copiedSignature = (Element) assertion.getElementsByTagNameNS(XMLSignature.XMLNS, "Signature").item(0); Assume.assumeThat("Assertion needs to be signed", copiedSignature, notNullValue()); assertion.removeChild(copiedSignature); originalSignature.appendChild(assertion); evilAssertion.setAttribute("ID", "_evil_assertion_ID"); }
Example 4
Source File: SamlSignatureTest.java From keycloak with Apache License 2.0 | 5 votes |
public static void applyXSW3(Document document){ Element assertion = (Element) document.getElementsByTagNameNS(ASSERTION_NSURI.get(), "Assertion").item(0); Element evilAssertion = (Element) assertion.cloneNode(true); Element copiedSignature = (Element) evilAssertion.getElementsByTagNameNS(XMLSignature.XMLNS, "Signature").item(0); Assume.assumeThat("Assertion needs to be signed", copiedSignature, notNullValue()); evilAssertion.setAttribute("ID", "_evil_assertion_ID"); evilAssertion.removeChild(copiedSignature); document.getDocumentElement().insertBefore(evilAssertion, assertion); }
Example 5
Source File: SamlSignatureTest.java From keycloak with Apache License 2.0 | 5 votes |
public static void applyXSW2(Document document){ Element response = (Element) document.getElementsByTagNameNS(PROTOCOL_NSURI.get(), "Response").item(0); Element clonedResponse = (Element) response.cloneNode(true); Element clonedSignature = (Element) clonedResponse.getElementsByTagNameNS(XMLSignature.XMLNS, "Signature").item(0); Assume.assumeThat("Response needs to be signed", clonedSignature, notNullValue()); clonedResponse.removeChild(clonedSignature); Element signature = (Element) response.getElementsByTagNameNS(XMLSignature.XMLNS, "Signature").item(0); response.insertBefore(clonedResponse, signature); response.setAttribute("ID", "_evil_response_ID"); }
Example 6
Source File: SourceGenerator.java From cxf with Apache License 2.0 | 5 votes |
private Element getResourceElement(Application app, Element resElement, GrammarInfo gInfo, Set<String> typeClassNames, String type, File srcDir) { if (!type.isEmpty()) { if (type.startsWith("#")) { Element resourceType = resolveLocalReference(app.getAppElement(), "resource_type", type); if (resourceType != null) { Element realElement = (Element)resourceType.cloneNode(true); DOMUtils.setAttribute(realElement, "id", resElement.getAttribute("id")); DOMUtils.setAttribute(realElement, "path", resElement.getAttribute("path")); return realElement; } } else { URI wadlRef = URI.create(type); String wadlRefPath = app.getWadlPath() != null ? getBaseWadlPath(app.getWadlPath()) + wadlRef.getPath() : wadlRef.getPath(); Application refApp = new Application(readDocument(wadlRefPath), wadlRefPath); GrammarInfo gInfoBase = generateSchemaCodeAndInfo(refApp, typeClassNames, srcDir); if (gInfoBase != null) { gInfo.getElementTypeMap().putAll(gInfoBase.getElementTypeMap()); gInfo.getNsMap().putAll(gInfoBase.getNsMap()); } return getResourceElement(refApp, resElement, gInfo, typeClassNames, "#" + wadlRef.getFragment(), srcDir); } } return resElement; }
Example 7
Source File: MathMLUtilities.java From symja_android_library with GNU General Public License v3.0 | 5 votes |
private static Document isolateDescendant(final Element mathElement, final Element descendant) { Document result = XMLUtilities.createNSAwareDocumentBuilder().newDocument(); Element resultMathElement = (Element) mathElement.cloneNode(false); result.adoptNode(resultMathElement); result.appendChild(resultMathElement); Element firstSemanticElementCopy = (Element) descendant.cloneNode(true); result.adoptNode(firstSemanticElementCopy); resultMathElement.appendChild(firstSemanticElementCopy); return result; }
Example 8
Source File: SamlSignatureTest.java From keycloak with Apache License 2.0 | 5 votes |
public static void applyXSW1(Document document){ Element response = (Element) document.getElementsByTagNameNS(PROTOCOL_NSURI.get(), "Response").item(0); Element clonedResponse = (Element) response.cloneNode(true); Element clonedSignature = (Element) clonedResponse.getElementsByTagNameNS(XMLSignature.XMLNS, "Signature").item(0); Assume.assumeThat("Response needs to be signed", clonedSignature, notNullValue()); clonedResponse.removeChild(clonedSignature); Element signature = (Element) response.getElementsByTagNameNS(XMLSignature.XMLNS, "Signature").item(0); signature.appendChild(clonedResponse); response.setAttribute("ID", "_evil_response_ID"); }
Example 9
Source File: ISD.java From ttt with BSD 2-Clause "Simplified" License | 5 votes |
private static Element copyBodyElement(Document document, TransformerContext context) { Element body = getBodyElement(document, context); if (body != null) return (Element) body.cloneNode(true); else return null; }
Example 10
Source File: XSWHelpers.java From SAMLRaider with MIT License | 5 votes |
public void applyXSW4(Document document){ Element assertion = (Element) document.getElementsByTagNameNS("*", "Assertion").item(0); Element evilAssertion = (Element) assertion.cloneNode(true); Element copiedSignature = (Element) evilAssertion.getElementsByTagNameNS("*", "Signature").item(0); evilAssertion.setAttribute("ID", "_evil_assertion_ID"); evilAssertion.removeChild(copiedSignature); document.getDocumentElement().appendChild(evilAssertion); evilAssertion.appendChild(assertion); }
Example 11
Source File: SamlSignatureTest.java From keycloak with Apache License 2.0 | 5 votes |
public static void applyXSW7(Document document){ Element assertion = (Element) document.getElementsByTagNameNS(ASSERTION_NSURI.get(), "Assertion").item(0); Element extensions = document.createElement("Extensions"); document.getDocumentElement().insertBefore(extensions, assertion); Element evilAssertion = (Element) assertion.cloneNode(true); Element copiedSignature = (Element) evilAssertion.getElementsByTagNameNS(XMLSignature.XMLNS, "Signature").item(0); Assume.assumeThat("Assertion needs to be signed", copiedSignature, notNullValue()); evilAssertion.removeChild(copiedSignature); extensions.appendChild(evilAssertion); }
Example 12
Source File: SamlSignatureTest.java From keycloak with Apache License 2.0 | 5 votes |
public static void applyXSW4(Document document){ Element assertion = (Element) document.getElementsByTagNameNS(ASSERTION_NSURI.get(), "Assertion").item(0); Element evilAssertion = (Element) assertion.cloneNode(true); Element copiedSignature = (Element) evilAssertion.getElementsByTagNameNS(XMLSignature.XMLNS, "Signature").item(0); Assume.assumeThat("Assertion needs to be signed", copiedSignature, notNullValue()); evilAssertion.setAttribute("ID", "_evil_assertion_ID"); evilAssertion.removeChild(copiedSignature); document.getDocumentElement().appendChild(evilAssertion); evilAssertion.appendChild(assertion); }
Example 13
Source File: XSWHelpers.java From SAMLRaider with MIT License | 5 votes |
public void applyXSW7(Document document){ Element assertion = (Element) document.getElementsByTagNameNS("*", "Assertion").item(0); Element extensions = document.createElement("Extensions"); document.getDocumentElement().insertBefore(extensions, assertion); Element evilAssertion = (Element) assertion.cloneNode(true); Element copiedSignature = (Element) evilAssertion.getElementsByTagNameNS("*", "Signature").item(0); evilAssertion.removeChild(copiedSignature); extensions.appendChild(evilAssertion); }
Example 14
Source File: WizardSubPageDataSource.java From XPagesExtensionLibrary with Apache License 2.0 | 5 votes |
public WizardSubPageDataSource(WizardDataSub pd, int t) { super(pd); dsType = t; Document doc = null; Node currentNode = wizardData.panelData.getNode(); if (currentNode != null) { doc = currentNode.getOwnerDocument(); } if (doc != null) { // First find the <view> node on the page that we are dealing with.. Element originalXPageViewNode = XPagesDOMUtil.getViewNode(doc); if (originalXPageViewNode != null) { clonedXPageViewElement = originalXPageViewNode.cloneNode(false); } //clone the paneldata extraData = new PanelExtraData(); extraData.setDesignerProject(wizardData.panelData.getDesignerProject()); extraData.setNode(clonedXPageViewElement); extraData.setDocument(clonedXPageViewElement.getOwnerDocument()); extraData.setHostWorkbenchPart(wizardData.panelData.getHostWorkbenchPart()); extraData.setWorkbenchPart(wizardData.panelData.getWorkbenchPart()); } }
Example 15
Source File: DOMElementTypeDescriptor.java From cosmo with Apache License 2.0 | 4 votes |
public Element deepCopyNotNull(Element value) { return (Element) value.cloneNode(true); }
Example 16
Source File: SAMLSSOResponseValidator.java From cxf-fediz with Apache License 2.0 | 4 votes |
/** * Validate a SAML 2 Protocol Response * @param samlResponse * @param postBinding * @return a SSOValidatorResponse object * @throws WSSecurityException */ public SSOValidatorResponse validateSamlResponse( org.opensaml.saml.saml2.core.Response samlResponse, boolean postBinding ) throws WSSecurityException { // Check the Issuer validateIssuer(samlResponse.getIssuer()); // The Response must contain at least one Assertion. if (samlResponse.getAssertions() == null || samlResponse.getAssertions().isEmpty()) { LOG.debug("The Response must contain at least one Assertion"); throw new WSSecurityException(WSSecurityException.ErrorCode.FAILURE, "invalidSAMLsecurity"); } // The Response must contain a Destination that matches the assertionConsumerURL if it is // signed String destination = samlResponse.getDestination(); if (samlResponse.isSigned() && (destination == null || !destination.equals(assertionConsumerURL))) { LOG.debug("The Response must contain a destination that matches the assertion consumer URL"); throw new WSSecurityException(WSSecurityException.ErrorCode.FAILURE, "invalidSAMLsecurity"); } if (enforceResponseSigned && !samlResponse.isSigned()) { LOG.debug("The Response must be signed!"); throw new WSSecurityException(WSSecurityException.ErrorCode.FAILURE, "invalidSAMLsecurity"); } // Validate Assertions org.opensaml.saml.saml2.core.Assertion validAssertion = null; Instant sessionNotOnOrAfter = null; for (org.opensaml.saml.saml2.core.Assertion assertion : samlResponse.getAssertions()) { // Check the Issuer if (assertion.getIssuer() == null) { LOG.debug("Assertion Issuer must not be null"); throw new WSSecurityException(WSSecurityException.ErrorCode.FAILURE, "invalidSAMLsecurity"); } validateIssuer(assertion.getIssuer()); if (!samlResponse.isSigned() && enforceAssertionsSigned && assertion.getSignature() == null) { LOG.debug("The enclosed assertions in the SAML Response must be signed"); throw new WSSecurityException(WSSecurityException.ErrorCode.FAILURE, "invalidSAMLsecurity"); } // Check for AuthnStatements and validate the Subject accordingly if (assertion.getAuthnStatements() != null && !assertion.getAuthnStatements().isEmpty()) { org.opensaml.saml.saml2.core.Subject subject = assertion.getSubject(); if (validateAuthenticationSubject(subject, assertion.getID(), postBinding)) { validateAudienceRestrictionCondition(assertion.getConditions()); validAssertion = assertion; // Store Session NotOnOrAfter for (AuthnStatement authnStatment : assertion.getAuthnStatements()) { if (authnStatment.getSessionNotOnOrAfter() != null) { sessionNotOnOrAfter = authnStatment.getSessionNotOnOrAfter().toDate().toInstant(); } } } } } if (validAssertion == null) { LOG.debug("The Response did not contain any Authentication Statement that matched " + "the Subject Confirmation criteria"); throw new WSSecurityException(WSSecurityException.ErrorCode.FAILURE, "invalidSAMLsecurity"); } SSOValidatorResponse validatorResponse = new SSOValidatorResponse(); validatorResponse.setResponseId(samlResponse.getID()); validatorResponse.setSessionNotOnOrAfter(sessionNotOnOrAfter); Element assertionElement = validAssertion.getDOM(); Element clonedAssertionElement = (Element)assertionElement.cloneNode(true); validatorResponse.setAssertionElement(clonedAssertionElement); validatorResponse.setAssertion(DOM2Writer.nodeToString(clonedAssertionElement)); return validatorResponse; }
Example 17
Source File: Split.java From pdfxtk with Apache License 2.0 | 4 votes |
void split(BrowserContext context, Displayable d) { Element e = d.element; String reference = e.getAttribute("ref"); Element original = context.getSourceElementByReference(reference); if (original == null) return; Element splitted = (Element) original.cloneNode(false); int x, y, w, h; try { x = Integer.parseInt(e.getAttribute("x")); y = Integer.parseInt(e.getAttribute("y")); w = Integer.parseInt(e.getAttribute("w")); h = Integer.parseInt(e.getAttribute("h")); } catch (NumberFormatException ex) { ex.printStackTrace(); return; } // Calculate position of mouse given the current scale Point position = context.getMousePosition(); position.x = (int) ((double) position.x / context.getScale()); position.y = (int) ((double) position.y / context.getScale()); if (splitDirection == DIR_VERTICAL) { original.setAttribute("height", ""+(position.y-y-1)); splitted.setAttribute("y", ""+position.y); splitted.setAttribute("height", ""+(y+h-position.y)); } else { original.setAttribute("width", ""+(position.x-x-1)); splitted.setAttribute("x", ""+position.x); splitted.setAttribute("width", ""+(x+w-position.x)); } original.getParentNode().appendChild(splitted); context.retransform(); }
Example 18
Source File: SAMLSSOResponseValidator.java From cxf with Apache License 2.0 | 4 votes |
/** * Validate a SAML 2 Protocol Response * @param samlResponse * @param postBinding * @return a SSOValidatorResponse object * @throws WSSecurityException */ public SSOValidatorResponse validateSamlResponse( org.opensaml.saml.saml2.core.Response samlResponse, boolean postBinding ) throws WSSecurityException { // Check the Issuer validateIssuer(samlResponse.getIssuer()); // The Response must contain at least one Assertion. if (samlResponse.getAssertions() == null || samlResponse.getAssertions().isEmpty()) { LOG.warning("The Response must contain at least one Assertion"); throw new WSSecurityException(WSSecurityException.ErrorCode.FAILURE, "invalidSAMLsecurity"); } // The Response must contain a Destination that matches the assertionConsumerURL if it is // signed String destination = samlResponse.getDestination(); if (samlResponse.isSigned() && (destination == null || !destination.equals(assertionConsumerURL))) { LOG.warning("The Response must contain a destination that matches the assertion consumer URL"); throw new WSSecurityException(WSSecurityException.ErrorCode.FAILURE, "invalidSAMLsecurity"); } if (enforceResponseSigned && !samlResponse.isSigned()) { LOG.warning("The Response must be signed!"); throw new WSSecurityException(WSSecurityException.ErrorCode.FAILURE, "invalidSAMLsecurity"); } // Validate Assertions org.opensaml.saml.saml2.core.Assertion validAssertion = null; Instant sessionNotOnOrAfter = null; for (org.opensaml.saml.saml2.core.Assertion assertion : samlResponse.getAssertions()) { // Check the Issuer if (assertion.getIssuer() == null) { LOG.warning("Assertion Issuer must not be null"); throw new WSSecurityException(WSSecurityException.ErrorCode.FAILURE, "invalidSAMLsecurity"); } validateIssuer(assertion.getIssuer()); if (!samlResponse.isSigned() && enforceAssertionsSigned && assertion.getSignature() == null) { LOG.warning("The enclosed assertions in the SAML Response must be signed"); throw new WSSecurityException(WSSecurityException.ErrorCode.FAILURE, "invalidSAMLsecurity"); } // Check for AuthnStatements and validate the Subject accordingly if (assertion.getAuthnStatements() != null && !assertion.getAuthnStatements().isEmpty()) { org.opensaml.saml.saml2.core.Subject subject = assertion.getSubject(); org.opensaml.saml.saml2.core.SubjectConfirmation subjectConf = validateAuthenticationSubject(subject, assertion.getID(), postBinding); if (subjectConf != null) { validateAudienceRestrictionCondition(assertion.getConditions()); validAssertion = assertion; sessionNotOnOrAfter = null; // Store Session NotOnOrAfter for (AuthnStatement authnStatment : assertion.getAuthnStatements()) { if (authnStatment.getSessionNotOnOrAfter() != null) { sessionNotOnOrAfter = Instant.ofEpochMilli(authnStatment.getSessionNotOnOrAfter().toDate().getTime()); } } // Fall back to the SubjectConfirmationData NotOnOrAfter if we have no session NotOnOrAfter if (sessionNotOnOrAfter == null) { sessionNotOnOrAfter = Instant.ofEpochMilli(subjectConf.getSubjectConfirmationData() .getNotOnOrAfter().toDate().getTime()); } } } } if (validAssertion == null) { LOG.warning("The Response did not contain any Authentication Statement that matched " + "the Subject Confirmation criteria"); throw new WSSecurityException(WSSecurityException.ErrorCode.FAILURE, "invalidSAMLsecurity"); } SSOValidatorResponse validatorResponse = new SSOValidatorResponse(); validatorResponse.setResponseId(samlResponse.getID()); validatorResponse.setSessionNotOnOrAfter(sessionNotOnOrAfter); if (samlResponse.getIssueInstant() != null) { validatorResponse.setCreated(Instant.ofEpochMilli(samlResponse.getIssueInstant().toDate().getTime())); } Element assertionElement = validAssertion.getDOM(); Element clonedAssertionElement = (Element)assertionElement.cloneNode(true); validatorResponse.setAssertionElement(clonedAssertionElement); validatorResponse.setAssertion(DOM2Writer.nodeToString(clonedAssertionElement)); validatorResponse.setOpensamlAssertion(validAssertion); return validatorResponse; }
Example 19
Source File: Configuration.java From lams with GNU General Public License v2.0 | 3 votes |
/** * Gets a clone of the ValidatorSuite configuration element for the ID. Note that this configuration reflects the * state of things as they were when the configuration was loaded, applications may have programmatically removed * altered the suite during runtime. * * @param suiteId the ID of the ValidatorSuite whose configuration is to be retrieved * * @return the validator suite configuration element or null if no suite is configured with that ID * * @deprecated this method is deprecated with no replacement */ public static Element getValidatorSuiteConfiguration(String suiteId) { Element configElement = validatorSuiteConfigurations.get(suiteId); if (configElement != null) { return (Element) configElement.cloneNode(true); } return null; }
Example 20
Source File: Configuration.java From lams with GNU General Public License v2.0 | 3 votes |
/** * Gets a clone of the configuration element for a qualified element. Note that this configuration reflects the * state of things as they were when the configuration was loaded, applications may have programmatically removed * builder, marshallers, and unmarshallers during runtime. * * @param qualifedName the namespace qualifed element name of the schema type of the object provider * * @return the object provider configuration element or null if no object provider is configured with that name * * @deprecated this method is deprecated with no replacement */ public static Element getObjectProviderConfiguration(QName qualifedName) { Element configElement = configuredObjectProviders.get(qualifedName); if (configElement != null) { return (Element) configElement.cloneNode(true); } return null; }