blob: 5ade83ac8aa9a97a54d0f0c85c2f9cc05cc047c5 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>jakarta.security.enterprise</title>
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="jakarta.security.enterprise";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../jakarta/resource/spi/work/package-summary.html">Prev&nbsp;Package</a></li>
<li><a href="../../../jakarta/security/enterprise/authentication/mechanism/http/package-summary.html">Next&nbsp;Package</a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?jakarta/security/enterprise/package-summary.html" target="_top">Frames</a></li>
<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 title="Package" class="title">Package&nbsp;jakarta.security.enterprise</h1>
<div class="docSummary">
<div class="block">The main Jakarta Security package.</div>
</div>
<p>See:&nbsp;<a href="#package.description">Description</a></p>
</div>
<div class="contentContainer">
<ul class="blockList">
<li class="blockList">
<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Interface</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../jakarta/security/enterprise/SecurityContext.html" title="interface in jakarta.security.enterprise">SecurityContext</a></td>
<td class="colLast">
<div class="block">The SecurityContext provides an access point for programmatic security; an injectable type that is intended to be
used by application code to query and interact with Jakarta Security.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../jakarta/security/enterprise/CallerPrincipal.html" title="class in jakarta.security.enterprise">CallerPrincipal</a></td>
<td class="colLast">
<div class="block">Principal that represents the caller principal associated with the invocation being
processed by the container (e.g.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Summary table, listing enums, and an explanation">
<caption><span>Enum Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Enum</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../jakarta/security/enterprise/AuthenticationStatus.html" title="enum in jakarta.security.enterprise">AuthenticationStatus</a></td>
<td class="colLast">
<div class="block">The AuthenticationStatus is used as a return value by primarily
the <a href="../../../jakarta/security/enterprise/authentication/mechanism/http/HttpAuthenticationMechanism.html" title="interface in jakarta.security.enterprise.authentication.mechanism.http"><code>HttpAuthenticationMechanism</code></a> to indicate the result (status)
of the authentication process.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Exception Summary table, listing exceptions, and an explanation">
<caption><span>Exception Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Exception</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../jakarta/security/enterprise/AuthenticationException.html" title="class in jakarta.security.enterprise">AuthenticationException</a></td>
<td class="colLast">
<div class="block">A generic authentication exception.</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
<a name="package.description">
<!-- -->
</a>
<h2 title="Package jakarta.security.enterprise Description">Package jakarta.security.enterprise Description</h2>
<div class="block">The main Jakarta Security package. This package contains classes and interfaces that span authentication,
authorization and identity concerns.
<h2>EL Support in annotations</h2>
This specification supports the use of expression language 3.0 in annotations. This is described in more detail
below:
<h3>...Definition annotations</h3>
Jakarta Security features several annotations, with names that end with <code>Definition</code>, which, when used,
make CDI beans available. For completeness, this concerns the following annotations:
<ul>
<li><a href="../../../jakarta/security/enterprise/identitystore/DatabaseIdentityStoreDefinition.html" title="annotation in jakarta.security.enterprise.identitystore"><code>DatabaseIdentityStoreDefinition</code></a></li>
<li><a href="../../../jakarta/security/enterprise/identitystore/LdapIdentityStoreDefinition.html" title="annotation in jakarta.security.enterprise.identitystore"><code>LdapIdentityStoreDefinition</code></a></li>
<li><a href="../../../jakarta/security/enterprise/authentication/mechanism/http/BasicAuthenticationMechanismDefinition.html" title="annotation in jakarta.security.enterprise.authentication.mechanism.http"><code>BasicAuthenticationMechanismDefinition</code></a></li>
<li><a href="../../../jakarta/security/enterprise/authentication/mechanism/http/CustomFormAuthenticationMechanismDefinition.html" title="annotation in jakarta.security.enterprise.authentication.mechanism.http"><code>CustomFormAuthenticationMechanismDefinition</code></a></li>
<li><a href="../../../jakarta/security/enterprise/authentication/mechanism/http/FormAuthenticationMechanismDefinition.html" title="annotation in jakarta.security.enterprise.authentication.mechanism.http"><code>FormAuthenticationMechanismDefinition</code></a></li>
</ul>
For all attributes of type <code>String</code> on these annotations, Jakarta Expression Language 3.0 expressions can
be used. All named CDI beans are available to that expression, as well as the default classes as specified by
Expression Language 3.0 for the <code>ELProcessor</code>.
<p>
Expressions can be either immediate (<code>${}</code> syntax), or deferred (<code>#{}</code> syntax). Immediate
expressions are evaluated once when the bean instance corresponding to the "...Definition" annotation is actually
created. Since such beans are application scoped, that means once for the entire application. Deferred expressions
are evaluated in each request where the security runtime needs to use the value of these attributes.
<p>
Attributes that are documented as being Expression Language alternatives to non-<code>String</code> type attributes
(attributes for which the name ends with <code>Expression</code>, hereafter called Expression alternative attribute) MUST
evaluate to the same type as the attribute they are an alternative to. If the Expression alternative attribute has a non
empty value, it takes precedence over the attribute which it is an alternative to.
<p>
The Expression alternative attribute MUST contain a valid Expression Language expression. Attributes of type
string that are not Expression alternative attributes can contain either an expression or a string value
that is not an expression.
<h3>Jakarta Interceptors annotations</h3>
Jakarta Security features several annotations with attributes that denote Jakarta Interceptors. For completeness,
this concerns the following annotations:
<ul>
<li><a href="../../../jakarta/security/enterprise/authentication/mechanism/http/LoginToContinue.html" title="annotation in jakarta.security.enterprise.authentication.mechanism.http"><code>LoginToContinue</code></a></li>
<li><a href="../../../jakarta/security/enterprise/authentication/mechanism/http/RememberMe.html" title="annotation in jakarta.security.enterprise.authentication.mechanism.http"><code>RememberMe</code></a></li>
</ul>
<p>
Expression Language is supported for these annotations as well, but in a slightly different way. See the javadoc of
both these annotations for how the expression language support differs.</div>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../jakarta/resource/spi/work/package-summary.html">Prev&nbsp;Package</a></li>
<li><a href="../../../jakarta/security/enterprise/authentication/mechanism/http/package-summary.html">Next&nbsp;Package</a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?jakarta/security/enterprise/package-summary.html" target="_top">Frames</a></li>
<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses-noframe.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>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>