blob: de274e8a2cb6c4302a9d2e99920a53719b928dfe [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.11) on Fri Oct 01 11:33:56 CDT 2021 -->
<title>Authenticator (Jetty :: Project 9.4.44.v20210927 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2021-10-01">
<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="Authenticator (Jetty :: Project 9.4.44.v20210927 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract 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/Authenticator.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>Field&nbsp;|&nbsp;</li>
<li>Constr&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>Constr&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</a></div>
<h2 title="Interface Authenticator" class="title">Interface Authenticator</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="authentication/BasicAuthenticator.html" title="class in org.eclipse.jetty.security.authentication">BasicAuthenticator</a></code>, <code><a href="authentication/ClientCertAuthenticator.html" title="class in org.eclipse.jetty.security.authentication">ClientCertAuthenticator</a></code>, <code><a href="authentication/ConfigurableSpnegoAuthenticator.html" title="class in org.eclipse.jetty.security.authentication">ConfigurableSpnegoAuthenticator</a></code>, <code><a href="authentication/DigestAuthenticator.html" title="class in org.eclipse.jetty.security.authentication">DigestAuthenticator</a></code>, <code><a href="authentication/FormAuthenticator.html" title="class in org.eclipse.jetty.security.authentication">FormAuthenticator</a></code>, <code><a href="jaspi/JaspiAuthenticator.html" title="class in org.eclipse.jetty.security.jaspi">JaspiAuthenticator</a></code>, <code><a href="authentication/LoginAuthenticator.html" title="class in org.eclipse.jetty.security.authentication">LoginAuthenticator</a></code>, <code><a href="openid/OpenIdAuthenticator.html" title="class in org.eclipse.jetty.security.openid">OpenIdAuthenticator</a></code>, <code><a href="authentication/SpnegoAuthenticator.html" title="class in org.eclipse.jetty.security.authentication">SpnegoAuthenticator</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">Authenticator</span></pre>
<div class="block">Authenticator Interface
<p>
An Authenticator is responsible for checking requests and sending
response challenges in order to authenticate a request.
Various types of <a href="../server/Authentication.html" title="interface in org.eclipse.jetty.server"><code>Authentication</code></a> are returned in order to
signal the next step in authentication.</div>
<dl>
<dt><span class="simpleTagLabel">Version:</span></dt>
<dd>$Rev: 4793 $ $Date: 2009-03-19 00:00:01 +0100 (Thu, 19 Mar 2009) $</dd>
</dl>
</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>
<table class="memberSummary">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Interface</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Authenticator.AuthConfiguration.html" title="interface in org.eclipse.jetty.security">Authenticator.AuthConfiguration</a></span></code></th>
<td class="colLast">
<div class="block">Authenticator Configuration</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Authenticator.Factory.html" title="interface in org.eclipse.jetty.security">Authenticator.Factory</a></span></code></th>
<td class="colLast">
<div class="block">Authenticator Factory</div>
</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="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract 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>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#prepareRequest(javax.servlet.ServletRequest)">prepareRequest</a></span>&#8203;(javax.servlet.ServletRequest&nbsp;request)</code></th>
<td class="colLast">
<div class="block">Called prior to validateRequest.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<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;request,
javax.servlet.ServletResponse&nbsp;response,
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="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setConfiguration(org.eclipse.jetty.security.Authenticator.AuthConfiguration)">setConfiguration</a></span>&#8203;(<a href="Authenticator.AuthConfiguration.html" title="interface in org.eclipse.jetty.security">Authenticator.AuthConfiguration</a>&nbsp;configuration)</code></th>
<td class="colLast">
<div class="block">Configure the Authenticator</div>
</td>
</tr>
<tr id="i4" 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;request,
javax.servlet.ServletResponse&nbsp;response,
boolean&nbsp;mandatory)</code></th>
<td class="colLast">
<div class="block">Validate a request</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="setConfiguration(org.eclipse.jetty.security.Authenticator.AuthConfiguration)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setConfiguration</h4>
<pre class="methodSignature">void&nbsp;setConfiguration&#8203;(<a href="Authenticator.AuthConfiguration.html" title="interface in org.eclipse.jetty.security">Authenticator.AuthConfiguration</a>&nbsp;configuration)</pre>
<div class="block">Configure the Authenticator</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>configuration</code> - the configuration</dd>
</dl>
</li>
</ul>
<a id="getAuthMethod()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAuthMethod</h4>
<pre class="methodSignature">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="prepareRequest(javax.servlet.ServletRequest)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>prepareRequest</h4>
<pre class="methodSignature">void&nbsp;prepareRequest&#8203;(javax.servlet.ServletRequest&nbsp;request)</pre>
<div class="block">Called prior to validateRequest. The authenticator can
manipulate the request to update it with information that
can be inspected prior to validateRequest being called.
The primary purpose of this method is to satisfy the Servlet
Spec 3.1 section 13.6.3 on handling Form authentication
where the http method of the original request causing authentication
is not the same as the http method resulting from the redirect
after authentication.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>request</code> - the request to manipulate</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"><a href="../server/Authentication.html" title="interface in org.eclipse.jetty.server">Authentication</a>&nbsp;validateRequest&#8203;(javax.servlet.ServletRequest&nbsp;request,
javax.servlet.ServletResponse&nbsp;response,
boolean&nbsp;mandatory)
throws <a href="ServerAuthException.html" title="class in org.eclipse.jetty.security">ServerAuthException</a></pre>
<div class="block">Validate a request</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>request</code> - The request</dd>
<dd><code>response</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="secureResponse(javax.servlet.ServletRequest,javax.servlet.ServletResponse,boolean,org.eclipse.jetty.server.Authentication.User)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>secureResponse</h4>
<pre class="methodSignature">boolean&nbsp;secureResponse&#8203;(javax.servlet.ServletRequest&nbsp;request,
javax.servlet.ServletResponse&nbsp;response,
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">is response secure</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>request</code> - the request</dd>
<dd><code>response</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>
</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/Authenticator.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>Field&nbsp;|&nbsp;</li>
<li>Constr&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>Constr&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>