<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<title>SAMLUtils (Apache Rampart)</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="SAMLUtils (Apache Rampart)";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/SAMLUtils.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/rahas/impl/util/SAMLNameIdentifierCallback.html" title="class in org.apache.rahas.impl.util"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/rahas/impl/util/SignKeyHolder.html" title="class in org.apache.rahas.impl.util"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/rahas/impl/util/SAMLUtils.html" target="_top">Frames</a></li>
<li><a href="SAMLUtils.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.rahas.impl.util</div>
<h2 title="Class SAMLUtils" class="title">Class SAMLUtils</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.rahas.impl.util.SAMLUtils</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="strong">SAMLUtils</span>
extends <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
<div class="block">Utility class for SAML 1 assertions. Responsible for manipulating all SAML1 specific objects
 like Assertion, ConfirmationMethod etc ...</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../../../org/apache/rahas/impl/util/SAMLUtils.html#SAMLUtils()">SAMLUtils</a></strong>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static org.opensaml.saml1.core.Assertion</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/rahas/impl/util/SAMLUtils.html#buildAssertion(org.w3c.dom.Element)">buildAssertion</a></strong>(<a href="http://docs.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</a>&nbsp;assertionElement)</code>
<div class="block">Builds an assertion from an XML element.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static org.opensaml.saml1.core.Assertion</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/rahas/impl/util/SAMLUtils.html#createAssertion(java.lang.String, org.joda.time.DateTime, org.joda.time.DateTime, java.util.List)">createAssertion</a></strong>(<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;issuerName,
               org.joda.time.DateTime&nbsp;notBefore,
               org.joda.time.DateTime&nbsp;notOnOrAfter,
               <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.opensaml.saml1.core.Statement&gt;&nbsp;statements)</code>
<div class="block">This method creates the final SAML assertion.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static org.opensaml.saml1.core.Attribute</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/rahas/impl/util/SAMLUtils.html#createAttribute(java.lang.String, java.lang.String, java.lang.String)">createAttribute</a></strong>(<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
               <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
               <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
<div class="block">Creates a SAML attribute similar to following,
 <saml:Attribute
       AttributeName="MemberLevel"
       AttributeNamespace="http://www.oasis.open.org/Catalyst2002/attributes">
       <saml:AttributeValue>gold</saml:AttributeValue>
   </saml:Attribute></div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static org.opensaml.saml1.core.AttributeStatement</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/rahas/impl/util/SAMLUtils.html#createAttributeStatement(org.opensaml.saml1.core.Subject, java.util.List)">createAttributeStatement</a></strong>(org.opensaml.saml1.core.Subject&nbsp;subject,
                        <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.opensaml.saml1.core.Attribute&gt;&nbsp;attributeList)</code>
<div class="block">Creates an attribute statement.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static org.opensaml.saml1.core.AuthenticationStatement</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/rahas/impl/util/SAMLUtils.html#createAuthenticationStatement(org.opensaml.saml1.core.Subject, java.lang.String, org.joda.time.DateTime)">createAuthenticationStatement</a></strong>(org.opensaml.saml1.core.Subject&nbsp;subject,
                             <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;authenticationMethod,
                             org.joda.time.DateTime&nbsp;authenticationInstant)</code>
<div class="block">Creates an AuthenticationStatement.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static org.opensaml.saml1.core.Conditions</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/rahas/impl/util/SAMLUtils.html#createConditions(org.joda.time.DateTime, org.joda.time.DateTime)">createConditions</a></strong>(org.joda.time.DateTime&nbsp;notBefore,
                org.joda.time.DateTime&nbsp;notOnOrAfter)</code>
<div class="block">Creates Conditions object.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static org.opensaml.xml.signature.KeyInfo</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/rahas/impl/util/SAMLUtils.html#createKeyInfo()">createKeyInfo</a></strong>()</code>
<div class="block">Creates a KeyInfo object</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static org.opensaml.xml.signature.KeyInfo</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/rahas/impl/util/SAMLUtils.html#createKeyInfo(org.opensaml.xml.encryption.EncryptedKey)">createKeyInfo</a></strong>(org.opensaml.xml.encryption.EncryptedKey&nbsp;encryptedKey)</code>
<div class="block">Creates a KeyInfo element given EncryptedKey.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static org.opensaml.xml.signature.KeyInfo</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/rahas/impl/util/SAMLUtils.html#createKeyInfo(org.opensaml.xml.signature.X509Data)">createKeyInfo</a></strong>(org.opensaml.xml.signature.X509Data&nbsp;x509Data)</code>
<div class="block">Creates a KeyInfo element given EncryptedKey.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static org.opensaml.saml1.core.NameIdentifier</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/rahas/impl/util/SAMLUtils.html#createNamedIdentifier(java.lang.String, java.lang.String)">createNamedIdentifier</a></strong>(<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;principalName,
                     <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;format)</code>
<div class="block">Create named identifier.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static org.opensaml.saml1.core.Subject</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/rahas/impl/util/SAMLUtils.html#createSubject(org.opensaml.saml1.core.NameIdentifier, java.lang.String, org.opensaml.xml.signature.KeyInfo)">createSubject</a></strong>(org.opensaml.saml1.core.NameIdentifier&nbsp;nameIdentifier,
             <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;confirmationMethod,
             org.opensaml.xml.signature.KeyInfo&nbsp;keyInfoContent)</code>
<div class="block">Creates an opensaml Subject representation.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static org.opensaml.saml1.core.SubjectConfirmation</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/rahas/impl/util/SAMLUtils.html#createSubjectConfirmation(java.lang.String, org.opensaml.xml.signature.KeyInfo)">createSubjectConfirmation</a></strong>(<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;confirmationMethod,
                         org.opensaml.xml.signature.KeyInfo&nbsp;keyInfoContent)</code>
<div class="block">Creates opensaml SubjectConfirmation representation.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static org.opensaml.saml1.core.ConfirmationMethod</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/rahas/impl/util/SAMLUtils.html#createSubjectConfirmationMethod(java.lang.String)">createSubjectConfirmationMethod</a></strong>(<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;confirmationMethod)</code>
<div class="block">Creates the subject confirmation method.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/security/cert/X509Certificate.html?is-external=true" title="class or interface in java.security.cert">X509Certificate</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/rahas/impl/util/SAMLUtils.html#getCertChainCollection(java.security.cert.X509Certificate[])">getCertChainCollection</a></strong>(<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/security/cert/X509Certificate.html?is-external=true" title="class or interface in java.security.cert">X509Certificate</a>[]&nbsp;issuerCerts)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/rahas/impl/util/SAMLUtils.html#getSAML11SubjectConfirmationMethod(org.opensaml.saml1.core.Assertion)">getSAML11SubjectConfirmationMethod</a></strong>(org.opensaml.saml1.core.Assertion&nbsp;assertion)</code>
<div class="block">Get subject confirmation method of the given SAML 1.1 Assertion.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/rahas/impl/util/SAMLUtils.html#signAssertion(org.opensaml.saml1.core.Assertion, org.apache.ws.security.components.crypto.Crypto, java.lang.String, java.lang.String)">signAssertion</a></strong>(org.opensaml.saml1.core.Assertion&nbsp;assertion,
             org.apache.ws.security.components.crypto.Crypto&nbsp;crypto,
             <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;issuerKeyAlias,
             <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;issuerKeyPassword)</code>
<div class="block">Signs the SAML assertion.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="SAMLUtils()">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>SAMLUtils</h4>
<pre>public&nbsp;SAMLUtils()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="getCertChainCollection(java.security.cert.X509Certificate[])">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCertChainCollection</h4>
<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/security/cert/X509Certificate.html?is-external=true" title="class or interface in java.security.cert">X509Certificate</a>&gt;&nbsp;getCertChainCollection(<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/security/cert/X509Certificate.html?is-external=true" title="class or interface in java.security.cert">X509Certificate</a>[]&nbsp;issuerCerts)</pre>
</li>
</ul>
<a name="buildAssertion(org.w3c.dom.Element)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildAssertion</h4>
<pre>public static&nbsp;org.opensaml.saml1.core.Assertion&nbsp;buildAssertion(<a href="http://docs.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</a>&nbsp;assertionElement)</pre>
<div class="block">Builds an assertion from an XML element.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>assertionElement</code> - The XML element.</dd>
<dt><span class="strong">Returns:</span></dt><dd>An Assertion object.</dd></dl>
</li>
</ul>
<a name="signAssertion(org.opensaml.saml1.core.Assertion, org.apache.ws.security.components.crypto.Crypto, java.lang.String, java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>signAssertion</h4>
<pre>public static&nbsp;void&nbsp;signAssertion(org.opensaml.saml1.core.Assertion&nbsp;assertion,
                 org.apache.ws.security.components.crypto.Crypto&nbsp;crypto,
                 <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;issuerKeyAlias,
                 <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;issuerKeyPassword)
                          throws <a href="../../../../../org/apache/rahas/TrustException.html" title="class in org.apache.rahas">TrustException</a></pre>
<div class="block">Signs the SAML assertion. The steps to sign SAML assertion is as follows,
 <ol>
     <li>Get certificate for issuer alias</li>
     <li>Extract private key</li>
     <li>Create <code>Credential</code> object</li>
     <li>Create <code>Signature</code> object</li>
     <li>Set Signature object in Assertion</li>
     <li>Prepare signing environment - SecurityHelper.prepareSignatureParams</li>
     <li>Perform signing action - Signer.signObject</li>
 </ol></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>assertion</code> - The assertion to be signed.</dd><dd><code>crypto</code> - Certificate and private key data are stored in Crypto object</dd><dd><code>issuerKeyAlias</code> - Key alias</dd><dd><code>issuerKeyPassword</code> - Key password</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/rahas/TrustException.html" title="class in org.apache.rahas">TrustException</a></code> - If an error occurred while signing the assertion.</dd></dl>
</li>
</ul>
<a name="getSAML11SubjectConfirmationMethod(org.opensaml.saml1.core.Assertion)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSAML11SubjectConfirmationMethod</h4>
<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getSAML11SubjectConfirmationMethod(org.opensaml.saml1.core.Assertion&nbsp;assertion)</pre>
<div class="block">Get subject confirmation method of the given SAML 1.1 Assertion.
 This is used in rampart-core.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>assertion</code> - SAML 1.1 Assertion</dd>
<dt><span class="strong">Returns:</span></dt><dd>subject confirmation method</dd></dl>
</li>
</ul>
<a name="createNamedIdentifier(java.lang.String, java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createNamedIdentifier</h4>
<pre>public static&nbsp;org.opensaml.saml1.core.NameIdentifier&nbsp;createNamedIdentifier(<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;principalName,
                                                           <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;format)
                                                                    throws <a href="../../../../../org/apache/rahas/TrustException.html" title="class in org.apache.rahas">TrustException</a></pre>
<div class="block">Create named identifier.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>principalName</code> - Name of the subject.</dd><dd><code>format</code> - Format of the subject, whether it is an email, uid etc ...</dd>
<dt><span class="strong">Returns:</span></dt><dd>The NamedIdentifier object.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/rahas/TrustException.html" title="class in org.apache.rahas">TrustException</a></code> - If unable to find the builder.</dd></dl>
</li>
</ul>
<a name="createSubjectConfirmationMethod(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createSubjectConfirmationMethod</h4>
<pre>public static&nbsp;org.opensaml.saml1.core.ConfirmationMethod&nbsp;createSubjectConfirmationMethod(<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;confirmationMethod)
                                                                                  throws <a href="../../../../../org/apache/rahas/TrustException.html" title="class in org.apache.rahas">TrustException</a></pre>
<div class="block">Creates the subject confirmation method.
 Relevant XML element would look like as follows,
 <saml:ConfirmationMethod>
       urn:oasis:names:tc:SAML:1.0:cm:holder-of-key
  </saml:ConfirmationMethod></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>confirmationMethod</code> - Name of the actual confirmation method. Could be
      holder-of-key - "urn:oasis:names:tc:SAML:1.0:cm:holder-of-key"
      sender-vouches - "urn:oasis:names:tc:SAML:1.0:cm:sender-vouches"
      bearer - TODO</dd>
<dt><span class="strong">Returns:</span></dt><dd>Returns the opensaml representation of the ConfirmationMethod.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/rahas/TrustException.html" title="class in org.apache.rahas">TrustException</a></code> - If unable to find appropriate XMLObject builder for confirmation QName.</dd></dl>
</li>
</ul>
<a name="createSubjectConfirmation(java.lang.String, org.opensaml.xml.signature.KeyInfo)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createSubjectConfirmation</h4>
<pre>public static&nbsp;org.opensaml.saml1.core.SubjectConfirmation&nbsp;createSubjectConfirmation(<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;confirmationMethod,
                                                                    org.opensaml.xml.signature.KeyInfo&nbsp;keyInfoContent)
                                                                             throws <a href="../../../../../org/apache/rahas/TrustException.html" title="class in org.apache.rahas">TrustException</a></pre>
<div class="block">Creates opensaml SubjectConfirmation representation. The relevant XML would looks as follows,
  <saml:SubjectConfirmation>
       <saml:ConfirmationMethod>
           urn:oasis:names:tc:SAML:1.0:cm:sender-vouches
       </saml:ConfirmationMethod>
   </saml:SubjectConfirmation></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>confirmationMethod</code> - The subject confirmation method. Bearer, Sender-Vouches or Holder-Of-Key.</dd><dd><code>keyInfoContent</code> - The KeyInfo content. According to SPEC (SAML 1.1) this could be null.</dd>
<dt><span class="strong">Returns:</span></dt><dd>OpenSAML representation of SubjectConfirmation.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/rahas/TrustException.html" title="class in org.apache.rahas">TrustException</a></code> - If unable to find any of the XML builders.</dd></dl>
</li>
</ul>
<a name="createSubject(org.opensaml.saml1.core.NameIdentifier, java.lang.String, org.opensaml.xml.signature.KeyInfo)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createSubject</h4>
<pre>public static&nbsp;org.opensaml.saml1.core.Subject&nbsp;createSubject(org.opensaml.saml1.core.NameIdentifier&nbsp;nameIdentifier,
                                            <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;confirmationMethod,
                                            org.opensaml.xml.signature.KeyInfo&nbsp;keyInfoContent)
                                                     throws <a href="../../../../../org/apache/rahas/TrustException.html" title="class in org.apache.rahas">TrustException</a></pre>
<div class="block">Creates an opensaml Subject representation. The relevant XML would looks as follows,
 <saml:Subject>
       <saml:NameIdentifier
       NameQualifier="www.example.com"
       Format="...">
       uid=joe,ou=people,ou=saml-demo,o=baltimore.com
       </saml:NameIdentifier>
       <saml:SubjectConfirmation>
           <saml:ConfirmationMethod>
           urn:oasis:names:tc:SAML:1.0:cm:holder-of-key
           </saml:ConfirmationMethod>
       <ds:KeyInfo>
           <ds:KeyValue>...</ds:KeyValue>
       </ds:KeyInfo>
       </saml:SubjectConfirmation>
   </saml:Subject></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>nameIdentifier</code> - Represent the "NameIdentifier" of XML element above.</dd><dd><code>confirmationMethod</code> - Represent the bearer, HOK or Sender-Vouches.</dd><dd><code>keyInfoContent</code> - Key info information. This could be null.</dd>
<dt><span class="strong">Returns:</span></dt><dd>OpenSAML representation of the Subject.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/rahas/TrustException.html" title="class in org.apache.rahas">TrustException</a></code> - If a relevant XML builder is unable to find.</dd></dl>
</li>
</ul>
<a name="createAuthenticationStatement(org.opensaml.saml1.core.Subject, java.lang.String, org.joda.time.DateTime)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createAuthenticationStatement</h4>
<pre>public static&nbsp;org.opensaml.saml1.core.AuthenticationStatement&nbsp;createAuthenticationStatement(org.opensaml.saml1.core.Subject&nbsp;subject,
                                                                            <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;authenticationMethod,
                                                                            org.joda.time.DateTime&nbsp;authenticationInstant)
                                                                                     throws <a href="../../../../../org/apache/rahas/TrustException.html" title="class in org.apache.rahas">TrustException</a></pre>
<div class="block">Creates an AuthenticationStatement. The relevant XML element looks as follows,
 <AuthenticationStatement
       AuthenticationInstant="2003-04-17T00:46:00Z"
       AuthenticationMethod="urn:oasis:names:tc:SAML:1.0:am:password">
       <Subject>
           <NameIdentifier
           Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress">
           scott@example.org</NameIdentifier>
               <SubjectConfirmation>
                   <ConfirmationMethod>urn:oasis:names:tc:SAML:1.0:cm:bearer</ConfirmationMethod>
               </SubjectConfirmation>
       </Subject>
       <SubjectLocality IPAddress="127.0.0.1"/>
   </AuthenticationStatement></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>subject</code> - OpenSAML Subject implementation.</dd><dd><code>authenticationMethod</code> - How subject is authenticated ? i.e. by using a password, kerberos, certificate
          etc ... The method is defined as a URL in SAML specification.</dd><dd><code>authenticationInstant</code> - Time which authentication took place.</dd>
<dt><span class="strong">Returns:</span></dt><dd>opensaml AuthenticationStatement object.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/rahas/TrustException.html" title="class in org.apache.rahas">TrustException</a></code> - If unable to find the builder.</dd></dl>
</li>
</ul>
<a name="createAttributeStatement(org.opensaml.saml1.core.Subject, java.util.List)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createAttributeStatement</h4>
<pre>public static&nbsp;org.opensaml.saml1.core.AttributeStatement&nbsp;createAttributeStatement(org.opensaml.saml1.core.Subject&nbsp;subject,
                                                                  <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.opensaml.saml1.core.Attribute&gt;&nbsp;attributeList)
                                                                           throws <a href="../../../../../org/apache/rahas/TrustException.html" title="class in org.apache.rahas">TrustException</a></pre>
<div class="block">Creates an attribute statement. Sample attribute statement would look like follows,
  <saml:AttributeStatement>
       <saml:Subject>
           <saml:NameIdentifier
               NameQualifier="www.example.com"
               Format="...">
               uid=joe,ou=people,ou=saml-demo,o=baltimore.com
           </saml:NameIdentifier>
           <saml:SubjectConfirmation>
               <saml:ConfirmationMethod>
               urn:oasis:names:tc:SAML:1.0:cm:holder-of-key
               </saml:ConfirmationMethod>
               <ds:KeyInfo>
                 <ds:KeyValue>...</ds:KeyValue>
               </ds:KeyInfo>
           </saml:SubjectConfirmation>
       </saml:Subject>
       <saml:Attribute
           AttributeName="MemberLevel"
           AttributeNamespace="http://www.oasis.open.org/Catalyst2002/attributes">
           <saml:AttributeValue>gold</saml:AttributeValue>
       </saml:Attribute>
       <saml:Attribute
           AttributeName="E-mail"
           AttributeNamespace="http://www.oasis.open.org/Catalyst2002/attributes">
           <saml:AttributeValue>joe@yahoo.com</saml:AttributeValue>
       </saml:Attribute>
   </saml:AttributeStatement></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>subject</code> - The OpenSAML representation of the Subject.</dd><dd><code>attributeList</code> - List of attribute values to include within the message.</dd>
<dt><span class="strong">Returns:</span></dt><dd>OpenSAML representation of AttributeStatement.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/rahas/TrustException.html" title="class in org.apache.rahas">TrustException</a></code> - If unable to find the appropriate builder.</dd></dl>
</li>
</ul>
<a name="createConditions(org.joda.time.DateTime, org.joda.time.DateTime)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createConditions</h4>
<pre>public static&nbsp;org.opensaml.saml1.core.Conditions&nbsp;createConditions(org.joda.time.DateTime&nbsp;notBefore,
                                                  org.joda.time.DateTime&nbsp;notOnOrAfter)
                                                           throws <a href="../../../../../org/apache/rahas/TrustException.html" title="class in org.apache.rahas">TrustException</a></pre>
<div class="block">Creates Conditions object. Analogous XML element is as follows,
 <saml:Conditions>
       NotBefore="2002-06-19T16:53:33.173Z"
       NotOnOrAfter="2002-06-19T17:08:33.173Z"/></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>notBefore</code> - The validity of the Assertion starts from this value.</dd><dd><code>notOnOrAfter</code> - The validity ends from this value.</dd>
<dt><span class="strong">Returns:</span></dt><dd>OpenSAML Conditions object.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/rahas/TrustException.html" title="class in org.apache.rahas">TrustException</a></code> - If unable to find appropriate builder.</dd></dl>
</li>
</ul>
<a name="createAssertion(java.lang.String, org.joda.time.DateTime, org.joda.time.DateTime, java.util.List)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createAssertion</h4>
<pre>public static&nbsp;org.opensaml.saml1.core.Assertion&nbsp;createAssertion(<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;issuerName,
                                                org.joda.time.DateTime&nbsp;notBefore,
                                                org.joda.time.DateTime&nbsp;notOnOrAfter,
                                                <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.opensaml.saml1.core.Statement&gt;&nbsp;statements)
                                                         throws <a href="../../../../../org/apache/rahas/TrustException.html" title="class in org.apache.rahas">TrustException</a></pre>
<div class="block">This method creates the final SAML assertion. The final SAML assertion would looks like as follows,
  <saml:Assertion  AssertionID="_a75adf55-01d7-40cc-929f-dbd8372ebdfc"
                   IssueInstant="2003-04-17T00:46:02Z"
                   Issuer=”www.opensaml.org”
                   MajorVersion="1"
                   MinorVersion="1"
                   xmlns="urn:oasis:names:tc:SAML:1.0:assertion">
       <saml:Conditions>
           NotBefore="2002-06-19T16:53:33.173Z"
           NotOnOrAfter="2002-06-19T17:08:33.173Z"/>
       <saml:AttributeStatement>
           <saml:Subject>
               <saml:NameIdentifier
                       NameQualifier="www.example.com"
                       Format="...">
                       uid=joe,ou=people,ou=saml-demo,o=baltimore.com
               </saml:NameIdentifier>
               <saml:SubjectConfirmation>
                   <saml:ConfirmationMethod>
                       urn:oasis:names:tc:SAML:1.0:cm:holder-of-key
                   </saml:ConfirmationMethod>
                   <ds:KeyInfo>
                       <ds:KeyValue>...</ds:KeyValue>
                   </ds:KeyInfo>
               </saml:SubjectConfirmation>
           </saml:Subject>
           <saml:Attribute
               AttributeName="MemberLevel"
               AttributeNamespace="http://www.oasis.open.org/Catalyst2002/attributes">
               <saml:AttributeValue>gold</saml:AttributeValue>
           </saml:Attribute>
           <saml:Attribute
               AttributeName="E-mail" AttributeNamespace="http://www.oasis.open.org/Catalyst2002/attributes">
               <saml:AttributeValue>joe@yahoo.com</saml:AttributeValue>
           </saml:Attribute>
       </saml:AttributeStatement>
       <ds:Signature>...</ds:Signature>
   </saml:Assertion></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>issuerName</code> - Represents the "Issuer" in Assertion.</dd><dd><code>notBefore</code> - The Condition's NotBefore value</dd><dd><code>notOnOrAfter</code> - The Condition's NotOnOrAfter value</dd><dd><code>statements</code> - Other statements.</dd>
<dt><span class="strong">Returns:</span></dt><dd>An opensaml Assertion object.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/rahas/TrustException.html" title="class in org.apache.rahas">TrustException</a></code> - If unable to find the appropriate builder.</dd></dl>
</li>
</ul>
<a name="createAttribute(java.lang.String, java.lang.String, java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createAttribute</h4>
<pre>public static&nbsp;org.opensaml.saml1.core.Attribute&nbsp;createAttribute(<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
                                                <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                                                <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)
                                                         throws <a href="../../../../../org/apache/rahas/TrustException.html" title="class in org.apache.rahas">TrustException</a></pre>
<div class="block">Creates a SAML attribute similar to following,
 <saml:Attribute
       AttributeName="MemberLevel"
       AttributeNamespace="http://www.oasis.open.org/Catalyst2002/attributes">
       <saml:AttributeValue>gold</saml:AttributeValue>
   </saml:Attribute></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>name</code> - attribute name</dd><dd><code>namespace</code> - attribute namespace.</dd><dd><code>value</code> - attribute value.</dd>
<dt><span class="strong">Returns:</span></dt><dd>OpenSAML representation of the attribute.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/rahas/TrustException.html" title="class in org.apache.rahas">TrustException</a></code> - If unable to find the appropriate builder.</dd></dl>
</li>
</ul>
<a name="createKeyInfo()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createKeyInfo</h4>
<pre>public static&nbsp;org.opensaml.xml.signature.KeyInfo&nbsp;createKeyInfo()
                                                        throws <a href="../../../../../org/apache/rahas/TrustException.html" title="class in org.apache.rahas">TrustException</a></pre>
<div class="block">Creates a KeyInfo object</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>OpenSAML KeyInfo representation.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/rahas/TrustException.html" title="class in org.apache.rahas">TrustException</a></code> - If an error occurred while creating KeyInfo.</dd></dl>
</li>
</ul>
<a name="createKeyInfo(org.opensaml.xml.encryption.EncryptedKey)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createKeyInfo</h4>
<pre>public static&nbsp;org.opensaml.xml.signature.KeyInfo&nbsp;createKeyInfo(org.opensaml.xml.encryption.EncryptedKey&nbsp;encryptedKey)
                                                        throws <a href="../../../../../org/apache/rahas/TrustException.html" title="class in org.apache.rahas">TrustException</a></pre>
<div class="block">Creates a KeyInfo element given EncryptedKey. The relevant XML would looks as follows,
  <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
     <xenc:EncryptedKey xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
           ....
     </xenc:EncryptedKey>
   </ds:KeyInfo></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>encryptedKey</code> - The OpemSAML representation of encrypted key.</dd>
<dt><span class="strong">Returns:</span></dt><dd>The appropriate opensaml representation of the KeyInfo.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/rahas/TrustException.html" title="class in org.apache.rahas">TrustException</a></code> - If unable to find the builder.</dd></dl>
</li>
</ul>
<a name="createKeyInfo(org.opensaml.xml.signature.X509Data)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>createKeyInfo</h4>
<pre>public static&nbsp;org.opensaml.xml.signature.KeyInfo&nbsp;createKeyInfo(org.opensaml.xml.signature.X509Data&nbsp;x509Data)
                                                        throws <a href="../../../../../org/apache/rahas/TrustException.html" title="class in org.apache.rahas">TrustException</a></pre>
<div class="block">Creates a KeyInfo element given EncryptedKey. The relevant XML would looks as follows,
  <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
     <X509Data xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
           ....
     </X509Data>
   </ds:KeyInfo></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>x509Data</code> - The OpemSAML representation X509Data</dd>
<dt><span class="strong">Returns:</span></dt><dd>The appropriate opensaml representation of the KeyInfo.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/rahas/TrustException.html" title="class in org.apache.rahas">TrustException</a></code> - If unable to find the builder.</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/SAMLUtils.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/rahas/impl/util/SAMLNameIdentifierCallback.html" title="class in org.apache.rahas.impl.util"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/rahas/impl/util/SignKeyHolder.html" title="class in org.apache.rahas.impl.util"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/rahas/impl/util/SAMLUtils.html" target="_top">Frames</a></li>
<li><a href="SAMLUtils.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &copy; <a href="http://www.apache.org">Apache Software Foundation</a>. All Rights Reserved.</small></p>
</body>
</html>