blob: eafb4e592114841ad3361f1c47b266fc391c6754 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.11) on Thu Oct 21 16:15:39 EDT 2021 -->
<title>AuthenticationToken (Apache Shiro 1.8.0 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2021-10-21">
<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="AuthenticationToken (Apache Shiro 1.8.0 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":6,"i1":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 = true;
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/AuthenticationToken.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>Nested&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.apache.shiro.authc</a></div>
<h2 title="Interface AuthenticationToken" class="title">Interface AuthenticationToken</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
</dl>
<dl>
<dt>All Known Subinterfaces:</dt>
<dd><code><a href="HostAuthenticationToken.html" title="interface in org.apache.shiro.authc">HostAuthenticationToken</a></code>, <code><a href="RememberMeAuthenticationToken.html" title="interface in org.apache.shiro.authc">RememberMeAuthenticationToken</a></code></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="BearerToken.html" title="class in org.apache.shiro.authc">BearerToken</a></code>, <code><a href="../cas/CasToken.html" title="class in org.apache.shiro.cas">CasToken</a></code>, <code><a href="UsernamePasswordToken.html" title="class in org.apache.shiro.authc">UsernamePasswordToken</a></code></dd>
</dl>
<hr>
<pre>public interface <a href="../../../../src-html/org/apache/shiro/authc/AuthenticationToken.html#line.60">AuthenticationToken</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></pre>
<div class="block"><p>An <tt>AuthenticationToken</tt> is a consolidation of an account's principals and supporting
credentials submitted by a user during an authentication attempt.
<p/>
<p>The token is submitted to an <a href="Authenticator.html" title="interface in org.apache.shiro.authc"><code>Authenticator</code></a> via the
<a href="Authenticator.html#authenticate(org.apache.shiro.authc.AuthenticationToken)"><code>authenticate(token)</code></a> method. The
Authenticator then executes the authentication/log-in process.
<p/>
<p>Common implementations of an <tt>AuthenticationToken</tt> would have username/password
pairs, X.509 Certificate, PGP key, or anything else you can think of. The token can be
anything needed by an <a href="Authenticator.html" title="interface in org.apache.shiro.authc"><code>Authenticator</code></a> to authenticate properly.
<p/>
<p>Because applications represent user data and credentials in different ways, implementations
of this interface are application-specific. You are free to acquire a user's principals and
credentials however you wish (e.g. web form, Swing form, fingerprint identification, etc) and
then submit them to the Shiro framework in the form of an implementation of this
interface.
<p/>
<p>If your application's authentication process is username/password based
(like most), instead of implementing this interface yourself, take a look at the
<a href="UsernamePasswordToken.html" title="class in org.apache.shiro.authc"><code>UsernamePasswordToken</code></a> class, as it is probably sufficient for your needs.
<p/>
<p>RememberMe services are enabled for a token if they implement a sub-interface of this one, called
<a href="RememberMeAuthenticationToken.html" title="interface in org.apache.shiro.authc"><code>RememberMeAuthenticationToken</code></a>. Implement that interface if you need
RememberMe services (the <tt>UsernamePasswordToken</tt> already implements this interface).
<p/>
<p>If you are familiar with JAAS, an <tt>AuthenticationToken</tt> replaces the concept of a
<a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/callback/Callback.html?is-external=true" title="class or interface in javax.security.auth.callback" class="externalLink"><code>Callback</code></a>, and defines meaningful behavior
(<tt>Callback</tt> is just a marker interface, and of little use). We
also think the name <em>AuthenticationToken</em> more accurately reflects its true purpose
in a login framework, whereas <em>Callback</em> is less obvious.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>0.1</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="RememberMeAuthenticationToken.html" title="interface in org.apache.shiro.authc"><code>RememberMeAuthenticationToken</code></a>,
<a href="HostAuthenticationToken.html" title="interface in org.apache.shiro.authc"><code>HostAuthenticationToken</code></a>,
<a href="UsernamePasswordToken.html" title="class in org.apache.shiro.authc"><code>UsernamePasswordToken</code></a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== 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><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCredentials()">getCredentials</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the credentials submitted by the user during the authentication process that verifies
the submitted <a href="#getPrincipal()"><code>account identity</code></a>.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPrincipal()">getPrincipal</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the account identity submitted during the authentication process.</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="getPrincipal()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPrincipal</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;<a href="../../../../src-html/org/apache/shiro/authc/AuthenticationToken.html#line.76">getPrincipal</a>()</pre>
<div class="block">Returns the account identity submitted during the authentication process.
<p/>
<p>Most application authentications are username/password based and have this
object represent a username. If this is the case for your application,
take a look at the <a href="UsernamePasswordToken.html" title="class in org.apache.shiro.authc"><code>UsernamePasswordToken</code></a>, as it is probably
sufficient for your use.
<p/>
<p>Ultimately, the object returned is application specific and can represent
any account identity (user id, X.509 certificate, etc).</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the account identity submitted during the authentication process.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="UsernamePasswordToken.html" title="class in org.apache.shiro.authc"><code>UsernamePasswordToken</code></a></dd>
</dl>
</li>
</ul>
<a id="getCredentials()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getCredentials</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;<a href="../../../../src-html/org/apache/shiro/authc/AuthenticationToken.html#line.92">getCredentials</a>()</pre>
<div class="block">Returns the credentials submitted by the user during the authentication process that verifies
the submitted <a href="#getPrincipal()"><code>account identity</code></a>.
<p/>
<p>Most application authentications are username/password based and have this object
represent a submitted password. If this is the case for your application,
take a look at the <a href="UsernamePasswordToken.html" title="class in org.apache.shiro.authc"><code>UsernamePasswordToken</code></a>, as it is probably
sufficient for your use.
<p/>
<p>Ultimately, the credentials Object returned is application specific and can represent
any credential mechanism.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the credential submitted by the user during the authentication process.</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/AuthenticationToken.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>Nested&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; 2004&#x2013;2021 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>