private ResponseType decryptAssertion(ResponseType responseType, PrivateKey privateKey) throws ProcessingException { if (privateKey == null) throw new IllegalArgumentException(ErrorCodes.NULL_ARGUMENT + "privateKey"); SAML2Response saml2Response = new SAML2Response(); try { Document doc = saml2Response.convert(responseType); Element enc = DocumentUtil.getElement(doc, new QName(JBossSAMLConstants.ENCRYPTED_ASSERTION.get())); if (enc == null) throw new ProcessingException(ErrorCodes.NULL_VALUE + "Null encrypted assertion element"); String oldID = enc.getAttribute(JBossSAMLConstants.ID.get()); Document newDoc = DocumentUtil.createDocument(); Node importedNode = newDoc.importNode(enc, true); newDoc.appendChild(importedNode); Element decryptedDocumentElement = XMLEncryptionUtil.decryptElementInDocument(newDoc, privateKey); SAMLParser parser = new SAMLParser(); JAXPValidationUtil.checkSchemaValidation(decryptedDocumentElement); AssertionType assertion = (AssertionType) parser.parse(StaxParserUtil.getXMLEventReader(DocumentUtil .getNodeAsStream(decryptedDocumentElement))); responseType.replaceAssertion(oldID, new RTChoiceType(assertion)); return responseType; } catch (Exception e) { throw new ProcessingException(e); } }
private ResponseType decryptAssertion(ResponseType responseType, PrivateKey privateKey) throws ProcessingException { if (privateKey == null) throw new IllegalArgumentException(ErrorCodes.NULL_ARGUMENT + "privateKey"); SAML2Response saml2Response = new SAML2Response(); try { Document doc = saml2Response.convert(responseType); Element enc = DocumentUtil.getElement(doc, new QName(JBossSAMLConstants.ENCRYPTED_ASSERTION.get())); if (enc == null) throw new ProcessingException(ErrorCodes.NULL_VALUE + "Null encrypted assertion element"); String oldID = enc.getAttribute(JBossSAMLConstants.ID.get()); Document newDoc = DocumentUtil.createDocument(); Node importedNode = newDoc.importNode(enc, true); newDoc.appendChild(importedNode); Element decryptedDocumentElement = XMLEncryptionUtil.decryptElementInDocument(newDoc, privateKey); SAMLParser parser = new SAMLParser(); JAXPValidationUtil.checkSchemaValidation(decryptedDocumentElement); AssertionType assertion = (AssertionType) parser.parse(StaxParserUtil.getXMLEventReader(DocumentUtil .getNodeAsStream(decryptedDocumentElement))); responseType.replaceAssertion(oldID, new RTChoiceType(assertion)); return responseType; } catch (Exception e) { throw new ProcessingException(e); } }
private ResponseType decryptAssertion(ResponseType responseType, PrivateKey privateKey) throws ProcessingException { if (privateKey == null) throw logger.nullArgumentError("privateKey"); SAML2Response saml2Response = new SAML2Response(); try { Document doc = saml2Response.convert(responseType); Element enc = DocumentUtil.getElement(doc, new QName(JBossSAMLConstants.ENCRYPTED_ASSERTION.get())); if (enc == null) throw logger.samlHandlerNullEncryptedAssertion(); String oldID = enc.getAttribute(JBossSAMLConstants.ID.get()); Document newDoc = DocumentUtil.createDocument(); Node importedNode = newDoc.importNode(enc, true); newDoc.appendChild(importedNode); Element decryptedDocumentElement = XMLEncryptionUtil.decryptElementInDocument(newDoc, privateKey); SAMLParser parser = new SAMLParser(); JAXPValidationUtil.checkSchemaValidation(decryptedDocumentElement); AssertionType assertion = (AssertionType) parser.parse(StaxParserUtil.getXMLEventReader(DocumentUtil .getNodeAsStream(decryptedDocumentElement))); responseType.replaceAssertion(oldID, new RTChoiceType(assertion)); return responseType; } catch (Exception e) { throw logger.processingError(e); } }
response.addAssertion(new RTChoiceType((AssertionType) assertionParser.parse(xmlEventReader))); response.addAssertion(new RTChoiceType(new EncryptedAssertionType(encryptedAssertion)));
response.addAssertion(new RTChoiceType((AssertionType) assertionParser.parse(xmlEventReader))); response.addAssertion(new RTChoiceType(new EncryptedAssertionType(encryptedAssertion)));
} else if (JBossSAMLConstants.ASSERTION.get().equals(elementName)) { SAMLAssertionParser assertionParser = new SAMLAssertionParser(); response.addAssertion(new RTChoiceType((AssertionType) assertionParser.parse(xmlEventReader))); } else if (JBossSAMLConstants.STATUS.get().equals(elementName)) { response.setStatus(parseStatus(xmlEventReader)); } else if (JBossSAMLConstants.ENCRYPTED_ASSERTION.get().equals(elementName)) { Element encryptedAssertion = StaxParserUtil.getDOMElement(xmlEventReader); response.addAssertion(new RTChoiceType(new EncryptedAssertionType(encryptedAssertion))); } else throw logger.parserUnknownTag(elementName, startElement.getLocation());
/** * Create a Response Type * * @param ID * @param issuerInfo * @param encryptedAssertion a DOM {@link Element} that represents an encrypted assertion * * @return * * @throws ConfigurationException */ public static ResponseType createResponseType(String ID, IssuerInfoHolder issuerInfo, Element encryptedAssertion) throws ConfigurationException { ResponseType responseType = new ResponseType(ID, XMLTimeUtil.getIssueInstant()); // Issuer NameIDType issuer = issuerInfo.getIssuer(); responseType.setIssuer(issuer); // Status String statusCode = issuerInfo.getStatusCode(); if (statusCode == null) throw logger.issuerInfoMissingStatusCodeError(); responseType.setStatus(createStatusType(statusCode)); responseType.addAssertion(new RTChoiceType(new EncryptedAssertionType(encryptedAssertion))); return responseType; } }
/** * Create a Response Type * * @param ID * @param issuerInfo * @param assertionType * * @return * * @throws ConfigurationException */ public static ResponseType createResponseType(String ID, IssuerInfoHolder issuerInfo, AssertionType assertionType) throws ConfigurationException { XMLGregorianCalendar issueInstant = XMLTimeUtil.getIssueInstant(); ResponseType responseType = new ResponseType(ID, issueInstant); // Issuer NameIDType issuer = issuerInfo.getIssuer(); responseType.setIssuer(issuer); // Status String statusCode = issuerInfo.getStatusCode(); if (statusCode == null) throw logger.issuerInfoMissingStatusCodeError(); responseType.setStatus(createStatusType(statusCode)); responseType.addAssertion(new RTChoiceType(assertionType)); return responseType; }
} else if (JBossSAMLConstants.ASSERTION.get().equals(elementName)) { SAMLAssertionParser assertionParser = new SAMLAssertionParser(); response.addAssertion(new RTChoiceType((AssertionType) assertionParser.parse(xmlEventReader))); } else if (JBossSAMLConstants.STATUS.get().equals(elementName)) { response.setStatus(parseStatus(xmlEventReader)); } else if (JBossSAMLConstants.ENCRYPTED_ASSERTION.get().equals(elementName)) { Element encryptedAssertion = StaxParserUtil.getDOMElement(xmlEventReader); response.addAssertion(new RTChoiceType(new EncryptedAssertionType(encryptedAssertion))); } else throw logger.parserUnknownTag(elementName, startElement.getLocation());
} else if (JBossSAMLConstants.ASSERTION.get().equals(elementName)) { SAMLAssertionParser assertionParser = new SAMLAssertionParser(); response.addAssertion(new RTChoiceType((AssertionType) assertionParser.parse(xmlEventReader))); } else if (JBossSAMLConstants.STATUS.get().equals(elementName)) { response.setStatus(parseStatus(xmlEventReader)); } else if (JBossSAMLConstants.ENCRYPTED_ASSERTION.get().equals(elementName)) { Element encryptedAssertion = StaxParserUtil.getDOMElement(xmlEventReader); response.addAssertion(new RTChoiceType(new EncryptedAssertionType(encryptedAssertion))); } else throw logger.parserUnknownTag(elementName, startElement.getLocation());
/** * Create a Response Type * * @param ID * @param issuerInfo * @param encryptedAssertion a DOM {@link Element} that represents an encrypted assertion * * @return * * @throws ConfigurationException */ public static ResponseType createResponseType(String ID, IssuerInfoHolder issuerInfo, Element encryptedAssertion) throws ConfigurationException { ResponseType responseType = new ResponseType(ID, XMLTimeUtil.getIssueInstant()); // Issuer NameIDType issuer = issuerInfo.getIssuer(); responseType.setIssuer(issuer); // Status String statusCode = issuerInfo.getStatusCode(); if (statusCode == null) throw logger.issuerInfoMissingStatusCodeError(); responseType.setStatus(createStatusType(statusCode)); responseType.addAssertion(new RTChoiceType(new EncryptedAssertionType(encryptedAssertion))); return responseType; } }
/** * Create a Response Type * * @param ID * @param issuerInfo * @param encryptedAssertion a DOM {@link Element} that represents an encrypted assertion * @return * @throws ConfigurationException */ public static ResponseType createResponseType(String ID, IssuerInfoHolder issuerInfo, Element encryptedAssertion) throws ConfigurationException { ResponseType responseType = new ResponseType(ID, XMLTimeUtil.getIssueInstant()); // Issuer NameIDType issuer = issuerInfo.getIssuer(); responseType.setIssuer(issuer); // Status String statusCode = issuerInfo.getStatusCode(); if (statusCode == null) throw logger.issuerInfoMissingStatusCodeError(); responseType.setStatus(createStatusType(statusCode)); responseType.addAssertion(new RTChoiceType(new EncryptedAssertionType(encryptedAssertion))); return responseType; } }
/** * Create a Response Type * * @param ID * @param issuerInfo * @param assertionType * @return * @throws ConfigurationException */ public static ResponseType createResponseType(String ID, IssuerInfoHolder issuerInfo, AssertionType assertionType) throws ConfigurationException { XMLGregorianCalendar issueInstant = XMLTimeUtil.getIssueInstant(); ResponseType responseType = new ResponseType(ID, issueInstant); // Issuer NameIDType issuer = issuerInfo.getIssuer(); responseType.setIssuer(issuer); // Status String statusCode = issuerInfo.getStatusCode(); if (statusCode == null) throw logger.issuerInfoMissingStatusCodeError(); responseType.setStatus(createStatusType(statusCode)); responseType.addAssertion(new RTChoiceType(assertionType)); return responseType; }
/** * Create a Response Type * @param ID * @param issuerInfo * @param encryptedAssertion a DOM {@link Element} that represents an encrypted assertion * @return * @throws ConfigurationException */ public static ResponseType createResponseType(String ID, IssuerInfoHolder issuerInfo, Element encryptedAssertion) throws ConfigurationException { ResponseType responseType = new ResponseType(ID, XMLTimeUtil.getIssueInstant()); //Issuer NameIDType issuer = issuerInfo.getIssuer(); responseType.setIssuer(issuer); //Status String statusCode = issuerInfo.getStatusCode(); if (statusCode == null) throw new IllegalArgumentException(ErrorCodes.ISSUER_INFO_MISSING_STATUS_CODE); responseType.setStatus(createStatusType(statusCode)); responseType.addAssertion(new RTChoiceType(new EncryptedAssertionType(encryptedAssertion))); return responseType; } }
/** * Create a Response Type * @param ID * @param issuerInfo * @param assertionType * @return * @throws ConfigurationException */ public static ResponseType createResponseType(String ID, IssuerInfoHolder issuerInfo, AssertionType assertionType) throws ConfigurationException { XMLGregorianCalendar issueInstant = XMLTimeUtil.getIssueInstant(); ResponseType responseType = new ResponseType(ID, issueInstant); //Issuer NameIDType issuer = issuerInfo.getIssuer(); responseType.setIssuer(issuer); //Status String statusCode = issuerInfo.getStatusCode(); if (statusCode == null) throw new IllegalArgumentException(ErrorCodes.ISSUER_INFO_MISSING_STATUS_CODE); responseType.setStatus(createStatusType(statusCode)); responseType.addAssertion(new RTChoiceType(assertionType)); return responseType; }
private ResponseType decryptAssertion(ResponseType responseType, PrivateKey privateKey) throws ProcessingException { if (privateKey == null) throw logger.nullArgumentError("privateKey"); SAML2Response saml2Response = new SAML2Response(); try { Document doc = saml2Response.convert(responseType); Element enc = DocumentUtil.getElement(doc, new QName(JBossSAMLConstants.ENCRYPTED_ASSERTION.get())); if (enc == null) throw logger.samlHandlerNullEncryptedAssertion(); String oldID = enc.getAttribute(JBossSAMLConstants.ID.get()); Document newDoc = DocumentUtil.createDocument(); Node importedNode = newDoc.importNode(enc, true); newDoc.appendChild(importedNode); Element decryptedDocumentElement = XMLEncryptionUtil.decryptElementInDocument(newDoc, privateKey); SAMLParser parser = new SAMLParser(); JAXPValidationUtil.checkSchemaValidation(decryptedDocumentElement); AssertionType assertion = (AssertionType) parser.parse(StaxParserUtil.getXMLEventReader(DocumentUtil .getNodeAsStream(decryptedDocumentElement))); responseType.replaceAssertion(oldID, new RTChoiceType(assertion)); return responseType; } catch (Exception e) { throw logger.processingError(e); } }
/** * Create a Response Type * @param ID * @param issuerInfo * @param assertionType * @return * @throws ConfigurationException */ public static ResponseType createResponseType(String ID, IssuerInfoHolder issuerInfo, AssertionType assertionType) throws ConfigurationException { XMLGregorianCalendar issueInstant = XMLTimeUtil.getIssueInstant(); ResponseType responseType = new ResponseType(ID, issueInstant); //Issuer NameIDType issuer = issuerInfo.getIssuer(); responseType.setIssuer(issuer); //Status String statusCode = issuerInfo.getStatusCode(); if (statusCode == null) throw new IllegalArgumentException(ErrorCodes.ISSUER_INFO_MISSING_STATUS_CODE); responseType.setStatus(createStatusType(statusCode)); responseType.addAssertion(new RTChoiceType(assertionType)); return responseType; }
/** * Create a Response Type * @param ID * @param issuerInfo * @param encryptedAssertion a DOM {@link Element} that represents an encrypted assertion * @return * @throws ConfigurationException */ public static ResponseType createResponseType(String ID, IssuerInfoHolder issuerInfo, Element encryptedAssertion) throws ConfigurationException { ResponseType responseType = new ResponseType(ID, XMLTimeUtil.getIssueInstant()); //Issuer NameIDType issuer = issuerInfo.getIssuer(); responseType.setIssuer(issuer); //Status String statusCode = issuerInfo.getStatusCode(); if (statusCode == null) throw new IllegalArgumentException(ErrorCodes.ISSUER_INFO_MISSING_STATUS_CODE); responseType.setStatus(createStatusType(statusCode)); responseType.addAssertion(new RTChoiceType(new EncryptedAssertionType(encryptedAssertion))); return responseType; } }
private ResponseType decryptAssertion(ResponseType responseType, PrivateKey privateKey) throws ProcessingException { if (privateKey == null) throw logger.nullArgumentError("privateKey"); SAML2Response saml2Response = new SAML2Response(); try { Document doc = saml2Response.convert(responseType); Element enc = DocumentUtil.getElement(doc, new QName(JBossSAMLConstants.ENCRYPTED_ASSERTION.get())); if (enc == null) throw logger.samlHandlerNullEncryptedAssertion(); String oldID = enc.getAttribute(JBossSAMLConstants.ID.get()); Document newDoc = DocumentUtil.createDocument(); Node importedNode = newDoc.importNode(enc, true); newDoc.appendChild(importedNode); Element decryptedDocumentElement = XMLEncryptionUtil.decryptElementInDocument(newDoc, privateKey); SAMLParser parser = new SAMLParser(); JAXPValidationUtil.checkSchemaValidation(decryptedDocumentElement); AssertionType assertion = (AssertionType) parser.parse(StaxParserUtil.getXMLEventReader(DocumentUtil .getNodeAsStream(decryptedDocumentElement))); responseType.replaceAssertion(oldID, new RTChoiceType(assertion)); return responseType; } catch (Exception e) { throw logger.processingError(e); } }
/** * Create a Response Type * * @param ID * @param issuerInfo * @param assertionType * * @return * * @throws ConfigurationException */ public static ResponseType createResponseType(String ID, IssuerInfoHolder issuerInfo, AssertionType assertionType) throws ConfigurationException { XMLGregorianCalendar issueInstant = XMLTimeUtil.getIssueInstant(); ResponseType responseType = new ResponseType(ID, issueInstant); // Issuer NameIDType issuer = issuerInfo.getIssuer(); responseType.setIssuer(issuer); // Status String statusCode = issuerInfo.getStatusCode(); if (statusCode == null) throw logger.issuerInfoMissingStatusCodeError(); responseType.setStatus(createStatusType(statusCode)); responseType.addAssertion(new RTChoiceType(assertionType)); return responseType; }