<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.9.1) on Tue Jan 19 11:49:19 CST 2021 -->
<title>ClientCertAuthenticator (Jetty :: Project 9.4.36.v20210114 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2021-01-19">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="ClientCertAuthenticator (Jetty :: Project 9.4.36.v20210114 API)";
        }
    }
    catch(err) {
    }
//-->
var data = {"i0":10,"i1":10,"i2":42,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../";
var useModuleDirectories = false;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/ClientCertAuthenticator.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" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&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 id="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.eclipse.jetty.security.authentication</a></div>
<h2 title="Class ClientCertAuthenticator" class="title">Class ClientCertAuthenticator</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="LoginAuthenticator.html" title="class in org.eclipse.jetty.security.authentication">org.eclipse.jetty.security.authentication.LoginAuthenticator</a></li>
<li>
<ul class="inheritance">
<li>org.eclipse.jetty.security.authentication.ClientCertAuthenticator</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="../Authenticator.html" title="interface in org.eclipse.jetty.security">Authenticator</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">ClientCertAuthenticator</span>
extends <a href="LoginAuthenticator.html" title="class in org.eclipse.jetty.security.authentication">LoginAuthenticator</a></pre>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="nested.class.summary">
<!--   -->
</a>
<h3>Nested Class Summary</h3>
<ul class="blockList">
<li class="blockList"><a id="nested.classes.inherited.from.class.org.eclipse.jetty.security.Authenticator">
<!--   -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;org.eclipse.jetty.security.<a href="../Authenticator.html" title="interface in org.eclipse.jetty.security">Authenticator</a></h3>
<code><a href="../Authenticator.AuthConfiguration.html" title="interface in org.eclipse.jetty.security">Authenticator.AuthConfiguration</a>, <a href="../Authenticator.Factory.html" title="interface in org.eclipse.jetty.security">Authenticator.Factory</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!--   -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.org.eclipse.jetty.security.authentication.LoginAuthenticator">
<!--   -->
</a>
<h3>Fields inherited from class&nbsp;org.eclipse.jetty.security.authentication.<a href="LoginAuthenticator.html" title="class in org.eclipse.jetty.security.authentication">LoginAuthenticator</a></h3>
<code><a href="LoginAuthenticator.html#_identityService">_identityService</a>, <a href="LoginAuthenticator.html#_loginService">_loginService</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">ClientCertAuthenticator</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAuthMethod()">getAuthMethod</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCrlPath()">getCrlPath</a></span>()</code></th>
<td class="colLast">
<div class="block">Get the crlPath.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>protected java.security.KeyStore</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getKeyStore(java.io.InputStream,java.lang.String,java.lang.String,java.lang.String,java.lang.String)">getKeyStore</a></span>&#8203;(java.io.InputStream&nbsp;storeStream,
           java.lang.String&nbsp;storePath,
           java.lang.String&nbsp;storeType,
           java.lang.String&nbsp;storeProvider,
           java.lang.String&nbsp;storePassword)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>protected java.security.KeyStore</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getKeyStore(java.lang.String,java.lang.String,java.lang.String,java.lang.String)">getKeyStore</a></span>&#8203;(java.lang.String&nbsp;storePath,
           java.lang.String&nbsp;storeType,
           java.lang.String&nbsp;storeProvider,
           java.lang.String&nbsp;storePassword)</code></th>
<td class="colLast">
<div class="block">Loads keystore using an input stream or a file path in the same
 order of precedence.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMaxCertPathLength()">getMaxCertPathLength</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOcspResponderURL()">getOcspResponderURL</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTrustStore()">getTrustStore</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTrustStoreProvider()">getTrustStoreProvider</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTrustStoreType()">getTrustStoreType</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isEnableCRLDP()">isEnableCRLDP</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isEnableOCSP()">isEnableOCSP</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isValidateCerts()">isValidateCerts</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>protected java.util.Collection&lt;? extends java.security.cert.CRL&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#loadCRL(java.lang.String)">loadCRL</a></span>&#8203;(java.lang.String&nbsp;crlPath)</code></th>
<td class="colLast">
<div class="block">Loads certificate revocation list (CRL) from a file.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#secureResponse(javax.servlet.ServletRequest,javax.servlet.ServletResponse,boolean,org.eclipse.jetty.server.Authentication.User)">secureResponse</a></span>&#8203;(javax.servlet.ServletRequest&nbsp;req,
              javax.servlet.ServletResponse&nbsp;res,
              boolean&nbsp;mandatory,
              <a href="../../server/Authentication.User.html" title="interface in org.eclipse.jetty.server">Authentication.User</a>&nbsp;validatedUser)</code></th>
<td class="colLast">
<div class="block">is response secure</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setCrlPath(java.lang.String)">setCrlPath</a></span>&#8203;(java.lang.String&nbsp;crlPath)</code></th>
<td class="colLast">
<div class="block">Set the crlPath.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setEnableCRLDP(boolean)">setEnableCRLDP</a></span>&#8203;(boolean&nbsp;enableCRLDP)</code></th>
<td class="colLast">
<div class="block">Enables CRL Distribution Points Support</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setEnableOCSP(boolean)">setEnableOCSP</a></span>&#8203;(boolean&nbsp;enableOCSP)</code></th>
<td class="colLast">
<div class="block">Enables On-Line Certificate Status Protocol support</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMaxCertPathLength(int)">setMaxCertPathLength</a></span>&#8203;(int&nbsp;maxCertPathLength)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setOcspResponderURL(java.lang.String)">setOcspResponderURL</a></span>&#8203;(java.lang.String&nbsp;ocspResponderURL)</code></th>
<td class="colLast">
<div class="block">Set the location of the OCSP Responder.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setTrustStore(java.lang.String)">setTrustStore</a></span>&#8203;(java.lang.String&nbsp;trustStorePath)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setTrustStorePassword(java.lang.String)">setTrustStorePassword</a></span>&#8203;(java.lang.String&nbsp;password)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setTrustStoreProvider(java.lang.String)">setTrustStoreProvider</a></span>&#8203;(java.lang.String&nbsp;trustStoreProvider)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setTrustStoreType(java.lang.String)">setTrustStoreType</a></span>&#8203;(java.lang.String&nbsp;trustStoreType)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setValidateCerts(boolean)">setValidateCerts</a></span>&#8203;(boolean&nbsp;validateCerts)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code><a href="../../server/Authentication.html" title="interface in org.eclipse.jetty.server">Authentication</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateRequest(javax.servlet.ServletRequest,javax.servlet.ServletResponse,boolean)">validateRequest</a></span>&#8203;(javax.servlet.ServletRequest&nbsp;req,
               javax.servlet.ServletResponse&nbsp;res,
               boolean&nbsp;mandatory)</code></th>
<td class="colLast">
<div class="block">Validate a request</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.eclipse.jetty.security.authentication.LoginAuthenticator">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;org.eclipse.jetty.security.authentication.<a href="LoginAuthenticator.html" title="class in org.eclipse.jetty.security.authentication">LoginAuthenticator</a></h3>
<code><a href="LoginAuthenticator.html#getLoginService()">getLoginService</a>, <a href="LoginAuthenticator.html#login(java.lang.String,java.lang.Object,javax.servlet.ServletRequest)">login</a>, <a href="LoginAuthenticator.html#logout(javax.servlet.ServletRequest)">logout</a>, <a href="LoginAuthenticator.html#prepareRequest(javax.servlet.ServletRequest)">prepareRequest</a>, <a href="LoginAuthenticator.html#renewSession(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)">renewSession</a>, <a href="LoginAuthenticator.html#setConfiguration(org.eclipse.jetty.security.Authenticator.AuthConfiguration)">setConfiguration</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ClientCertAuthenticator</h4>
<pre>public&nbsp;ClientCertAuthenticator()</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a id="getAuthMethod()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAuthMethod</h4>
<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getAuthMethod()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The name of the authentication method</dd>
</dl>
</li>
</ul>
<a id="validateRequest(javax.servlet.ServletRequest,javax.servlet.ServletResponse,boolean)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateRequest</h4>
<pre class="methodSignature">public&nbsp;<a href="../../server/Authentication.html" title="interface in org.eclipse.jetty.server">Authentication</a>&nbsp;validateRequest&#8203;(javax.servlet.ServletRequest&nbsp;req,
                                      javax.servlet.ServletResponse&nbsp;res,
                                      boolean&nbsp;mandatory)
                               throws <a href="../ServerAuthException.html" title="class in org.eclipse.jetty.security">ServerAuthException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Authenticator.html#validateRequest(javax.servlet.ServletRequest,javax.servlet.ServletResponse,boolean)">Authenticator</a></code></span></div>
<div class="block">Validate a request</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>req</code> - The request</dd>
<dd><code>res</code> - The response</dd>
<dd><code>mandatory</code> - True if authentication is mandatory.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>An Authentication.  If Authentication is successful, this will be a <a href="../../server/Authentication.User.html" title="interface in org.eclipse.jetty.server"><code>Authentication.User</code></a>. If a response has
 been sent by the Authenticator (which can be done for both successful and unsuccessful authentications), then the result will
 implement <a href="../../server/Authentication.ResponseSent.html" title="interface in org.eclipse.jetty.server"><code>Authentication.ResponseSent</code></a>.  If Authentication is not mandatory, then a
 <a href="../../server/Authentication.Deferred.html" title="interface in org.eclipse.jetty.server"><code>Authentication.Deferred</code></a> may be returned.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../ServerAuthException.html" title="class in org.eclipse.jetty.security">ServerAuthException</a></code> - if unable to validate request</dd>
</dl>
</li>
</ul>
<a id="getKeyStore(java.io.InputStream,java.lang.String,java.lang.String,java.lang.String,java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getKeyStore</h4>
<pre class="methodSignature">@Deprecated
protected&nbsp;java.security.KeyStore&nbsp;getKeyStore&#8203;(java.io.InputStream&nbsp;storeStream,
                                             java.lang.String&nbsp;storePath,
                                             java.lang.String&nbsp;storeType,
                                             java.lang.String&nbsp;storeProvider,
                                             java.lang.String&nbsp;storePassword)
                                      throws java.lang.Exception</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code></dd>
</dl>
</li>
</ul>
<a id="getKeyStore(java.lang.String,java.lang.String,java.lang.String,java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getKeyStore</h4>
<pre class="methodSignature">protected&nbsp;java.security.KeyStore&nbsp;getKeyStore&#8203;(java.lang.String&nbsp;storePath,
                                             java.lang.String&nbsp;storeType,
                                             java.lang.String&nbsp;storeProvider,
                                             java.lang.String&nbsp;storePassword)
                                      throws java.lang.Exception</pre>
<div class="block">Loads keystore using an input stream or a file path in the same
 order of precedence.

 Required for integrations to be able to override the mechanism
 used to load a keystore in order to provide their own implementation.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>storePath</code> - path of keystore file</dd>
<dd><code>storeType</code> - keystore type</dd>
<dd><code>storeProvider</code> - keystore provider</dd>
<dd><code>storePassword</code> - keystore password</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>created keystore</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code> - if unable to get keystore</dd>
</dl>
</li>
</ul>
<a id="loadCRL(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>loadCRL</h4>
<pre class="methodSignature">protected&nbsp;java.util.Collection&lt;? extends java.security.cert.CRL&gt;&nbsp;loadCRL&#8203;(java.lang.String&nbsp;crlPath)
                                                                  throws java.lang.Exception</pre>
<div class="block">Loads certificate revocation list (CRL) from a file.

 Required for integrations to be able to override the mechanism used to
 load CRL in order to provide their own implementation.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>crlPath</code> - path of certificate revocation list file</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a (possibly empty) collection view of java.security.cert.CRL objects initialized with the data from the
 input stream.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code> - if unable to load CRL</dd>
</dl>
</li>
</ul>
<a id="secureResponse(javax.servlet.ServletRequest,javax.servlet.ServletResponse,boolean,org.eclipse.jetty.server.Authentication.User)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>secureResponse</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;secureResponse&#8203;(javax.servlet.ServletRequest&nbsp;req,
                              javax.servlet.ServletResponse&nbsp;res,
                              boolean&nbsp;mandatory,
                              <a href="../../server/Authentication.User.html" title="interface in org.eclipse.jetty.server">Authentication.User</a>&nbsp;validatedUser)
                       throws <a href="../ServerAuthException.html" title="class in org.eclipse.jetty.security">ServerAuthException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Authenticator.html#secureResponse(javax.servlet.ServletRequest,javax.servlet.ServletResponse,boolean,org.eclipse.jetty.server.Authentication.User)">Authenticator</a></code></span></div>
<div class="block">is response secure</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>req</code> - the request</dd>
<dd><code>res</code> - the response</dd>
<dd><code>mandatory</code> - if security is mandator</dd>
<dd><code>validatedUser</code> - the user that was validated</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if response is secure</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../ServerAuthException.html" title="class in org.eclipse.jetty.security">ServerAuthException</a></code> - if unable to test response</dd>
</dl>
</li>
</ul>
<a id="isValidateCerts()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isValidateCerts</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isValidateCerts()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if SSL certificate has to be validated</dd>
</dl>
</li>
</ul>
<a id="setValidateCerts(boolean)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setValidateCerts</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setValidateCerts&#8203;(boolean&nbsp;validateCerts)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>validateCerts</code> - true if SSL certificates have to be validated</dd>
</dl>
</li>
</ul>
<a id="getTrustStore()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTrustStore</h4>
<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getTrustStore()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The file name or URL of the trust store location</dd>
</dl>
</li>
</ul>
<a id="setTrustStore(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTrustStore</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setTrustStore&#8203;(java.lang.String&nbsp;trustStorePath)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>trustStorePath</code> - The file name or URL of the trust store location</dd>
</dl>
</li>
</ul>
<a id="getTrustStoreProvider()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTrustStoreProvider</h4>
<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getTrustStoreProvider()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The provider of the trust store</dd>
</dl>
</li>
</ul>
<a id="setTrustStoreProvider(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTrustStoreProvider</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setTrustStoreProvider&#8203;(java.lang.String&nbsp;trustStoreProvider)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>trustStoreProvider</code> - The provider of the trust store</dd>
</dl>
</li>
</ul>
<a id="getTrustStoreType()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTrustStoreType</h4>
<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getTrustStoreType()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The type of the trust store (default "JKS")</dd>
</dl>
</li>
</ul>
<a id="setTrustStoreType(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTrustStoreType</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setTrustStoreType&#8203;(java.lang.String&nbsp;trustStoreType)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>trustStoreType</code> - The type of the trust store (default "JKS")</dd>
</dl>
</li>
</ul>
<a id="setTrustStorePassword(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTrustStorePassword</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setTrustStorePassword&#8203;(java.lang.String&nbsp;password)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>password</code> - The password for the trust store</dd>
</dl>
</li>
</ul>
<a id="getCrlPath()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCrlPath</h4>
<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getCrlPath()</pre>
<div class="block">Get the crlPath.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the crlPath</dd>
</dl>
</li>
</ul>
<a id="setCrlPath(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setCrlPath</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setCrlPath&#8203;(java.lang.String&nbsp;crlPath)</pre>
<div class="block">Set the crlPath.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>crlPath</code> - the crlPath to set</dd>
</dl>
</li>
</ul>
<a id="getMaxCertPathLength()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMaxCertPathLength</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;getMaxCertPathLength()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Maximum number of intermediate certificates in
 the certification path (-1 for unlimited)</dd>
</dl>
</li>
</ul>
<a id="setMaxCertPathLength(int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setMaxCertPathLength</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setMaxCertPathLength&#8203;(int&nbsp;maxCertPathLength)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>maxCertPathLength</code> - maximum number of intermediate certificates in
 the certification path (-1 for unlimited)</dd>
</dl>
</li>
</ul>
<a id="isEnableCRLDP()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isEnableCRLDP</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isEnableCRLDP()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if CRL Distribution Points support is enabled</dd>
</dl>
</li>
</ul>
<a id="setEnableCRLDP(boolean)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setEnableCRLDP</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setEnableCRLDP&#8203;(boolean&nbsp;enableCRLDP)</pre>
<div class="block">Enables CRL Distribution Points Support</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>enableCRLDP</code> - true - turn on, false - turns off</dd>
</dl>
</li>
</ul>
<a id="isEnableOCSP()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isEnableOCSP</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isEnableOCSP()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if On-Line Certificate Status Protocol support is enabled</dd>
</dl>
</li>
</ul>
<a id="setEnableOCSP(boolean)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setEnableOCSP</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setEnableOCSP&#8203;(boolean&nbsp;enableOCSP)</pre>
<div class="block">Enables On-Line Certificate Status Protocol support</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>enableOCSP</code> - true - turn on, false - turn off</dd>
</dl>
</li>
</ul>
<a id="getOcspResponderURL()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOcspResponderURL</h4>
<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getOcspResponderURL()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Location of the OCSP Responder</dd>
</dl>
</li>
</ul>
<a id="setOcspResponderURL(java.lang.String)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>setOcspResponderURL</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setOcspResponderURL&#8203;(java.lang.String&nbsp;ocspResponderURL)</pre>
<div class="block">Set the location of the OCSP Responder.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ocspResponderURL</code> - location of the OCSP Responder</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/ClientCertAuthenticator.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" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.html">All&nbsp;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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&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 id="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 1995&#x2013;2021 <a href="https://webtide.com">Webtide</a>. All rights reserved.</small></p>
</footer>
</body>
</html>
