<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0_22) on Thu Apr 26 14:22:12 IST 2012 -->
<TITLE>
PolicyBasedResultsValidator (Apache Rampart API)
</TITLE>

<META NAME="date" CONTENT="2012-04-26">

<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="PolicyBasedResultsValidator (Apache Rampart API)";
    }
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">
<HR>


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/PolicyBasedResultsValidator.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../org/apache/rampart/NonceCache.html" title="class in org.apache.rampart"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../org/apache/rampart/PolicyValidatorCallbackHandler.html" title="interface in org.apache.rampart"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../index.html?org/apache/rampart/PolicyBasedResultsValidator.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="PolicyBasedResultsValidator.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.apache.rampart</FONT>
<BR>
Class PolicyBasedResultsValidator</H2>
<PRE>
java.lang.Object
  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>org.apache.rampart.PolicyBasedResultsValidator</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../org/apache/rampart/ExtendedPolicyValidatorCallbackHandler.html" title="interface in org.apache.rampart">ExtendedPolicyValidatorCallbackHandler</A>, <A HREF="../../../org/apache/rampart/PolicyValidatorCallbackHandler.html" title="interface in org.apache.rampart">PolicyValidatorCallbackHandler</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public class <B>PolicyBasedResultsValidator</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../org/apache/rampart/ExtendedPolicyValidatorCallbackHandler.html" title="interface in org.apache.rampart">ExtendedPolicyValidatorCallbackHandler</A></DL>
</PRE>

<P>
<HR>

<P>

<!-- ======== CONSTRUCTOR SUMMARY ======== -->

<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../org/apache/rampart/PolicyBasedResultsValidator.html#PolicyBasedResultsValidator()">PolicyBasedResultsValidator</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;org.apache.ws.security.WSSecurityEngineResult[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/rampart/PolicyBasedResultsValidator.html#fetchActionResults(java.util.List, int)">fetchActionResults</A></B>(java.util.List&lt;org.apache.ws.security.WSSecurityEngineResult&gt;&nbsp;wsSecurityEngineResults,
                   int&nbsp;action)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;java.util.ArrayList</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/rampart/PolicyBasedResultsValidator.html#getEncryptedReferences(java.util.List)">getEncryptedReferences</A></B>(java.util.List&lt;org.apache.ws.security.WSSecurityEngineResult&gt;&nbsp;results)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;java.util.List&lt;org.apache.ws.security.WSSecurityEngineResult&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/rampart/PolicyBasedResultsValidator.html#getResults(java.util.List, int)">getResults</A></B>(java.util.List&lt;org.apache.ws.security.WSSecurityEngineResult&gt;&nbsp;results,
           int&nbsp;action)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;java.util.List&lt;java.lang.Integer&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/rampart/PolicyBasedResultsValidator.html#getSigEncrActions(java.util.List)">getSigEncrActions</A></B>(java.util.List&lt;org.apache.ws.security.WSSecurityEngineResult&gt;&nbsp;results)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/rampart/PolicyBasedResultsValidator.html#handleSupportingTokens(java.util.List, org.apache.ws.secpolicy.model.SupportingToken)">handleSupportingTokens</A></B>(java.util.List&lt;org.apache.ws.security.WSSecurityEngineResult&gt;&nbsp;results,
                       org.apache.ws.secpolicy.model.SupportingToken&nbsp;suppTok)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/rampart/PolicyBasedResultsValidator.html#isCertificateInKeyStore(org.apache.ws.security.components.crypto.Crypto, java.security.cert.X509Certificate)">isCertificateInKeyStore</A></B>(org.apache.ws.security.components.crypto.Crypto&nbsp;crypto,
                        java.security.cert.X509Certificate&nbsp;cert)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Check to see if the certificate argument is in the keystore
 TODO Directly copied from WSS4J (SignatureTrustValidator) - Optimize later</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/rampart/PolicyBasedResultsValidator.html#isCertificateTrusted(java.security.cert.X509Certificate, org.apache.ws.security.components.crypto.Crypto)">isCertificateTrusted</A></B>(java.security.cert.X509Certificate&nbsp;cert,
                     org.apache.ws.security.components.crypto.Crypto&nbsp;crypto)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TODO - This is directly copied from WSS4J (SignatureTrustValidator).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/rampart/PolicyBasedResultsValidator.html#isSignatureRequired(org.apache.rampart.RampartMessageData)">isSignatureRequired</A></B>(<A HREF="../../../org/apache/rampart/RampartMessageData.html" title="class in org.apache.rampart">RampartMessageData</A>&nbsp;rmd)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/rampart/PolicyBasedResultsValidator.html#isUsernameTokenPresent(org.apache.ws.secpolicy.model.SupportingToken)">isUsernameTokenPresent</A></B>(org.apache.ws.secpolicy.model.SupportingToken&nbsp;suppTok)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/rampart/PolicyBasedResultsValidator.html#isUsernameTokenPresent(org.apache.rampart.ValidatorData)">isUsernameTokenPresent</A></B>(<A HREF="../../../org/apache/rampart/ValidatorData.html" title="class in org.apache.rampart">ValidatorData</A>&nbsp;data)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/rampart/PolicyBasedResultsValidator.html#validate(org.apache.rampart.ValidatorData, java.util.List)">validate</A></B>(<A HREF="../../../org/apache/rampart/ValidatorData.html" title="class in org.apache.rampart">ValidatorData</A>&nbsp;data,
         java.util.List&lt;org.apache.ws.security.WSSecurityEngineResult&gt;&nbsp;results)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Validate policy based results.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/rampart/PolicyBasedResultsValidator.html#validate(org.apache.rampart.ValidatorData, java.util.Vector)">validate</A></B>(<A HREF="../../../org/apache/rampart/ValidatorData.html" title="class in org.apache.rampart">ValidatorData</A>&nbsp;data,
         java.util.Vector&nbsp;results)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Validate policy based results.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/rampart/PolicyBasedResultsValidator.html#validateEncrSig(org.apache.rampart.ValidatorData, java.util.List, java.util.List, java.util.List)">validateEncrSig</A></B>(<A HREF="../../../org/apache/rampart/ValidatorData.html" title="class in org.apache.rampart">ValidatorData</A>&nbsp;data,
                java.util.List&lt;org.apache.ws.security.WSEncryptionPart&gt;&nbsp;encryptedParts,
                java.util.List&lt;org.apache.ws.security.WSEncryptionPart&gt;&nbsp;signatureParts,
                java.util.List&lt;org.apache.ws.security.WSSecurityEngineResult&gt;&nbsp;results)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/rampart/PolicyBasedResultsValidator.html#validateEncryptedParts(org.apache.rampart.ValidatorData, java.util.List, java.util.List)">validateEncryptedParts</A></B>(<A HREF="../../../org/apache/rampart/ValidatorData.html" title="class in org.apache.rampart">ValidatorData</A>&nbsp;data,
                       java.util.List&lt;org.apache.ws.security.WSEncryptionPart&gt;&nbsp;encryptedParts,
                       java.util.List&lt;org.apache.ws.security.WSSecurityEngineResult&gt;&nbsp;results)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/rampart/PolicyBasedResultsValidator.html#validateProtectionOrder(org.apache.rampart.ValidatorData, java.util.List)">validateProtectionOrder</A></B>(<A HREF="../../../org/apache/rampart/ValidatorData.html" title="class in org.apache.rampart">ValidatorData</A>&nbsp;data,
                        java.util.List&lt;org.apache.ws.security.WSSecurityEngineResult&gt;&nbsp;results)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/rampart/PolicyBasedResultsValidator.html#validateRequiredElements(org.apache.rampart.ValidatorData)">validateRequiredElements</A></B>(<A HREF="../../../org/apache/rampart/ValidatorData.html" title="class in org.apache.rampart">ValidatorData</A>&nbsp;data)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/rampart/PolicyBasedResultsValidator.html#validateSignedPartsHeaders(org.apache.rampart.ValidatorData, java.util.List, java.util.List)">validateSignedPartsHeaders</A></B>(<A HREF="../../../org/apache/rampart/ValidatorData.html" title="class in org.apache.rampart">ValidatorData</A>&nbsp;data,
                           java.util.List&lt;org.apache.ws.security.WSEncryptionPart&gt;&nbsp;signatureParts,
                           java.util.List&lt;org.apache.ws.security.WSSecurityEngineResult&gt;&nbsp;results)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/rampart/PolicyBasedResultsValidator.html#validateSupportingTokens(org.apache.rampart.ValidatorData, java.util.List)">validateSupportingTokens</A></B>(<A HREF="../../../org/apache/rampart/ValidatorData.html" title="class in org.apache.rampart">ValidatorData</A>&nbsp;data,
                         java.util.List&lt;org.apache.ws.security.WSSecurityEngineResult&gt;&nbsp;results)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/rampart/PolicyBasedResultsValidator.html#verifyTimestamp(org.apache.ws.security.message.token.Timestamp, org.apache.rampart.RampartMessageData)">verifyTimestamp</A></B>(org.apache.ws.security.message.token.Timestamp&nbsp;timestamp,
                <A HREF="../../../org/apache/rampart/RampartMessageData.html" title="class in org.apache.rampart">RampartMessageData</A>&nbsp;rmd)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/rampart/PolicyBasedResultsValidator.html#verifyTrust(java.security.cert.X509Certificate, org.apache.rampart.RampartMessageData)">verifyTrust</A></B>(java.security.cert.X509Certificate&nbsp;cert,
            <A HREF="../../../org/apache/rampart/RampartMessageData.html" title="class in org.apache.rampart">RampartMessageData</A>&nbsp;rmd)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Evaluate whether a given certificate should be trusted.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ========= CONSTRUCTOR DETAIL ======== -->

<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="PolicyBasedResultsValidator()"><!-- --></A><H3>
PolicyBasedResultsValidator</H3>
<PRE>
public <B>PolicyBasedResultsValidator</B>()</PRE>
<DL>
</DL>

<!-- ============ METHOD DETAIL ========== -->

<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="validate(org.apache.rampart.ValidatorData, java.util.Vector)"><!-- --></A><H3>
validate</H3>
<PRE>
public void <B>validate</B>(<A HREF="../../../org/apache/rampart/ValidatorData.html" title="class in org.apache.rampart">ValidatorData</A>&nbsp;data,
                     java.util.Vector&nbsp;results)
              throws <A HREF="../../../org/apache/rampart/RampartException.html" title="class in org.apache.rampart">RampartException</A></PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../org/apache/rampart/PolicyValidatorCallbackHandler.html#validate(org.apache.rampart.ValidatorData, java.util.Vector)">PolicyValidatorCallbackHandler</A></CODE></B></DD>
<DD>Validate policy based results.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../org/apache/rampart/PolicyValidatorCallbackHandler.html#validate(org.apache.rampart.ValidatorData, java.util.Vector)">validate</A></CODE> in interface <CODE><A HREF="../../../org/apache/rampart/PolicyValidatorCallbackHandler.html" title="interface in org.apache.rampart">PolicyValidatorCallbackHandler</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>data</CODE> - validator data<DD><CODE>results</CODE> - policy based ws-security results
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../org/apache/rampart/RampartException.html" title="class in org.apache.rampart">RampartException</A></CODE> - Rampart exception</DL>
</DD>
</DL>
<HR>

<A NAME="validate(org.apache.rampart.ValidatorData, java.util.List)"><!-- --></A><H3>
validate</H3>
<PRE>
public void <B>validate</B>(<A HREF="../../../org/apache/rampart/ValidatorData.html" title="class in org.apache.rampart">ValidatorData</A>&nbsp;data,
                     java.util.List&lt;org.apache.ws.security.WSSecurityEngineResult&gt;&nbsp;results)
              throws <A HREF="../../../org/apache/rampart/RampartException.html" title="class in org.apache.rampart">RampartException</A></PRE>
<DL>
<DD>Validate policy based results.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../org/apache/rampart/ExtendedPolicyValidatorCallbackHandler.html#validate(org.apache.rampart.ValidatorData, java.util.List)">validate</A></CODE> in interface <CODE><A HREF="../../../org/apache/rampart/ExtendedPolicyValidatorCallbackHandler.html" title="interface in org.apache.rampart">ExtendedPolicyValidatorCallbackHandler</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>data</CODE> - validator data<DD><CODE>results</CODE> - policy based ws-security results
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../org/apache/rampart/RampartException.html" title="class in org.apache.rampart">RampartException</A></CODE> - Rampart exception</DL>
</DD>
</DL>
<HR>

<A NAME="validateEncrSig(org.apache.rampart.ValidatorData, java.util.List, java.util.List, java.util.List)"><!-- --></A><H3>
validateEncrSig</H3>
<PRE>
protected void <B>validateEncrSig</B>(<A HREF="../../../org/apache/rampart/ValidatorData.html" title="class in org.apache.rampart">ValidatorData</A>&nbsp;data,
                               java.util.List&lt;org.apache.ws.security.WSEncryptionPart&gt;&nbsp;encryptedParts,
                               java.util.List&lt;org.apache.ws.security.WSEncryptionPart&gt;&nbsp;signatureParts,
                               java.util.List&lt;org.apache.ws.security.WSSecurityEngineResult&gt;&nbsp;results)
                        throws <A HREF="../../../org/apache/rampart/RampartException.html" title="class in org.apache.rampart">RampartException</A></PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>encryptedParts</CODE> - <DD><CODE>signatureParts</CODE> - 
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../org/apache/rampart/RampartException.html" title="class in org.apache.rampart">RampartException</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="validateSupportingTokens(org.apache.rampart.ValidatorData, java.util.List)"><!-- --></A><H3>
validateSupportingTokens</H3>
<PRE>
protected void <B>validateSupportingTokens</B>(<A HREF="../../../org/apache/rampart/ValidatorData.html" title="class in org.apache.rampart">ValidatorData</A>&nbsp;data,
                                        java.util.List&lt;org.apache.ws.security.WSSecurityEngineResult&gt;&nbsp;results)
                                 throws <A HREF="../../../org/apache/rampart/RampartException.html" title="class in org.apache.rampart">RampartException</A></PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>data</CODE> - <DD><CODE>results</CODE> - 
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../org/apache/rampart/RampartException.html" title="class in org.apache.rampart">RampartException</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="handleSupportingTokens(java.util.List, org.apache.ws.secpolicy.model.SupportingToken)"><!-- --></A><H3>
handleSupportingTokens</H3>
<PRE>
protected void <B>handleSupportingTokens</B>(java.util.List&lt;org.apache.ws.security.WSSecurityEngineResult&gt;&nbsp;results,
                                      org.apache.ws.secpolicy.model.SupportingToken&nbsp;suppTok)
                               throws <A HREF="../../../org/apache/rampart/RampartException.html" title="class in org.apache.rampart">RampartException</A></PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>results</CODE> - <DD><CODE>suppTok</CODE> - 
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../org/apache/rampart/RampartException.html" title="class in org.apache.rampart">RampartException</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="validateProtectionOrder(org.apache.rampart.ValidatorData, java.util.List)"><!-- --></A><H3>
validateProtectionOrder</H3>
<PRE>
protected void <B>validateProtectionOrder</B>(<A HREF="../../../org/apache/rampart/ValidatorData.html" title="class in org.apache.rampart">ValidatorData</A>&nbsp;data,
                                       java.util.List&lt;org.apache.ws.security.WSSecurityEngineResult&gt;&nbsp;results)
                                throws <A HREF="../../../org/apache/rampart/RampartException.html" title="class in org.apache.rampart">RampartException</A></PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>data</CODE> - <DD><CODE>results</CODE> - 
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../org/apache/rampart/RampartException.html" title="class in org.apache.rampart">RampartException</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="getSigEncrActions(java.util.List)"><!-- --></A><H3>
getSigEncrActions</H3>
<PRE>
protected java.util.List&lt;java.lang.Integer&gt; <B>getSigEncrActions</B>(java.util.List&lt;org.apache.ws.security.WSSecurityEngineResult&gt;&nbsp;results)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="validateEncryptedParts(org.apache.rampart.ValidatorData, java.util.List, java.util.List)"><!-- --></A><H3>
validateEncryptedParts</H3>
<PRE>
protected void <B>validateEncryptedParts</B>(<A HREF="../../../org/apache/rampart/ValidatorData.html" title="class in org.apache.rampart">ValidatorData</A>&nbsp;data,
                                      java.util.List&lt;org.apache.ws.security.WSEncryptionPart&gt;&nbsp;encryptedParts,
                                      java.util.List&lt;org.apache.ws.security.WSSecurityEngineResult&gt;&nbsp;results)
                               throws <A HREF="../../../org/apache/rampart/RampartException.html" title="class in org.apache.rampart">RampartException</A></PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../org/apache/rampart/RampartException.html" title="class in org.apache.rampart">RampartException</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="validateRequiredElements(org.apache.rampart.ValidatorData)"><!-- --></A><H3>
validateRequiredElements</H3>
<PRE>
public void <B>validateRequiredElements</B>(<A HREF="../../../org/apache/rampart/ValidatorData.html" title="class in org.apache.rampart">ValidatorData</A>&nbsp;data)
                              throws <A HREF="../../../org/apache/rampart/RampartException.html" title="class in org.apache.rampart">RampartException</A></PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../org/apache/rampart/RampartException.html" title="class in org.apache.rampart">RampartException</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="validateSignedPartsHeaders(org.apache.rampart.ValidatorData, java.util.List, java.util.List)"><!-- --></A><H3>
validateSignedPartsHeaders</H3>
<PRE>
protected void <B>validateSignedPartsHeaders</B>(<A HREF="../../../org/apache/rampart/ValidatorData.html" title="class in org.apache.rampart">ValidatorData</A>&nbsp;data,
                                          java.util.List&lt;org.apache.ws.security.WSEncryptionPart&gt;&nbsp;signatureParts,
                                          java.util.List&lt;org.apache.ws.security.WSSecurityEngineResult&gt;&nbsp;results)
                                   throws <A HREF="../../../org/apache/rampart/RampartException.html" title="class in org.apache.rampart">RampartException</A></PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../org/apache/rampart/RampartException.html" title="class in org.apache.rampart">RampartException</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="isSignatureRequired(org.apache.rampart.RampartMessageData)"><!-- --></A><H3>
isSignatureRequired</H3>
<PRE>
protected boolean <B>isSignatureRequired</B>(<A HREF="../../../org/apache/rampart/RampartMessageData.html" title="class in org.apache.rampart">RampartMessageData</A>&nbsp;rmd)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="verifyTimestamp(org.apache.ws.security.message.token.Timestamp, org.apache.rampart.RampartMessageData)"><!-- --></A><H3>
verifyTimestamp</H3>
<PRE>
protected boolean <B>verifyTimestamp</B>(org.apache.ws.security.message.token.Timestamp&nbsp;timestamp,
                                  <A HREF="../../../org/apache/rampart/RampartMessageData.html" title="class in org.apache.rampart">RampartMessageData</A>&nbsp;rmd)
                           throws <A HREF="../../../org/apache/rampart/RampartException.html" title="class in org.apache.rampart">RampartException</A></PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../org/apache/rampart/RampartException.html" title="class in org.apache.rampart">RampartException</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="verifyTrust(java.security.cert.X509Certificate, org.apache.rampart.RampartMessageData)"><!-- --></A><H3>
verifyTrust</H3>
<PRE>
protected boolean <B>verifyTrust</B>(java.security.cert.X509Certificate&nbsp;cert,
                              <A HREF="../../../org/apache/rampart/RampartMessageData.html" title="class in org.apache.rampart">RampartMessageData</A>&nbsp;rmd)
                       throws <A HREF="../../../org/apache/rampart/RampartException.html" title="class in org.apache.rampart">RampartException</A></PRE>
<DL>
<DD>Evaluate whether a given certificate should be trusted.
 Hook to allow subclasses to implement custom validation methods however they see fit.
 <p/>
 Policy used in this implementation:
 1. Search the keystore for the transmitted certificate
 2. Search the keystore for a connection to the transmitted certificate
 (that is, search for certificate(s) of the issuer of the transmitted certificate
 3. Verify the trust path for those certificates found because the search for the issuer might be fooled by a phony DN (String!)
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>cert</CODE> - the certificate that should be validated against the keystore<DD><CODE>rmd</CODE> - To get signature keystore information.
<DT><B>Returns:</B><DD>true if the certificate is trusted, false if not (AxisFault is thrown for exceptions during CertPathValidation)
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../org/apache/rampart/RampartException.html" title="class in org.apache.rampart">RampartException</A></CODE> - If an error occurred during validation.</DL>
</DD>
</DL>
<HR>

<A NAME="isCertificateTrusted(java.security.cert.X509Certificate, org.apache.ws.security.components.crypto.Crypto)"><!-- --></A><H3>
isCertificateTrusted</H3>
<PRE>
protected boolean <B>isCertificateTrusted</B>(java.security.cert.X509Certificate&nbsp;cert,
                                       org.apache.ws.security.components.crypto.Crypto&nbsp;crypto)
                                throws <A HREF="../../../org/apache/rampart/RampartException.html" title="class in org.apache.rampart">RampartException</A></PRE>
<DL>
<DD>TODO - This is directly copied from WSS4J (SignatureTrustValidator).
 We need to use to Validators instead of following code. REFACTOR later.

 Evaluate whether a given certificate should be trusted.

 Policy used in this implementation:
 1. Search the keystore for the transmitted certificate
 2. Search the keystore for a connection to the transmitted certificate
 (that is, search for certificate(s) of the issuer of the transmitted certificate
 3. Verify the trust path for those certificates found because the search for the issuer
 might be fooled by a phony DN (String!)
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>cert</CODE> - the certificate that should be validated against the keystore<DD><CODE>crypto</CODE> - A crypto instance to use for trust validation
<DT><B>Returns:</B><DD>true if the certificate is trusted, false if not
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../org/apache/rampart/RampartException.html" title="class in org.apache.rampart">RampartException</A></CODE> - If an error occurred during validation.</DL>
</DD>
</DL>
<HR>

<A NAME="isCertificateInKeyStore(org.apache.ws.security.components.crypto.Crypto, java.security.cert.X509Certificate)"><!-- --></A><H3>
isCertificateInKeyStore</H3>
<PRE>
protected boolean <B>isCertificateInKeyStore</B>(org.apache.ws.security.components.crypto.Crypto&nbsp;crypto,
                                          java.security.cert.X509Certificate&nbsp;cert)
                                   throws <A HREF="../../../org/apache/rampart/RampartException.html" title="class in org.apache.rampart">RampartException</A></PRE>
<DL>
<DD>Check to see if the certificate argument is in the keystore
 TODO Directly copied from WSS4J (SignatureTrustValidator) - Optimize later
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>crypto</CODE> - A Crypto instance to use for trust validation<DD><CODE>cert</CODE> - The certificate to check
<DT><B>Returns:</B><DD>true if cert is in the keystore
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../org/apache/rampart/RampartException.html" title="class in org.apache.rampart">RampartException</A></CODE> - If certificates are not found for given issuer and serial number.</DL>
</DD>
</DL>
<HR>

<A NAME="getEncryptedReferences(java.util.List)"><!-- --></A><H3>
getEncryptedReferences</H3>
<PRE>
protected java.util.ArrayList <B>getEncryptedReferences</B>(java.util.List&lt;org.apache.ws.security.WSSecurityEngineResult&gt;&nbsp;results)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getResults(java.util.List, int)"><!-- --></A><H3>
getResults</H3>
<PRE>
protected java.util.List&lt;org.apache.ws.security.WSSecurityEngineResult&gt; <B>getResults</B>(java.util.List&lt;org.apache.ws.security.WSSecurityEngineResult&gt;&nbsp;results,
                                                                                   int&nbsp;action)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isUsernameTokenPresent(org.apache.rampart.ValidatorData)"><!-- --></A><H3>
isUsernameTokenPresent</H3>
<PRE>
protected boolean <B>isUsernameTokenPresent</B>(<A HREF="../../../org/apache/rampart/ValidatorData.html" title="class in org.apache.rampart">ValidatorData</A>&nbsp;data)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isUsernameTokenPresent(org.apache.ws.secpolicy.model.SupportingToken)"><!-- --></A><H3>
isUsernameTokenPresent</H3>
<PRE>
protected boolean <B>isUsernameTokenPresent</B>(org.apache.ws.secpolicy.model.SupportingToken&nbsp;suppTok)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="fetchActionResults(java.util.List, int)"><!-- --></A><H3>
fetchActionResults</H3>
<PRE>
public static org.apache.ws.security.WSSecurityEngineResult[] <B>fetchActionResults</B>(java.util.List&lt;org.apache.ws.security.WSSecurityEngineResult&gt;&nbsp;wsSecurityEngineResults,
                                                                                 int&nbsp;action)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/PolicyBasedResultsValidator.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../org/apache/rampart/NonceCache.html" title="class in org.apache.rampart"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../org/apache/rampart/PolicyValidatorCallbackHandler.html" title="interface in org.apache.rampart"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../index.html?org/apache/rampart/PolicyBasedResultsValidator.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="PolicyBasedResultsValidator.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>

</BODY>
</HTML>
