public Object parse(XMLEventReader xmlEventReader) throws ParsingException { // Get the startelement StartElement startElement = StaxParserUtil.getNextStartElement(xmlEventReader); StaxParserUtil.validate(startElement, JBossSAMLConstants.ATTRIBUTE_QUERY.get()); AttributeQueryType attributeQuery = parseBaseAttributes(startElement); while (xmlEventReader.hasNext()) { // Let us peek at the next start element startElement = StaxParserUtil.peekNextStartElement(xmlEventReader); if (startElement == null) break; super.parseCommonElements(startElement, xmlEventReader, attributeQuery); String elementName = StaxParserUtil.getStartElementName(startElement); if (JBossSAMLConstants.SUBJECT.get().equals(elementName)) { attributeQuery.setSubject(getSubject(xmlEventReader)); } else if (JBossSAMLConstants.ATTRIBUTE.get().equals(elementName)) { attributeQuery.add(SAMLParserUtil.parseAttribute(xmlEventReader)); } else if (JBossSAMLConstants.ISSUER.get().equals(elementName)) { continue; } else if (JBossSAMLConstants.SIGNATURE.get().equals(elementName)) { continue; } else throw new RuntimeException(ErrorCodes.UNKNOWN_START_ELEMENT + elementName + "::location=" + startElement.getLocation()); } return attributeQuery; }
/** * Parse an {@code AttributeType} * @param xmlEventReader * @return * @throws ParsingException */ public static AttributeType parseAttribute(XMLEventReader xmlEventReader) throws ParsingException { StartElement startElement = StaxParserUtil.getNextStartElement(xmlEventReader); StaxParserUtil.validate(startElement, JBossSAMLConstants.ATTRIBUTE.get()); AttributeType attributeType = null; Attribute name = startElement.getAttributeByName(new QName(JBossSAMLConstants.NAME.get())); if (name == null) throw new RuntimeException(REQD_ATTRIBUTE + "Name"); attributeType = new AttributeType(StaxParserUtil.getAttributeValue(name)); parseAttributeType(xmlEventReader, startElement, JBossSAMLConstants.ATTRIBUTE.get(), attributeType); return attributeType; }
Object attributeValue = parseAttributeValue(xmlEventReader); attributeType.addAttributeValue(attributeValue);
tag = StaxParserUtil.getStartElementName(startElement); if (tag.equals(WSTrustConstants.XMLDSig.RSA_KEYVALUE)) { keyValue = parseRSAKeyValue(xmlEventReader); } else if (tag.equals(WSTrustConstants.XMLDSig.DSA_KEYVALUE)) { keyValue = parseDSAKeyValue(xmlEventReader); } else throw logger.parserUnknownTag(tag, startElement.getLocation());
StaxParserUtil.validate(startElement, JBossSAMLConstants.IDP_SSO_DESCRIPTOR.get()); List<String> protocolEnum = SAMLParserUtil.parseProtocolEnumeration(startElement); IDPSSODescriptorType idpSSODescriptor = new IDPSSODescriptorType(protocolEnum); idpSSODescriptor.addNameIDFormat(StaxParserUtil.getElementText(xmlEventReader)); } else if (JBossSAMLConstants.ATTRIBUTE.get().equalsIgnoreCase(localPart)) { AttributeType attribute = SAMLParserUtil.parseAttribute(xmlEventReader); idpSSODescriptor.addAttribute(attribute); } else if (JBossSAMLConstants.KEY_DESCRIPTOR.get().equalsIgnoreCase(localPart)) {
AuthnStatementType authnStatementType = SAMLParserUtil.parseAuthnStatement(xmlEventReader); assertion.addStatement(authnStatementType); } else if (JBossSAMLConstants.ATTRIBUTE_STATEMENT.get().equalsIgnoreCase(tag)) { AttributeStatementType attributeStatementType = SAMLParserUtil.parseAttributeStatement(xmlEventReader); assertion.addStatement(attributeStatementType); } else if (JBossSAMLConstants.STATEMENT.get().equalsIgnoreCase(tag)) {
NameIDType nameID = SAMLParserUtil.parseNameIDType(xmlEventReader); logoutRequest.setNameID(nameID);
private RoleDescriptorType parseRoleDescriptor(XMLEventReader xmlEventReader) throws ParsingException { StartElement startElement = StaxParserUtil.getNextStartElement(xmlEventReader); StaxParserUtil.validate(startElement, JBossSAMLConstants.ROLE_DESCRIPTOR.get()); List<String> protocolEnum = SAMLParserUtil.parseProtocolEnumeration(startElement); RoleDescriptorType roleDescriptorType = new RoleDescriptorType(protocolEnum) {}; while (xmlEventReader.hasNext()) { XMLEvent xmlEvent = StaxParserUtil.peek(xmlEventReader); if (xmlEvent instanceof EndElement) { EndElement end = StaxParserUtil.getNextEndElement(xmlEventReader); StaxParserUtil.validate(end, JBossSAMLConstants.ROLE_DESCRIPTOR.get()); break; } startElement = (StartElement) xmlEvent; String localPart = startElement.getName().getLocalPart(); if (JBossSAMLConstants.KEY_DESCRIPTOR.get().equalsIgnoreCase(localPart)) { KeyDescriptorType keyDescriptor = parseKeyDescriptor(xmlEventReader); roleDescriptorType.addKeyDescriptor(keyDescriptor); } else { StaxParserUtil.bypassElementBlock(xmlEventReader, localPart); } } return roleDescriptorType; } }
authnStatementType.setAuthnContext(parseAuthnContextType(xmlEventReader));
String tag = StaxParserUtil.getStartElementName(startElement); if (tag.equals(WSTrustConstants.XMLDSig.KEYINFO)) { KeyInfoType keyInfo = SAMLParserUtil.parseKeyInfo(xmlEventReader); subjectConfirmationData.setAnyType(keyInfo); } else if (tag.equals(WSTrustConstants.XMLEnc.ENCRYPTED_KEY)) {
StaxParserUtil.validate(startElement, JBossSAMLConstants.IDP_SSO_DESCRIPTOR.get()); List<String> protocolEnum = SAMLParserUtil.parseProtocolEnumeration(startElement); IDPSSODescriptorType idpSSODescriptor = new IDPSSODescriptorType(protocolEnum); idpSSODescriptor.addNameIDFormat(StaxParserUtil.getElementText(xmlEventReader)); } else if (JBossSAMLConstants.ATTRIBUTE.get().equalsIgnoreCase(localPart)) { AttributeType attribute = SAMLParserUtil.parseAttribute(xmlEventReader); idpSSODescriptor.addAttribute(attribute); } else if (JBossSAMLConstants.KEY_DESCRIPTOR.get().equalsIgnoreCase(localPart)) {
AuthnStatementType authnStatementType = SAMLParserUtil.parseAuthnStatement(xmlEventReader); assertion.addStatement(authnStatementType); AttributeStatementType attributeStatementType = SAMLParserUtil.parseAttributeStatement(xmlEventReader); assertion.addStatement(attributeStatementType);
NameIDType nameID = SAMLParserUtil.parseNameIDType(xmlEventReader); logoutRequest.setNameID(nameID);
private RoleDescriptorType parseRoleDescriptor(XMLEventReader xmlEventReader) throws ParsingException { StartElement startElement = StaxParserUtil.getNextStartElement(xmlEventReader); StaxParserUtil.validate(startElement, JBossSAMLConstants.ROLE_DESCRIPTOR.get()); List<String> protocolEnum = SAMLParserUtil.parseProtocolEnumeration(startElement); RoleDescriptorType roleDescriptorType = new RoleDescriptorType(protocolEnum) {}; while (xmlEventReader.hasNext()) { XMLEvent xmlEvent = StaxParserUtil.peek(xmlEventReader); if (xmlEvent instanceof EndElement) { EndElement end = StaxParserUtil.getNextEndElement(xmlEventReader); StaxParserUtil.validate(end, JBossSAMLConstants.ROLE_DESCRIPTOR.get()); break; } startElement = (StartElement) xmlEvent; String localPart = startElement.getName().getLocalPart(); if (JBossSAMLConstants.KEY_DESCRIPTOR.get().equalsIgnoreCase(localPart)) { KeyDescriptorType keyDescriptor = parseKeyDescriptor(xmlEventReader); roleDescriptorType.addKeyDescriptor(keyDescriptor); } else { StaxParserUtil.bypassElementBlock(xmlEventReader, localPart); } } return roleDescriptorType; } }
authnStatementType.setAuthnContext(parseAuthnContextType(xmlEventReader));
tag = StaxParserUtil.getStartElementName(startElement); if (tag.equals(WSTrustConstants.XMLDSig.RSA_KEYVALUE)) { keyValue = parseRSAKeyValue(xmlEventReader); } else if (tag.equals(WSTrustConstants.XMLDSig.DSA_KEYVALUE)) { keyValue = parseDSAKeyValue(xmlEventReader); } else throw logger.parserUnknownTag(tag, startElement.getLocation());
String tag = StaxParserUtil.getStartElementName(startElement); if (tag.equals(WSTrustConstants.XMLDSig.KEYINFO)) { KeyInfoType keyInfo = SAMLParserUtil.parseKeyInfo(xmlEventReader); subjectConfirmationData.setAnyType(keyInfo); } else if (tag.equals(WSTrustConstants.XMLEnc.ENCRYPTED_KEY)) {
StaxParserUtil.validate(startElement, JBossSAMLConstants.IDP_SSO_DESCRIPTOR.get()); List<String> protocolEnum = SAMLParserUtil.parseProtocolEnumeration(startElement); IDPSSODescriptorType idpSSODescriptor = new IDPSSODescriptorType(protocolEnum); idpSSODescriptor.addNameIDFormat(StaxParserUtil.getElementText(xmlEventReader)); } else if (JBossSAMLConstants.ATTRIBUTE.get().equalsIgnoreCase(localPart)) { AttributeType attribute = SAMLParserUtil.parseAttribute(xmlEventReader); idpSSODescriptor.addAttribute(attribute); } else if (JBossSAMLConstants.KEY_DESCRIPTOR.get().equalsIgnoreCase(localPart)) {
AuthnStatementType authnStatementType = SAMLParserUtil.parseAuthnStatement(xmlEventReader); assertion.addStatement(authnStatementType); } else if (JBossSAMLConstants.ATTRIBUTE_STATEMENT.get().equalsIgnoreCase(tag)) { AttributeStatementType attributeStatementType = SAMLParserUtil.parseAttributeStatement(xmlEventReader); assertion.addStatement(attributeStatementType); } else if (JBossSAMLConstants.STATEMENT.get().equalsIgnoreCase(tag)) {
logoutRequest.addSessionIndex(StaxParserUtil.getElementText(xmlEventReader)); } else if (JBossSAMLConstants.NAMEID.get().equals(elementName)) { NameIDType nameID = SAMLParserUtil.parseNameIDType(xmlEventReader); logoutRequest.setNameID(nameID); } else if (JBossSAMLConstants.ISSUER.get().equals(elementName)) {