You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by ve...@apache.org on 2016/01/19 00:07:59 UTC
svn commit: r1725383 [14/41] - in /axis/site/axis2/java/rampart-staging: ./
apidocs/ apidocs/org/apache/rahas/ apidocs/org/apache/rahas/class-use/
apidocs/org/apache/rahas/client/ apidocs/org/apache/rahas/impl/
apidocs/org/apache/rahas/impl/class-use/ ...
Modified: axis/site/axis2/java/rampart-staging/code-coverage/org.apache.rahas.impl.util/SAML2Utils.java.html
URL: http://svn.apache.org/viewvc/axis/site/axis2/java/rampart-staging/code-coverage/org.apache.rahas.impl.util/SAML2Utils.java.html?rev=1725383&r1=1725382&r2=1725383&view=diff
==============================================================================
--- axis/site/axis2/java/rampart-staging/code-coverage/org.apache.rahas.impl.util/SAML2Utils.java.html (original)
+++ axis/site/axis2/java/rampart-staging/code-coverage/org.apache.rahas.impl.util/SAML2Utils.java.html Mon Jan 18 23:07:55 2016
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>SAML2Utils.java</title><link rel="stylesheet" href="../.resources/prettify.css" type="text/css"/><script type="text/javascript" src="../.resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="right"><a href="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Coverage Report</a> > <a href="index.html" class="el_package">org.apache.rahas.impl.util</a> > <span class="el_source">SAML2Utils.java</span></div><h1>SAML2Utils.jav
a</h1><pre class="source lang-java linenums">/*
- * Copyright 2004,2005 The Apache Software Foundation.
+ * Copyright The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,31 +17,34 @@
package org.apache.rahas.impl.util;
-import org.apache.axiom.om.impl.dom.jaxp.DocumentBuilderFactoryImpl;
+import org.apache.axiom.om.OMAbstractFactory;
+import org.apache.axiom.om.dom.DOMMetaFactory;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.rahas.RahasConstants;
import org.apache.rahas.TrustException;
import org.apache.ws.security.*;
import org.apache.ws.security.components.crypto.Crypto;
-import org.apache.ws.security.handler.RequestData;
-import org.apache.ws.security.processor.EncryptedKeyProcessor;
import org.apache.ws.security.util.Base64;
+import org.apache.ws.security.util.UUIDGenerator;
import org.apache.xml.security.exceptions.XMLSecurityException;
import org.apache.xml.security.keys.KeyInfo;
import org.apache.xml.security.keys.content.X509Data;
import org.apache.xml.security.keys.content.x509.XMLX509Certificate;
+import org.joda.time.DateTime;
import org.opensaml.Configuration;
import org.opensaml.DefaultBootstrap;
+import org.opensaml.common.SAMLVersion;
+import org.opensaml.saml2.core.NameID;
import org.opensaml.saml2.core.*;
import org.opensaml.xml.ConfigurationException;
import org.opensaml.xml.XMLObject;
import org.opensaml.xml.io.*;
-import org.w3c.dom.*;
-import org.w3c.dom.bootstrap.DOMImplementationRegistry;
-import org.w3c.dom.ls.DOMImplementationLS;
-import org.w3c.dom.ls.LSOutput;
-import org.w3c.dom.ls.LSSerializer;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.w3c.dom.Text;
import org.xml.sax.SAXException;
import javax.security.auth.callback.Callback;
@@ -51,109 +54,78 @@ import javax.xml.parsers.DocumentBuilder
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.security.cert.X509Certificate;
-import java.util.Iterator;
import java.util.List;
-<span class="nc" id="L60">public class SAML2Utils {</span>
+<span class="nc" id="L61">public class SAML2Utils {</span>
-<span class="nc" id="L62"> private static final Log log = LogFactory.getLog(SAML2Utils.class);</span>
+<span class="fc" id="L63"> private static final Log log = LogFactory.getLog(SAML2Utils.class);</span>
public static Element getElementFromAssertion(XMLObject xmlObj) throws TrustException {
try {
-<span class="nc" id="L67"> String jaxpProperty = System.getProperty("javax.xml.parsers.DocumentBuilderFactory");</span>
- //System.setProperty("javax.xml.parsers.DocumentBuilderFactory", "org.apache.xerces.jaxp.DocumentBuilderFactoryImpl");
+<span class="nc" id="L68"> MarshallerFactory marshallerFactory = org.opensaml.xml.Configuration.getMarshallerFactory();</span>
+<span class="nc" id="L69"> Marshaller marshaller = marshallerFactory.getMarshaller(xmlObj);</span>
+<span class="nc" id="L70"> Element assertionElement = marshaller.marshall(xmlObj,</span>
+ ((DOMMetaFactory)OMAbstractFactory.getMetaFactory(OMAbstractFactory.FEATURE_DOM)).newDocumentBuilderFactory().newDocumentBuilder().newDocument());
-<span class="nc" id="L70"> MarshallerFactory marshallerFactory = org.opensaml.xml.Configuration.getMarshallerFactory();</span>
-<span class="nc" id="L71"> Marshaller marshaller = marshallerFactory.getMarshaller(xmlObj);</span>
-<span class="nc" id="L72"> Element element = marshaller.marshall(xmlObj);</span>
-
- // Reset the sys. property to its previous value.
-<span class="nc bnc" id="L75" title="All 2 branches missed."> if (jaxpProperty == null) {</span>
-<span class="nc" id="L76"> System.getProperties().remove("javax.xml.parsers.DocumentBuilderFactory");</span>
- } else {
-<span class="nc" id="L78"> System.setProperty("javax.xml.parsers.DocumentBuilderFactory", jaxpProperty);</span>
- }
-
-<span class="nc" id="L81"> ByteArrayOutputStream byteArrayOutputStrm = new ByteArrayOutputStream();</span>
-
-<span class="nc" id="L83"> DOMImplementationRegistry registry = DOMImplementationRegistry.newInstance();</span>
-
-<span class="nc" id="L85"> DOMImplementationLS impl =</span>
- (DOMImplementationLS) registry.getDOMImplementation("LS");
-
-<span class="nc" id="L88"> LSSerializer writer = impl.createLSSerializer();</span>
-<span class="nc" id="L89"> LSOutput output = impl.createLSOutput();</span>
-<span class="nc" id="L90"> output.setByteStream(byteArrayOutputStrm);</span>
-<span class="nc" id="L91"> writer.write(element, output);</span>
-<span class="nc" id="L92"> String elementString = byteArrayOutputStrm.toString();</span>
-
-<span class="nc" id="L94"> DocumentBuilderFactoryImpl.setDOOMRequired(true);</span>
-
-<span class="nc" id="L96"> DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();</span>
-<span class="nc" id="L97"> documentBuilderFactory.setNamespaceAware(true);</span>
-<span class="nc" id="L98"> DocumentBuilder docBuilder = documentBuilderFactory.newDocumentBuilder();</span>
-<span class="nc" id="L99"> Document document = docBuilder.parse(new ByteArrayInputStream(elementString.trim().getBytes()));</span>
-<span class="nc" id="L100"> Element assertionElement = document.getDocumentElement();</span>
-<span class="nc" id="L101"> DocumentBuilderFactoryImpl.setDOOMRequired(false);</span>
-
-<span class="nc" id="L103"> log.debug("DOM element is created successfully from the OpenSAML2 XMLObject");</span>
-<span class="nc" id="L104"> return assertionElement;</span>
+<span class="nc" id="L73"> log.debug("DOM element is created successfully from the OpenSAML2 XMLObject");</span>
+<span class="nc" id="L74"> return assertionElement;</span>
-<span class="nc" id="L106"> } catch (Exception e) {</span>
-<span class="nc" id="L107"> throw new TrustException("Error creating DOM object from the assertion", e);</span>
+<span class="nc" id="L76"> } catch (Exception e) {</span>
+<span class="nc" id="L77"> throw new TrustException("Error creating DOM object from the assertion", e);</span>
}
}
- /**
+ /**
* Extract certificates or the key available in the SAMLAssertion
*
- * @param elem
+ * @param elem The element to process.
+ * @param crypto The crypto properties.
+ * @param cb Callback class to get the Key
* @return the SAML2 Key Info
- * @throws org.apache.ws.security.WSSecurityException
+ * @throws org.apache.ws.security.WSSecurityException If an error occurred while extracting KeyInfo.
*
*/
public static SAML2KeyInfo getSAML2KeyInfo(Element elem, Crypto crypto,
- CallbackHandler cb) throws WSSecurityException, TrustException {
+ CallbackHandler cb) throws WSSecurityException {
Assertion assertion;
//build the assertion by unmarhalling the DOM element.
try {
-<span class="nc" id="L125"> DefaultBootstrap.bootstrap();</span>
+<span class="nc" id="L97"> DefaultBootstrap.bootstrap();</span>
-<span class="nc" id="L127"> String keyInfoElementString = elem.toString();</span>
-<span class="nc" id="L128"> DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();</span>
-<span class="nc" id="L129"> documentBuilderFactory.setNamespaceAware(true);</span>
-<span class="nc" id="L130"> DocumentBuilder docBuilder = documentBuilderFactory.newDocumentBuilder();</span>
-<span class="nc" id="L131"> Document document = docBuilder.parse(new ByteArrayInputStream(keyInfoElementString.trim().getBytes()));</span>
-<span class="nc" id="L132"> Element element = document.getDocumentElement();</span>
-<span class="nc" id="L133"> UnmarshallerFactory unmarshallerFactory = Configuration</span>
+<span class="nc" id="L99"> String keyInfoElementString = elem.toString();</span>
+<span class="nc" id="L100"> DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();</span>
+<span class="nc" id="L101"> documentBuilderFactory.setNamespaceAware(true);</span>
+<span class="nc" id="L102"> DocumentBuilder docBuilder = documentBuilderFactory.newDocumentBuilder();</span>
+<span class="nc" id="L103"> Document document = docBuilder.parse(new ByteArrayInputStream(keyInfoElementString.trim().getBytes()));</span>
+<span class="nc" id="L104"> Element element = document.getDocumentElement();</span>
+<span class="nc" id="L105"> UnmarshallerFactory unmarshallerFactory = Configuration</span>
.getUnmarshallerFactory();
-<span class="nc" id="L135"> Unmarshaller unmarshaller = unmarshallerFactory</span>
+<span class="nc" id="L107"> Unmarshaller unmarshaller = unmarshallerFactory</span>
.getUnmarshaller(element);
-<span class="nc" id="L137"> assertion = (Assertion) unmarshaller</span>
+<span class="nc" id="L109"> assertion = (Assertion) unmarshaller</span>
.unmarshall(element);
}
-<span class="nc" id="L140"> catch (ConfigurationException e) {</span>
-<span class="nc" id="L141"> throw new WSSecurityException(</span>
+<span class="nc" id="L112"> catch (ConfigurationException e) {</span>
+<span class="nc" id="L113"> throw new WSSecurityException(</span>
WSSecurityException.FAILURE, "Failure in bootstrapping", null, e);
-<span class="nc" id="L143"> } catch (UnmarshallingException e) {</span>
-<span class="nc" id="L144"> throw new WSSecurityException(</span>
+<span class="nc" id="L115"> } catch (UnmarshallingException e) {</span>
+<span class="nc" id="L116"> throw new WSSecurityException(</span>
WSSecurityException.FAILURE, "Failure in unmarshelling the assertion", null, e);
-<span class="nc" id="L146"> } catch (IOException e) {</span>
-<span class="nc" id="L147"> throw new WSSecurityException(</span>
+<span class="nc" id="L118"> } catch (IOException e) {</span>
+<span class="nc" id="L119"> throw new WSSecurityException(</span>
WSSecurityException.FAILURE, "Failure in unmarshelling the assertion", null, e);
-<span class="nc" id="L149"> } catch (SAXException e) {</span>
-<span class="nc" id="L150"> throw new WSSecurityException(</span>
+<span class="nc" id="L121"> } catch (SAXException e) {</span>
+<span class="nc" id="L122"> throw new WSSecurityException(</span>
WSSecurityException.FAILURE, "Failure in unmarshelling the assertion", null, e);
-<span class="nc" id="L152"> } catch (ParserConfigurationException e) {</span>
-<span class="nc" id="L153"> throw new WSSecurityException(</span>
+<span class="nc" id="L124"> } catch (ParserConfigurationException e) {</span>
+<span class="nc" id="L125"> throw new WSSecurityException(</span>
WSSecurityException.FAILURE, "Failure in unmarshelling the assertion", null, e);
-<span class="nc" id="L155"> }</span>
-<span class="nc" id="L156"> return getSAML2KeyInfo(assertion, crypto, cb);</span>
+<span class="nc" id="L127"> }</span>
+<span class="nc" id="L128"> return getSAML2KeyInfo(assertion, crypto, cb);</span>
}
@@ -161,148 +133,140 @@ import java.util.List;
CallbackHandler cb) throws WSSecurityException {
//First ask the cb whether it can provide the secret
-<span class="nc" id="L164"> WSPasswordCallback pwcb = new WSPasswordCallback(assertion.getID(), WSPasswordCallback.CUSTOM_TOKEN);</span>
-<span class="nc bnc" id="L165" title="All 2 branches missed."> if (cb != null) {</span>
+<span class="nc" id="L136"> WSPasswordCallback pwcb = new WSPasswordCallback(assertion.getID(), WSPasswordCallback.CUSTOM_TOKEN);</span>
+<span class="nc bnc" id="L137" title="All 2 branches missed."> if (cb != null) {</span>
try {
-<span class="nc" id="L167"> cb.handle(new Callback[]{pwcb});</span>
-<span class="nc" id="L168"> } catch (Exception e1) {</span>
-<span class="nc" id="L169"> throw new WSSecurityException(WSSecurityException.FAILURE, "noKey",</span>
+<span class="nc" id="L139"> cb.handle(new Callback[]{pwcb});</span>
+<span class="nc" id="L140"> } catch (Exception e1) {</span>
+<span class="nc" id="L141"> throw new WSSecurityException(WSSecurityException.FAILURE, "noKey",</span>
new Object[]{assertion.getID()}, e1);
-<span class="nc" id="L171"> }</span>
+<span class="nc" id="L143"> }</span>
}
-<span class="nc" id="L174"> byte[] key = pwcb.getKey();</span>
+<span class="nc" id="L146"> byte[] key = pwcb.getKey();</span>
-<span class="nc bnc" id="L176" title="All 2 branches missed."> if (key != null) {</span>
-<span class="nc" id="L177"> return new SAML2KeyInfo(assertion, key);</span>
+<span class="nc bnc" id="L148" title="All 2 branches missed."> if (key != null) {</span>
+<span class="nc" id="L149"> return new SAML2KeyInfo(assertion, key);</span>
} else {
// if the cb fails to provide the secret.
try {
// extract the subject
-<span class="nc" id="L182"> Subject samlSubject = assertion.getSubject();</span>
-<span class="nc bnc" id="L183" title="All 2 branches missed."> if (samlSubject == null) {</span>
-<span class="nc" id="L184"> throw new WSSecurityException(WSSecurityException.FAILURE,</span>
+<span class="nc" id="L154"> Subject samlSubject = assertion.getSubject();</span>
+<span class="nc bnc" id="L155" title="All 2 branches missed."> if (samlSubject == null) {</span>
+<span class="nc" id="L156"> throw new WSSecurityException(WSSecurityException.FAILURE,</span>
"invalidSAML2Token", new Object[]{"for Signature (no Subject)"});
}
// extract the subject confirmation element from the subject
-<span class="nc" id="L189"> SubjectConfirmation subjectConf = (SubjectConfirmation) samlSubject.getSubjectConfirmations().get(0);</span>
-<span class="nc bnc" id="L190" title="All 2 branches missed."> if (subjectConf == null) {</span>
-<span class="nc" id="L191"> throw new WSSecurityException(WSSecurityException.FAILURE,</span>
+<span class="nc" id="L161"> SubjectConfirmation subjectConf = samlSubject.getSubjectConfirmations().get(0);</span>
+<span class="nc bnc" id="L162" title="All 2 branches missed."> if (subjectConf == null) {</span>
+<span class="nc" id="L163"> throw new WSSecurityException(WSSecurityException.FAILURE,</span>
"invalidSAML2Token", new Object[]{"for Signature (no Subject Confirmation)"});
}
// Get the subject confirmation data, KeyInfoConfirmationDataType extends SubjectConfirmationData.
-<span class="nc" id="L196"> SubjectConfirmationData scData = subjectConf.getSubjectConfirmationData();</span>
+<span class="nc" id="L168"> SubjectConfirmationData scData = subjectConf.getSubjectConfirmationData();</span>
-<span class="nc bnc" id="L198" title="All 2 branches missed."> if (scData == null) {</span>
-<span class="nc" id="L199"> throw new WSSecurityException(WSSecurityException.FAILURE,</span>
+<span class="nc bnc" id="L170" title="All 2 branches missed."> if (scData == null) {</span>
+<span class="nc" id="L171"> throw new WSSecurityException(WSSecurityException.FAILURE,</span>
"invalidSAML2Token", new Object[]{"for Signature (no Subject Confirmation Data)"});
}
// Get the SAML specific XML representation of the keyInfo object
-<span class="nc" id="L204"> XMLObject KIElem = null;</span>
-<span class="nc" id="L205"> List<XMLObject> scDataElements = scData.getOrderedChildren();</span>
-<span class="nc" id="L206"> Iterator<XMLObject> iterator = scDataElements.iterator();</span>
-<span class="nc bnc" id="L207" title="All 2 branches missed."> while (iterator.hasNext()) {</span>
-<span class="nc" id="L208"> XMLObject xmlObj = iterator.next();</span>
-<span class="nc bnc" id="L209" title="All 2 branches missed."> if (xmlObj instanceof org.opensaml.xml.signature.KeyInfo) {</span>
-<span class="nc" id="L210"> KIElem = xmlObj;</span>
-<span class="nc" id="L211"> break;</span>
+<span class="nc" id="L176"> XMLObject KIElem = null;</span>
+<span class="nc" id="L177"> List<XMLObject> scDataElements = scData.getOrderedChildren();</span>
+<span class="nc bnc" id="L178" title="All 2 branches missed."> for (XMLObject xmlObj : scDataElements) {</span>
+<span class="nc bnc" id="L179" title="All 2 branches missed."> if (xmlObj instanceof org.opensaml.xml.signature.KeyInfo) {</span>
+<span class="nc" id="L180"> KIElem = xmlObj;</span>
+<span class="nc" id="L181"> break;</span>
}
-<span class="nc" id="L213"> }</span>
+<span class="nc" id="L183"> }</span>
Element keyInfoElement;
// Generate a DOM element from the XMLObject.
-<span class="nc bnc" id="L218" title="All 2 branches missed."> if (KIElem != null) {</span>
+<span class="nc bnc" id="L188" title="All 2 branches missed."> if (KIElem != null) {</span>
- // Set the "javax.xml.parsers.DocumentBuilderFactory" system property to make sure the endorsed JAXP
- // implementation is picked over the default jaxp impl shipped with the JDK.
-<span class="nc" id="L222"> String jaxpProperty = System.getProperty("javax.xml.parsers.DocumentBuilderFactory");</span>
- //System.setProperty("javax.xml.parsers.DocumentBuilderFactory", "org.apache.xerces.jaxp.DocumentBuilderFactoryImpl");
-
-<span class="nc" id="L225"> MarshallerFactory marshallerFactory = org.opensaml.xml.Configuration.getMarshallerFactory();</span>
-<span class="nc" id="L226"> Marshaller marshaller = marshallerFactory.getMarshaller(KIElem);</span>
-<span class="nc" id="L227"> keyInfoElement = marshaller.marshall(KIElem);</span>
-
- // Reset the sys. property to its previous value.
-<span class="nc bnc" id="L230" title="All 2 branches missed."> if (jaxpProperty == null) {</span>
-<span class="nc" id="L231"> System.getProperties().remove("javax.xml.parsers.DocumentBuilderFactory");</span>
- } else {
-<span class="nc" id="L233"> System.setProperty("javax.xml.parsers.DocumentBuilderFactory", jaxpProperty);</span>
- }
+<span class="nc" id="L190"> MarshallerFactory marshallerFactory = org.opensaml.xml.Configuration.getMarshallerFactory();</span>
+<span class="nc" id="L191"> Marshaller marshaller = marshallerFactory.getMarshaller(KIElem);</span>
+ try {
+<span class="nc" id="L193"> keyInfoElement = marshaller.marshall(KIElem,</span>
+ ((DOMMetaFactory)OMAbstractFactory.getMetaFactory(OMAbstractFactory.FEATURE_DOM)).newDocumentBuilderFactory().newDocumentBuilder().newDocument());
+<span class="nc" id="L195"> } catch (ParserConfigurationException ex) {</span>
+ // We never get here
+<span class="nc" id="L197"> throw new Error(ex);</span>
+<span class="nc" id="L198"> }</span>
-<span class="nc" id="L236"> } else {</span>
-<span class="nc" id="L237"> throw new WSSecurityException(WSSecurityException.FAILURE,</span>
+<span class="nc" id="L200"> } else {</span>
+<span class="nc" id="L201"> throw new WSSecurityException(WSSecurityException.FAILURE,</span>
"invalidSAML2Token", new Object[]{"for Signature (no key info element)"});
}
-<span class="nc bnc" id="L241" title="All 2 branches missed."> AttributeStatement attrStmt = assertion.getAttributeStatements().size() != 0 ?</span>
- (AttributeStatement) assertion.getAttributeStatements().get(0) : null;
-<span class="nc bnc" id="L243" title="All 2 branches missed."> AuthnStatement authnStmt = assertion.getAuthnStatements().size() != 0 ?</span>
- (AuthnStatement) assertion.getAuthnStatements().get(0) : null;
+<span class="nc bnc" id="L205" title="All 2 branches missed."> AttributeStatement attrStmt = assertion.getAttributeStatements().size() != 0 ?</span>
+ assertion.getAttributeStatements().get(0) : null;
+<span class="nc bnc" id="L207" title="All 2 branches missed."> AuthnStatement authnStmt = assertion.getAuthnStatements().size() != 0 ?</span>
+ assertion.getAuthnStatements().get(0) : null;
// if an attr stmt is present, then it has a symmetric key.
-<span class="nc bnc" id="L247" title="All 2 branches missed."> if (attrStmt != null) {</span>
-<span class="nc" id="L248"> NodeList children = keyInfoElement.getChildNodes();</span>
-<span class="nc" id="L249"> int len = children.getLength();</span>
-
-<span class="nc bnc" id="L251" title="All 2 branches missed."> for (int i = 0; i < len; i++) {</span>
-<span class="nc" id="L252"> Node child = children.item(i);</span>
-<span class="nc bnc" id="L253" title="All 2 branches missed."> if (child.getNodeType() != Node.ELEMENT_NODE) {</span>
-<span class="nc" id="L254"> continue;</span>
+<span class="nc bnc" id="L211" title="All 2 branches missed."> if (attrStmt != null) {</span>
+<span class="nc" id="L212"> NodeList children = keyInfoElement.getChildNodes();</span>
+<span class="nc" id="L213"> int len = children.getLength();</span>
+
+<span class="nc bnc" id="L215" title="All 2 branches missed."> for (int i = 0; i < len; i++) {</span>
+<span class="nc" id="L216"> Node child = children.item(i);</span>
+<span class="nc bnc" id="L217" title="All 2 branches missed."> if (child.getNodeType() != Node.ELEMENT_NODE) {</span>
+<span class="nc" id="L218"> continue;</span>
}
-<span class="nc" id="L256"> QName el = new QName(child.getNamespaceURI(), child.getLocalName());</span>
-<span class="nc bnc" id="L257" title="All 2 branches missed."> if (el.equals(WSSecurityEngine.ENCRYPTED_KEY)) {</span>
+<span class="nc" id="L220"> QName el = new QName(child.getNamespaceURI(), child.getLocalName());</span>
+<span class="nc bnc" id="L221" title="All 2 branches missed."> if (el.equals(WSSecurityEngine.ENCRYPTED_KEY)) {</span>
-<span class="nc" id="L259"> byte[] secret = CommonUtil.getDecryptedBytes(cb, crypto, child);</span>
+<span class="nc" id="L223"> byte[] secret = CommonUtil.getDecryptedBytes(cb, crypto, child);</span>
-<span class="nc" id="L261"> return new SAML2KeyInfo(assertion, secret);</span>
-<span class="nc bnc" id="L262" title="All 2 branches missed."> } else if (el.equals(new QName(WSConstants.WST_NS, "BinarySecret"))) {</span>
-<span class="nc" id="L263"> Text txt = (Text) child.getFirstChild();</span>
-<span class="nc" id="L264"> return new SAML2KeyInfo(assertion, Base64.decode(txt.getData()));</span>
+<span class="nc" id="L225"> return new SAML2KeyInfo(assertion, secret);</span>
+<span class="nc bnc" id="L226" title="All 2 branches missed."> } else if (el.equals(new QName(WSConstants.WST_NS, "BinarySecret"))) {</span>
+<span class="nc" id="L227"> Text txt = (Text) child.getFirstChild();</span>
+<span class="nc" id="L228"> return new SAML2KeyInfo(assertion, Base64.decode(txt.getData()));</span>
}
}
}
// If an authn stmt is present then it has a public key.
-<span class="nc bnc" id="L271" title="All 2 branches missed."> if (authnStmt != null) {</span>
+<span class="nc bnc" id="L235" title="All 2 branches missed."> if (authnStmt != null) {</span>
-<span class="nc" id="L273"> X509Certificate[] certs = null;</span>
+ X509Certificate[] certs;
try {
-<span class="nc" id="L275"> KeyInfo ki = new KeyInfo(keyInfoElement, null);</span>
+<span class="nc" id="L239"> KeyInfo ki = new KeyInfo(keyInfoElement, null);</span>
-<span class="nc bnc" id="L277" title="All 2 branches missed."> if (ki.containsX509Data()) {</span>
-<span class="nc" id="L278"> X509Data data = ki.itemX509Data(0);</span>
-<span class="nc" id="L279"> XMLX509Certificate certElem = null;</span>
-<span class="nc bnc" id="L280" title="All 4 branches missed."> if (data != null && data.containsCertificate()) {</span>
-<span class="nc" id="L281"> certElem = data.itemCertificate(0);</span>
+<span class="nc bnc" id="L241" title="All 2 branches missed."> if (ki.containsX509Data()) {</span>
+<span class="nc" id="L242"> X509Data data = ki.itemX509Data(0);</span>
+<span class="nc" id="L243"> XMLX509Certificate certElem = null;</span>
+<span class="nc bnc" id="L244" title="All 4 branches missed."> if (data != null && data.containsCertificate()) {</span>
+<span class="nc" id="L245"> certElem = data.itemCertificate(0);</span>
}
-<span class="nc bnc" id="L283" title="All 2 branches missed."> if (certElem != null) {</span>
-<span class="nc" id="L284"> X509Certificate cert = certElem.getX509Certificate();</span>
-<span class="nc" id="L285"> certs = new X509Certificate[1];</span>
-<span class="nc" id="L286"> certs[0] = cert;</span>
-<span class="nc" id="L287"> return new SAML2KeyInfo(assertion, certs);</span>
+<span class="nc bnc" id="L247" title="All 2 branches missed."> if (certElem != null) {</span>
+<span class="nc" id="L248"> X509Certificate cert = certElem.getX509Certificate();</span>
+<span class="nc" id="L249"> certs = new X509Certificate[1];</span>
+<span class="nc" id="L250"> certs[0] = cert;</span>
+<span class="nc" id="L251"> return new SAML2KeyInfo(assertion, certs);</span>
}
}
-<span class="nc" id="L291"> } catch (XMLSecurityException e3) {</span>
-<span class="nc" id="L292"> throw new WSSecurityException(WSSecurityException.FAILURE,</span>
+<span class="nc" id="L255"> } catch (XMLSecurityException e3) {</span>
+<span class="nc" id="L256"> throw new WSSecurityException(WSSecurityException.FAILURE,</span>
"invalidSAMLsecurity",
new Object[]{"cannot get certificate (key holder)"}, e3);
-<span class="nc" id="L295"> }</span>
+<span class="nc" id="L259"> }</span>
}
-<span class="nc" id="L300"> throw new WSSecurityException(WSSecurityException.FAILURE,</span>
+<span class="nc" id="L264"> throw new WSSecurityException(WSSecurityException.FAILURE,</span>
"invalidSAMLsecurity",
new Object[]{"cannot get certificate or key "});
-<span class="nc" id="L304"> } catch (MarshallingException e) {</span>
-<span class="nc" id="L305"> throw new WSSecurityException(WSSecurityException.FAILURE,</span>
+<span class="nc" id="L268"> } catch (MarshallingException e) {</span>
+<span class="nc" id="L269"> throw new WSSecurityException(WSSecurityException.FAILURE,</span>
"Failed marshalling the SAML Assertion", null, e);
}
}
@@ -315,14 +279,66 @@ import java.util.List;
* @return Subject Confirmation method
*/
public static String getSAML2SubjectConfirmationMethod(Assertion assertion) {
-<span class="nc" id="L318"> String subjectConfirmationMethod = RahasConstants.SAML20_SUBJECT_CONFIRMATION_HOK;</span>
-<span class="nc" id="L319"> List<SubjectConfirmation> subjectConfirmations = assertion.getSubject().getSubjectConfirmations();</span>
-<span class="nc bnc" id="L320" title="All 2 branches missed."> if (subjectConfirmations.size() > 0) {</span>
-<span class="nc" id="L321"> subjectConfirmationMethod = subjectConfirmations.get(0).getMethod();</span>
+<span class="nc" id="L282"> String subjectConfirmationMethod = RahasConstants.SAML20_SUBJECT_CONFIRMATION_HOK;</span>
+<span class="nc" id="L283"> List<SubjectConfirmation> subjectConfirmations = assertion.getSubject().getSubjectConfirmations();</span>
+<span class="nc bnc" id="L284" title="All 2 branches missed."> if (subjectConfirmations.size() > 0) {</span>
+<span class="nc" id="L285"> subjectConfirmationMethod = subjectConfirmations.get(0).getMethod();</span>
+ }
+<span class="nc" id="L287"> return subjectConfirmationMethod;</span>
+ }
+
+
+ public static Assertion createAssertion() throws TrustException {
+ try {
+<span class="fc" id="L293"> Assertion assertion = (Assertion)CommonUtil.buildXMLObject(Assertion.DEFAULT_ELEMENT_NAME);</span>
+<span class="fc" id="L294"> assertion.setVersion(SAMLVersion.VERSION_20);</span>
+
+ // Set an UUID as the ID of an assertion
+<span class="fc" id="L297"> assertion.setID(UUIDGenerator.getUUID());</span>
+<span class="fc" id="L298"> return assertion;</span>
+<span class="nc" id="L299"> } catch (TrustException e) {</span>
+<span class="nc" id="L300"> throw new TrustException("Unable to create an Assertion object", e);</span>
+ }
+ }
+
+ public static Issuer createIssuer(String issuerName) throws TrustException {
+ try {
+<span class="fc" id="L306"> Issuer issuer = (Issuer)CommonUtil.buildXMLObject(Issuer.DEFAULT_ELEMENT_NAME);</span>
+<span class="fc" id="L307"> issuer.setValue(issuerName);</span>
+<span class="fc" id="L308"> return issuer;</span>
+<span class="nc" id="L309"> } catch (TrustException e) {</span>
+<span class="nc" id="L310"> throw new TrustException("Unable to create an Issuer object", e);</span>
}
-<span class="nc" id="L323"> return subjectConfirmationMethod;</span>
}
+ public static Conditions createConditions(DateTime creationTime, DateTime expirationTime) throws TrustException {
+ try {
+<span class="fc" id="L316"> Conditions conditions = (Conditions)CommonUtil.buildXMLObject(Conditions.DEFAULT_ELEMENT_NAME);</span>
+<span class="fc" id="L317"> conditions.setNotBefore(creationTime);</span>
+<span class="fc" id="L318"> conditions.setNotOnOrAfter(expirationTime);</span>
+<span class="fc" id="L319"> return conditions;</span>
+<span class="nc" id="L320"> } catch (TrustException e) {</span>
+<span class="nc" id="L321"> throw new TrustException("Unable to create an Conditions object");</span>
+ }
+ }
+
+/**
+ * Create named identifier.
+ * @param principalName Name of the subject.
+ * @param format Format of the subject, whether it is an email, uid etc ...
+ * @return The NamedIdentifier object.
+ * @throws org.apache.rahas.TrustException If unable to find the builder.
+ */
+ public static NameID createNamedIdentifier(String principalName, String format) throws TrustException{
+
+<span class="fc" id="L334"> NameID nameId = (NameID)CommonUtil.buildXMLObject(NameID.DEFAULT_ELEMENT_NAME);</span>
+<span class="fc" id="L335"> nameId.setValue(principalName);</span>
+<span class="fc" id="L336"> nameId.setFormat(format);</span>
+
+<span class="fc" id="L338"> return nameId;</span>
+ }
+
+
}
Modified: axis/site/axis2/java/rampart-staging/code-coverage/org.apache.rahas.impl.util/SAMLUtils.html
URL: http://svn.apache.org/viewvc/axis/site/axis2/java/rampart-staging/code-coverage/org.apache.rahas.impl.util/SAMLUtils.html?rev=1725383&r1=1725382&r2=1725383&view=diff
==============================================================================
--- axis/site/axis2/java/rampart-staging/code-coverage/org.apache.rahas.impl.util/SAMLUtils.html (original)
+++ axis/site/axis2/java/rampart-staging/code-coverage/org.apache.rahas.impl.util/SAMLUtils.html Mon Jan 18 23:07:55 2016
@@ -1 +1 @@
-<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>SAMLUtils</title><script type="text/javascript" src="../.resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="right"><a href="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Coverage Report</a> > <a href="index.html" class="el_package">org.apache.rahas.impl.util</a> > <span class="el_class">SAMLUtils</span></div><h1>SAMLUtils</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" oncl
ick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">144 of 604</td><td class="ctr2">76%</td><td class="bar">11 of 16</td><td class="ctr2">31%</td><td class="ctr1">11</td><td class="ctr2">34</td><td class="ctr1">37</td><td class="ct
r2">169</td><td class="ctr1">5</td><td class="ctr2">26</td></tr></tfoot><tbody><tr><td id="a24"><a href="SAMLUtils.java.html#L116" class="el_method">signAssertion(Assertion, Crypto, String, String)</a></td><td class="bar" id="b0"><img src="../.resources/redbar.gif" width="53" height="10" title="53" alt="53"/><img src="../.resources/greenbar.gif" width="66" height="10" title="65" alt="65"/></td><td class="ctr2" id="c19">55%</td><td class="bar" id="d2"><img src="../.resources/redbar.gif" width="15" height="10" title="1" alt="1"/><img src="../.resources/greenbar.gif" width="15" height="10" title="1" alt="1"/></td><td class="ctr2" id="e2">50%</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g1">2</td><td class="ctr1" id="h1">10</td><td class="ctr2" id="i0">32</td><td class="ctr1" id="j5">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a19"><a href="SAMLUtils.java.html#L175" class="el_method">getSAML11SubjectConfirmationMethod(Assertion)</a></td><td class="bar" id="b1"><img
src="../.resources/redbar.gif" width="37" height="10" title="37" alt="37"/></td><td class="ctr2" id="c21">0%</td><td class="bar" id="d0"><img src="../.resources/redbar.gif" width="120" height="10" title="8" alt="8"/></td><td class="ctr2" id="e3">0%</td><td class="ctr1" id="f0">5</td><td class="ctr2" id="g0">5</td><td class="ctr1" id="h0">12</td><td class="ctr2" id="i2">12</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a22"><a href="SAMLUtils.java.html#L741" class="el_method">getThumbprintSha1(X509Certificate)</a></td><td class="bar" id="b2"><img src="../.resources/redbar.gif" width="14" height="10" title="14" alt="14"/><img src="../.resources/greenbar.gif" width="17" height="10" title="17" alt="17"/></td><td class="ctr2" id="c20">55%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f6">0</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h3">4</td><td class="ctr2" id="i3">11</td><td class="ctr1" id="j6">0</td
><td class="ctr2" id="k2">1</td></tr><tr><td id="a17"><a href="SAMLUtils.java.html#L56" class="el_method">getCertChainCollection(X509Certificate[])</a></td><td class="bar" id="b3"><img src="../.resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="c22">0%</td><td class="bar" id="d1"><img src="../.resources/redbar.gif" width="30" height="10" title="2" alt="2"/></td><td class="ctr2" id="e4">0%</td><td class="ctr1" id="f1">2</td><td class="ctr2" id="g2">2</td><td class="ctr1" id="h2">5</td><td class="ctr2" id="i10">5</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a16"><a href="SAMLUtils.java.html#L648" class="el_method">createX509Data(X509Certificate)</a></td><td class="bar" id="b4"><img src="../.resources/redbar.gif" width="11" height="10" title="11" alt="11"/><img src="../.resources/greenbar.gif" width="25" height="10" title="25" alt="25"/></td><td class="ctr2" id="c18">69%</td><td class="bar" id="d6"/><td clas
s="ctr2" id="e6">n/a</td><td class="ctr1" id="f7">0</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h4">3</td><td class="ctr2" id="i4">11</td><td class="ctr1" id="j7">0</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a0"><a href="SAMLUtils.java.html#L90" class="el_method">buildAssertion(Element)</a></td><td class="bar" id="b5"><img src="../.resources/redbar.gif" width="7" height="10" title="7" alt="7"/></td><td class="ctr2" id="c23">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h5">1</td><td class="ctr2" id="i21">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a2"><a href="SAMLUtils.java.html#L762" class="el_method">convertToDateTime(Date)</a></td><td class="bar" id="b6"><img src="../.resources/redbar.gif" width="5" height="10" title="5" alt="5"/></td><td class="ctr2" id="c24">0%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n
/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h6">1</td><td class="ctr2" id="i22">1</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a23"><a href="SAMLUtils.java.html#L51" class="el_method">SAMLUtils()</a></td><td class="bar" id="b7"><img src="../.resources/redbar.gif" width="3" height="10" title="3" alt="3"/></td><td class="ctr2" id="c25">0%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h7">1</td><td class="ctr2" id="i23">1</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a8"><a href="SAMLUtils.java.html#L701" class="el_method">createEncryptedKey(X509Certificate, WSSecEncryptedKey)</a></td><td class="bar" id="b8"><img src="../.resources/greenbar.gif" width="73" height="10" title="72" alt="72"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d10"/><td class="ctr2"
id="e10">n/a</td><td class="ctr1" id="f8">0</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h8">0</td><td class="ctr2" id="i1">20</td><td class="ctr1" id="j8">0</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a1"><a href="SAMLUtils.java.html#L75" class="el_method">buildXMLObject(QName)</a></td><td class="bar" id="b9"><img src="../.resources/greenbar.gif" width="36" height="10" title="36" alt="36"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d3"><img src="../.resources/greenbar.gif" width="30" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">100%</td><td class="ctr1" id="f9">0</td><td class="ctr2" id="g3">2</td><td class="ctr1" id="h9">0</td><td class="ctr2" id="i11">5</td><td class="ctr1" id="j9">0</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a20"><a href="SAMLUtils.java.html#L581" class="el_method">getSymmetricKeyBasedKeyInfo(Document, RahasData, X509Certificate, int, Crypto, int)</a></td><td class="bar" id="b10"><img src="../.resource
s/greenbar.gif" width="36" height="10" title="36" alt="36"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f10">0</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h10">0</td><td class="ctr2" id="i6">7</td><td class="ctr1" id="j10">0</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a4"><a href="SAMLUtils.java.html#L480" class="el_method">createAttribute(String, String, String)</a></td><td class="bar" id="b11"><img src="../.resources/greenbar.gif" width="31" height="10" title="31" alt="31"/></td><td class="ctr2" id="c3">100%</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f11">0</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h11">0</td><td class="ctr2" id="i5">8</td><td class="ctr1" id="j11">0</td><td class="ctr2" id="k11">1</td></tr><tr><td id="a3"><a href="SAMLUtils.java.html#L455" class="el_method">createAssertion(String, DateTime, DateTime, List)</a><
/td><td class="bar" id="b12"><img src="../.resources/greenbar.gif" width="27" height="10" title="27" alt="27"/></td><td class="ctr2" id="c4">100%</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f12">0</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h12">0</td><td class="ctr2" id="i7">7</td><td class="ctr1" id="j12">0</td><td class="ctr2" id="k12">1</td></tr><tr><td id="a21"><a href="SAMLUtils.java.html#L609" class="el_method">getSymmetricKeyBasedKeyInfoContent(Document, byte[], X509Certificate, int, Crypto)</a></td><td class="bar" id="b13"><img src="../.resources/greenbar.gif" width="22" height="10" title="22" alt="22"/></td><td class="ctr2" id="c5">100%</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f13">0</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h13">0</td><td class="ctr2" id="i8">7</td><td class="ctr1" id="j13">0</td><td class="ctr2" id="k13">1</td></tr><tr><td id="a14"><a href="SA
MLUtils.java.html#L255" class="el_method">createSubjectConfirmation(String, KeyInfo)</a></td><td class="bar" id="b14"><img src="../.resources/greenbar.gif" width="19" height="10" title="19" alt="19"/></td><td class="ctr2" id="c6">100%</td><td class="bar" id="d4"><img src="../.resources/greenbar.gif" width="30" height="10" title="2" alt="2"/></td><td class="ctr2" id="e1">100%</td><td class="ctr1" id="f14">0</td><td class="ctr2" id="g4">2</td><td class="ctr1" id="h14">0</td><td class="ctr2" id="i9">6</td><td class="ctr1" id="j14">0</td><td class="ctr2" id="k14">1</td></tr><tr><td id="a13"><a href="SAMLUtils.java.html#L294" class="el_method">createSubject(NameIdentifier, String, KeyInfo)</a></td><td class="bar" id="b15"><img src="../.resources/greenbar.gif" width="16" height="10" title="16" alt="16"/></td><td class="ctr2" id="c7">100%</td><td class="bar" id="d15"/><td class="ctr2" id="e15">n/a</td><td class="ctr1" id="f15">0</td><td class="ctr2" id="g15">1</td><td class="ctr1" id="h15"
>0</td><td class="ctr2" id="i12">5</td><td class="ctr1" id="j15">0</td><td class="ctr2" id="k15">1</td></tr><tr><td id="a6"><a href="SAMLUtils.java.html#L330" class="el_method">createAuthenticationStatement(Subject, String, DateTime)</a></td><td class="bar" id="b16"><img src="../.resources/greenbar.gif" width="15" height="10" title="15" alt="15"/></td><td class="ctr2" id="c8">100%</td><td class="bar" id="d16"/><td class="ctr2" id="e16">n/a</td><td class="ctr1" id="f16">0</td><td class="ctr2" id="g16">1</td><td class="ctr1" id="h16">0</td><td class="ctr2" id="i13">5</td><td class="ctr1" id="j16">0</td><td class="ctr2" id="k16">1</td></tr><tr><td id="a5"><a href="SAMLUtils.java.html#L377" class="el_method">createAttributeStatement(Subject, List)</a></td><td class="bar" id="b17"><img src="../.resources/greenbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="c9">100%</td><td class="bar" id="d17"/><td class="ctr2" id="e17">n/a</td><td class="ctr1" id="f17">0</
td><td class="ctr2" id="g17">1</td><td class="ctr1" id="h17">0</td><td class="ctr2" id="i14">4</td><td class="ctr1" id="j17">0</td><td class="ctr2" id="k17">1</td></tr><tr><td id="a12"><a href="SAMLUtils.java.html#L210" class="el_method">createNamedIdentifier(String, String)</a></td><td class="bar" id="b18"><img src="../.resources/greenbar.gif" width="12" height="10" title="12" alt="12"/></td><td class="ctr2" id="c10">100%</td><td class="bar" id="d18"/><td class="ctr2" id="e18">n/a</td><td class="ctr1" id="f18">0</td><td class="ctr2" id="g18">1</td><td class="ctr1" id="h18">0</td><td class="ctr2" id="i15">4</td><td class="ctr1" id="j18">0</td><td class="ctr2" id="k18">1</td></tr><tr><td id="a7"><a href="SAMLUtils.java.html#L398" class="el_method">createConditions(DateTime, DateTime)</a></td><td class="bar" id="b19"><img src="../.resources/greenbar.gif" width="12" height="10" title="12" alt="12"/></td><td class="ctr2" id="c11">100%</td><td class="bar" id="d19"/><td class="ctr2" id="e
19">n/a</td><td class="ctr1" id="f19">0</td><td class="ctr2" id="g19">1</td><td class="ctr1" id="h19">0</td><td class="ctr2" id="i16">4</td><td class="ctr1" id="j19">0</td><td class="ctr2" id="k19">1</td></tr><tr><td id="a15"><a href="SAMLUtils.java.html#L233" class="el_method">createSubjectConfirmationMethod(String)</a></td><td class="bar" id="b20"><img src="../.resources/greenbar.gif" width="9" height="10" title="9" alt="9"/></td><td class="ctr2" id="c12">100%</td><td class="bar" id="d20"/><td class="ctr2" id="e20">n/a</td><td class="ctr1" id="f20">0</td><td class="ctr2" id="g20">1</td><td class="ctr1" id="h20">0</td><td class="ctr2" id="i17">3</td><td class="ctr1" id="j20">0</td><td class="ctr2" id="k20">1</td></tr><tr><td id="a10"><a href="SAMLUtils.java.html#L521" class="el_method">createKeyInfo(EncryptedKey)</a></td><td class="bar" id="b21"><img src="../.resources/greenbar.gif" width="9" height="10" title="9" alt="9"/></td><td class="ctr2" id="c13">100%</td><td class="bar" id=
"d21"/><td class="ctr2" id="e21">n/a</td><td class="ctr1" id="f21">0</td><td class="ctr2" id="g21">1</td><td class="ctr1" id="h21">0</td><td class="ctr2" id="i18">3</td><td class="ctr1" id="j21">0</td><td class="ctr2" id="k21">1</td></tr><tr><td id="a11"><a href="SAMLUtils.java.html#L540" class="el_method">createKeyInfo(X509Data)</a></td><td class="bar" id="b22"><img src="../.resources/greenbar.gif" width="9" height="10" title="9" alt="9"/></td><td class="ctr2" id="c14">100%</td><td class="bar" id="d22"/><td class="ctr2" id="e22">n/a</td><td class="ctr1" id="f22">0</td><td class="ctr2" id="g22">1</td><td class="ctr1" id="h22">0</td><td class="ctr2" id="i19">3</td><td class="ctr1" id="j22">0</td><td class="ctr2" id="k22">1</td></tr><tr><td id="a18"><a href="SAMLUtils.java.html#L553" class="el_method">getCertificateBasedKeyInfo(X509Certificate)</a></td><td class="bar" id="b23"><img src="../.resources/greenbar.gif" width="6" height="10" title="6" alt="6"/></td><td class="ctr2" id="c15"
>100%</td><td class="bar" id="d23"/><td class="ctr2" id="e23">n/a</td><td class="ctr1" id="f23">0</td><td class="ctr2" id="g23">1</td><td class="ctr1" id="h23">0</td><td class="ctr2" id="i20">2</td><td class="ctr1" id="j23">0</td><td class="ctr2" id="k23">1</td></tr><tr><td id="a9"><a href="SAMLUtils.java.html#L505" class="el_method">createKeyInfo()</a></td><td class="bar" id="b24"><img src="../.resources/greenbar.gif" width="4" height="10" title="4" alt="4"/></td><td class="ctr2" id="c16">100%</td><td class="bar" id="d24"/><td class="ctr2" id="e24">n/a</td><td class="ctr1" id="f24">0</td><td class="ctr2" id="g24">1</td><td class="ctr1" id="h24">0</td><td class="ctr2" id="i24">1</td><td class="ctr1" id="j24">0</td><td class="ctr2" id="k24">1</td></tr><tr><td id="a25"><a href="SAMLUtils.java.html#L53" class="el_method">static {...}</a></td><td class="bar" id="b25"><img src="../.resources/greenbar.gif" width="4" height="10" title="4" alt="4"/></td><td class="ctr2" id="c17">100%</td><t
d class="bar" id="d25"/><td class="ctr2" id="e25">n/a</td><td class="ctr1" id="f25">0</td><td class="ctr2" id="g25">1</td><td class="ctr1" id="h25">0</td><td class="ctr2" id="i25">1</td><td class="ctr1" id="j25">0</td><td class="ctr2" id="k25">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.6.1.201212231917</span></div></body></html>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>SAMLUtils</title><script type="text/javascript" src="../.resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="right"><a href="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Coverage Report</a> > <a href="index.html" class="el_package">org.apache.rahas.impl.util</a> > <span class="el_class">SAMLUtils</span></div><h1>SAMLUtils</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" oncl
ick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">128 of 463</td><td class="ctr2">72%</td><td class="bar">11 of 14</td><td class="ctr2">21%</td><td class="ctr1">10</td><td class="ctr2">27</td><td class="ctr1">33</td><td class="ct
r2">136</td><td class="ctr1">4</td><td class="ctr2">20</td></tr></tfoot><tbody><tr><td id="a18"><a href="SAMLUtils.java.html#L94" class="el_method">signAssertion(Assertion, Crypto, String, String)</a></td><td class="bar" id="b0"><img src="../.resources/redbar.gif" width="53" height="10" title="53" alt="53"/><img src="../.resources/greenbar.gif" width="66" height="10" title="65" alt="65"/></td><td class="ctr2" id="c14">55%</td><td class="bar" id="d2"><img src="../.resources/redbar.gif" width="15" height="10" title="1" alt="1"/><img src="../.resources/greenbar.gif" width="15" height="10" title="1" alt="1"/></td><td class="ctr2" id="e1">50%</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g1">2</td><td class="ctr1" id="h1">10</td><td class="ctr2" id="i0">32</td><td class="ctr1" id="j4">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a15"><a href="SAMLUtils.java.html#L153" class="el_method">getSAML11SubjectConfirmationMethod(Assertion)</a></td><td class="bar" id="b1"><img s
rc="../.resources/redbar.gif" width="37" height="10" title="37" alt="37"/></td><td class="ctr2" id="c16">0%</td><td class="bar" id="d0"><img src="../.resources/redbar.gif" width="120" height="10" title="8" alt="8"/></td><td class="ctr2" id="e2">0%</td><td class="ctr1" id="f0">5</td><td class="ctr2" id="g0">5</td><td class="ctr1" id="h0">12</td><td class="ctr2" id="i2">12</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a16"><a href="SAMLUtils.java.html#L600" class="el_method">getThumbprintSha1(X509Certificate)</a></td><td class="bar" id="b2"><img src="../.resources/redbar.gif" width="14" height="10" title="14" alt="14"/><img src="../.resources/greenbar.gif" width="17" height="10" title="17" alt="17"/></td><td class="ctr2" id="c15">55%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f5">0</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h3">4</td><td class="ctr2" id="i3">11</td><td class="ctr1" id="j5">0</td>
<td class="ctr2" id="k2">1</td></tr><tr><td id="a14"><a href="SAMLUtils.java.html#L50" class="el_method">getCertChainCollection(X509Certificate[])</a></td><td class="bar" id="b3"><img src="../.resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="c17">0%</td><td class="bar" id="d1"><img src="../.resources/redbar.gif" width="30" height="10" title="2" alt="2"/></td><td class="ctr2" id="e3">0%</td><td class="ctr1" id="f1">2</td><td class="ctr2" id="g2">2</td><td class="ctr1" id="h2">5</td><td class="ctr2" id="i7">5</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a0"><a href="SAMLUtils.java.html#L68" class="el_method">buildAssertion(Element)</a></td><td class="bar" id="b4"><img src="../.resources/redbar.gif" width="7" height="10" title="7" alt="7"/></td><td class="ctr2" id="c18">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g5">1</td><td class="
ctr1" id="h4">1</td><td class="ctr2" id="i16">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a17"><a href="SAMLUtils.java.html#L44" class="el_method">SAMLUtils()</a></td><td class="bar" id="b5"><img src="../.resources/redbar.gif" width="3" height="10" title="3" alt="3"/></td><td class="ctr2" id="c19">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h5">1</td><td class="ctr2" id="i17">1</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a6"><a href="SAMLUtils.java.html#L560" class="el_method">createEncryptedKey(X509Certificate, WSSecEncryptedKey)</a></td><td class="bar" id="b6"><img src="../.resources/greenbar.gif" width="73" height="10" title="72" alt="72"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f6">0</td><td class="ctr2" id="g7">1</td><td
class="ctr1" id="h6">0</td><td class="ctr2" id="i1">20</td><td class="ctr1" id="j6">0</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a2"><a href="SAMLUtils.java.html#L458" class="el_method">createAttribute(String, String, String)</a></td><td class="bar" id="b7"><img src="../.resources/greenbar.gif" width="31" height="10" title="31" alt="31"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f7">0</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h7">0</td><td class="ctr2" id="i4">8</td><td class="ctr1" id="j7">0</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a1"><a href="SAMLUtils.java.html#L433" class="el_method">createAssertion(String, DateTime, DateTime, List)</a></td><td class="bar" id="b8"><img src="../.resources/greenbar.gif" width="27" height="10" title="27" alt="27"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f8">0</t
d><td class="ctr2" id="g9">1</td><td class="ctr1" id="h8">0</td><td class="ctr2" id="i5">7</td><td class="ctr1" id="j8">0</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a12"><a href="SAMLUtils.java.html#L233" class="el_method">createSubjectConfirmation(String, KeyInfo)</a></td><td class="bar" id="b9"><img src="../.resources/greenbar.gif" width="19" height="10" title="19" alt="19"/></td><td class="ctr2" id="c3">100%</td><td class="bar" id="d3"><img src="../.resources/greenbar.gif" width="30" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">100%</td><td class="ctr1" id="f9">0</td><td class="ctr2" id="g3">2</td><td class="ctr1" id="h9">0</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j9">0</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a11"><a href="SAMLUtils.java.html#L272" class="el_method">createSubject(NameIdentifier, String, KeyInfo)</a></td><td class="bar" id="b10"><img src="../.resources/greenbar.gif" width="16" height="10" title="16" alt="16"/></t
d><td class="ctr2" id="c4">100%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">0</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h10">0</td><td class="ctr2" id="i8">5</td><td class="ctr1" id="j10">0</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a4"><a href="SAMLUtils.java.html#L308" class="el_method">createAuthenticationStatement(Subject, String, DateTime)</a></td><td class="bar" id="b11"><img src="../.resources/greenbar.gif" width="15" height="10" title="15" alt="15"/></td><td class="ctr2" id="c5">100%</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">0</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h11">0</td><td class="ctr2" id="i9">5</td><td class="ctr1" id="j11">0</td><td class="ctr2" id="k11">1</td></tr><tr><td id="a3"><a href="SAMLUtils.java.html#L355" class="el_method">createAttributeStatement(Subject, List)</a></td><td class="bar" id="b12"><img src="../.resources/gre
enbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="c6">100%</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">0</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h12">0</td><td class="ctr2" id="i10">4</td><td class="ctr1" id="j12">0</td><td class="ctr2" id="k12">1</td></tr><tr><td id="a10"><a href="SAMLUtils.java.html#L188" class="el_method">createNamedIdentifier(String, String)</a></td><td class="bar" id="b13"><img src="../.resources/greenbar.gif" width="12" height="10" title="12" alt="12"/></td><td class="ctr2" id="c7">100%</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f13">0</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h13">0</td><td class="ctr2" id="i11">4</td><td class="ctr1" id="j13">0</td><td class="ctr2" id="k13">1</td></tr><tr><td id="a5"><a href="SAMLUtils.java.html#L376" class="el_method">createConditions(DateTime, DateTime)</a></td><td class="ba
r" id="b14"><img src="../.resources/greenbar.gif" width="12" height="10" title="12" alt="12"/></td><td class="ctr2" id="c8">100%</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">0</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h14">0</td><td class="ctr2" id="i12">4</td><td class="ctr1" id="j14">0</td><td class="ctr2" id="k14">1</td></tr><tr><td id="a13"><a href="SAMLUtils.java.html#L211" class="el_method">createSubjectConfirmationMethod(String)</a></td><td class="bar" id="b15"><img src="../.resources/greenbar.gif" width="9" height="10" title="9" alt="9"/></td><td class="ctr2" id="c9">100%</td><td class="bar" id="d15"/><td class="ctr2" id="e15">n/a</td><td class="ctr1" id="f15">0</td><td class="ctr2" id="g15">1</td><td class="ctr1" id="h15">0</td><td class="ctr2" id="i13">3</td><td class="ctr1" id="j15">0</td><td class="ctr2" id="k15">1</td></tr><tr><td id="a8"><a href="SAMLUtils.java.html#L499" class="el_method">createKeyInfo(Encryp
tedKey)</a></td><td class="bar" id="b16"><img src="../.resources/greenbar.gif" width="9" height="10" title="9" alt="9"/></td><td class="ctr2" id="c10">100%</td><td class="bar" id="d16"/><td class="ctr2" id="e16">n/a</td><td class="ctr1" id="f16">0</td><td class="ctr2" id="g16">1</td><td class="ctr1" id="h16">0</td><td class="ctr2" id="i14">3</td><td class="ctr1" id="j16">0</td><td class="ctr2" id="k16">1</td></tr><tr><td id="a9"><a href="SAMLUtils.java.html#L518" class="el_method">createKeyInfo(X509Data)</a></td><td class="bar" id="b17"><img src="../.resources/greenbar.gif" width="9" height="10" title="9" alt="9"/></td><td class="ctr2" id="c11">100%</td><td class="bar" id="d17"/><td class="ctr2" id="e17">n/a</td><td class="ctr1" id="f17">0</td><td class="ctr2" id="g17">1</td><td class="ctr1" id="h17">0</td><td class="ctr2" id="i15">3</td><td class="ctr1" id="j17">0</td><td class="ctr2" id="k17">1</td></tr><tr><td id="a7"><a href="SAMLUtils.java.html#L483" class="el_method">createKey
Info()</a></td><td class="bar" id="b18"><img src="../.resources/greenbar.gif" width="4" height="10" title="4" alt="4"/></td><td class="ctr2" id="c12">100%</td><td class="bar" id="d18"/><td class="ctr2" id="e18">n/a</td><td class="ctr1" id="f18">0</td><td class="ctr2" id="g18">1</td><td class="ctr1" id="h18">0</td><td class="ctr2" id="i18">1</td><td class="ctr1" id="j18">0</td><td class="ctr2" id="k18">1</td></tr><tr><td id="a19"><a href="SAMLUtils.java.html#L46" class="el_method">static {...}</a></td><td class="bar" id="b19"><img src="../.resources/greenbar.gif" width="4" height="10" title="4" alt="4"/></td><td class="ctr2" id="c13">100%</td><td class="bar" id="d19"/><td class="ctr2" id="e19">n/a</td><td class="ctr1" id="f19">0</td><td class="ctr2" id="g19">1</td><td class="ctr1" id="h19">0</td><td class="ctr2" id="i19">1</td><td class="ctr1" id="j19">0</td><td class="ctr2" id="k19">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.e
clemma.org/jacoco">JaCoCo</a> 0.6.1.201212231917</span></div></body></html>
\ No newline at end of file