<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>DatabaseIdentityStoreDefinition</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="DatabaseIdentityStoreDefinition";
        }
    }
    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><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">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="../../../../javax/security/enterprise/identitystore/CredentialValidationResult.Status.html" title="enum in javax.security.enterprise.identitystore"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../javax/security/enterprise/identitystore/IdentityStore.html" title="interface in javax.security.enterprise.identitystore"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?javax/security/enterprise/identitystore/DatabaseIdentityStoreDefinition.html" target="_top">Frames</a></li>
<li><a href="DatabaseIdentityStoreDefinition.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>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Required&nbsp;|&nbsp;</li>
<li><a href="#annotation.type.optional.element.summary">Optional</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#annotation.type.element.detail">Element</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">javax.security.enterprise.identitystore</div>
<h2 title="Annotation Type DatabaseIdentityStoreDefinition" class="title">Annotation Type DatabaseIdentityStoreDefinition</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>@Retention(value=RUNTIME)
 @Target(value=TYPE)
public @interface <span class="memberNameLabel">DatabaseIdentityStoreDefinition</span></pre>
<div class="block">Annotation used to define a container-provided <a href="../../../../javax/security/enterprise/identitystore/IdentityStore.html" title="interface in javax.security.enterprise.identitystore"><code>IdentityStore</code></a> that
 stores caller credentials and identity attributes in a relational database,
 and make that implementation available as an enabled CDI bean.
 <p>
 The container-provided <code>IdentityStore</code> must support validating <a href="../../../../javax/security/enterprise/credential/UsernamePasswordCredential.html" title="class in javax.security.enterprise.credential"><code>UsernamePasswordCredential</code></a>,
 and may support validating other credential types.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== ANNOTATION TYPE OPTIONAL MEMBER SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="annotation.type.optional.element.summary">
<!--   -->
</a>
<h3>Optional Element Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Optional Element Summary table, listing optional elements, and an explanation">
<caption><span>Optional Elements</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Optional Element and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/security/enterprise/identitystore/DatabaseIdentityStoreDefinition.html#callerQuery--">callerQuery</a></span></code>
<div class="block">SQL query to validate the {caller, password} pair.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/security/enterprise/identitystore/DatabaseIdentityStoreDefinition.html#dataSourceLookup--">dataSourceLookup</a></span></code>
<div class="block">Full JNDI name of the data source that provides access to the data base
 where the caller identities are stored.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/security/enterprise/identitystore/DatabaseIdentityStoreDefinition.html#groupsQuery--">groupsQuery</a></span></code>
<div class="block">SQL query to retrieve the groups associated with the caller when
 authentication succeeds.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.lang.Class&lt;? extends <a href="../../../../javax/security/enterprise/identitystore/PasswordHash.html" title="interface in javax.security.enterprise.identitystore">PasswordHash</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/security/enterprise/identitystore/DatabaseIdentityStoreDefinition.html#hashAlgorithm--">hashAlgorithm</a></span></code>
<div class="block">A <a href="../../../../javax/security/enterprise/identitystore/PasswordHash.html" title="interface in javax.security.enterprise.identitystore"><code>PasswordHash</code></a> implementation used to verify plaintext passwords
 by generating a hash of the password and comparing it against the hashed
 value returned from the database via the <a href="../../../../javax/security/enterprise/identitystore/DatabaseIdentityStoreDefinition.html#callerQuery--"><code>callerQuery()</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.lang.String[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/security/enterprise/identitystore/DatabaseIdentityStoreDefinition.html#hashAlgorithmParameters--">hashAlgorithmParameters</a></span></code>
<div class="block">Used to specify algorithm-specific parameters.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/security/enterprise/identitystore/DatabaseIdentityStoreDefinition.html#priority--">priority</a></span></code>
<div class="block">Determines the order in case multiple IdentityStores are found.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/security/enterprise/identitystore/DatabaseIdentityStoreDefinition.html#priorityExpression--">priorityExpression</a></span></code>
<div class="block">Allow priority to be specified as an EL expression.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../javax/security/enterprise/identitystore/IdentityStore.ValidationType.html" title="enum in javax.security.enterprise.identitystore">IdentityStore.ValidationType</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/security/enterprise/identitystore/DatabaseIdentityStoreDefinition.html#useFor--">useFor</a></span></code>
<div class="block">Determines what the identity store is used for</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/security/enterprise/identitystore/DatabaseIdentityStoreDefinition.html#useForExpression--">useForExpression</a></span></code>
<div class="block">Allow useFor to be specified as an EL expression.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="annotation.type.element.detail">
<!--   -->
</a>
<h3>Element Detail</h3>
<a name="dataSourceLookup--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>dataSourceLookup</h4>
<pre>public abstract&nbsp;java.lang.String&nbsp;dataSourceLookup</pre>
<div class="block">Full JNDI name of the data source that provides access to the data base
 where the caller identities are stored.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Full JNDI name of the data source</dd>
</dl>
<dl>
<dt>Default:</dt>
<dd>"java:comp/DefaultDataSource"</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="callerQuery--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>callerQuery</h4>
<pre>public abstract&nbsp;java.lang.String&nbsp;callerQuery</pre>
<div class="block">SQL query to validate the {caller, password} pair.

 Only needed when <a href="../../../../javax/security/enterprise/identitystore/DatabaseIdentityStoreDefinition.html#useFor--"><code>useFor()</code></a> contains
 <a href="../../../../javax/security/enterprise/identitystore/IdentityStore.ValidationType.html#VALIDATE"><code>IdentityStore.ValidationType.VALIDATE</code></a>.

 <p>
 The name of the caller that is to be authenticated has to be set as the
 one and only placeholder. The (hashed) password should be in the first
 column of the result.

 <p>
 Example query:
 <pre>
 <code>
 select password from callers where name = ?
 </code>
 </pre></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>SQL query to validate</dd>
</dl>
<dl>
<dt>Default:</dt>
<dd>""</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="groupsQuery--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>groupsQuery</h4>
<pre>public abstract&nbsp;java.lang.String&nbsp;groupsQuery</pre>
<div class="block">SQL query to retrieve the groups associated with the caller when
 authentication succeeds.

 Only needed when <a href="../../../../javax/security/enterprise/identitystore/DatabaseIdentityStoreDefinition.html#useFor--"><code>useFor()</code></a> contains
 <a href="../../../../javax/security/enterprise/identitystore/IdentityStore.ValidationType.html#PROVIDE_GROUPS"><code>IdentityStore.ValidationType.PROVIDE_GROUPS</code></a>.

 <p>
 The name of the caller that has been authenticated has to be set as the
 one and only placeholder. The group name should be in the first column of
 the result.

 <p>
 Example query:
 <pre>
 <code>
 select group_name from caller_groups where caller_name = ?
 </code>
 </pre></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>SQL query to retrieve the groups</dd>
</dl>
<dl>
<dt>Default:</dt>
<dd>""</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="hashAlgorithm--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hashAlgorithm</h4>
<pre>public abstract&nbsp;java.lang.Class&lt;? extends <a href="../../../../javax/security/enterprise/identitystore/PasswordHash.html" title="interface in javax.security.enterprise.identitystore">PasswordHash</a>&gt;&nbsp;hashAlgorithm</pre>
<div class="block">A <a href="../../../../javax/security/enterprise/identitystore/PasswordHash.html" title="interface in javax.security.enterprise.identitystore"><code>PasswordHash</code></a> implementation used to verify plaintext passwords
 by generating a hash of the password and comparing it against the hashed
 value returned from the database via the <a href="../../../../javax/security/enterprise/identitystore/DatabaseIdentityStoreDefinition.html#callerQuery--"><code>callerQuery()</code></a>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The password hash used to verify plaintext passwords.</dd>
</dl>
<dl>
<dt>Default:</dt>
<dd>javax.security.enterprise.identitystore.Pbkdf2PasswordHash.class</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="hashAlgorithmParameters--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hashAlgorithmParameters</h4>
<pre>public abstract&nbsp;java.lang.String[]&nbsp;hashAlgorithmParameters</pre>
<div class="block">Used to specify algorithm-specific parameters.
 <p>
 Parameters are specified as a list of name/value pairs, using the format below:
 <blockquote><pre>
<i>parameterName=parameterValue</i>
 </pre></blockquote>
 <p>
 For example:
 <blockquote><pre>
 <i>Algorithm.param1="value"</i>
 <i>Algorithm.param2=32</i>
 </pre></blockquote>
 <p>
 This attribute supports immediate EL expressions (${} syntax) for both the
 <code>parameterValue</code> as well as for a full array element. If an EL
 expression is used for a full array element, the expression must evaluate
 to either a single string, a string array or a string <code>Stream</code> where
 in each case every string must adhere to the above specified format.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The algorithm parameters.</dd>
</dl>
<dl>
<dt>Default:</dt>
<dd>{}</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="priority--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>priority</h4>
<pre>public abstract&nbsp;int&nbsp;priority</pre>
<div class="block">Determines the order in case multiple IdentityStores are found.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the priority.</dd>
</dl>
<dl>
<dt>Default:</dt>
<dd>70</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="priorityExpression--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>priorityExpression</h4>
<pre>public abstract&nbsp;java.lang.String&nbsp;priorityExpression</pre>
<div class="block">Allow priority to be specified as an EL expression.
 If set, overrides any value set with priority.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the priority EL expression</dd>
</dl>
<dl>
<dt>Default:</dt>
<dd>""</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="useFor--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>useFor</h4>
<pre>public abstract&nbsp;<a href="../../../../javax/security/enterprise/identitystore/IdentityStore.ValidationType.html" title="enum in javax.security.enterprise.identitystore">IdentityStore.ValidationType</a>[]&nbsp;useFor</pre>
<div class="block">Determines what the identity store is used for</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the type the identity store is used for</dd>
</dl>
<dl>
<dt>Default:</dt>
<dd>{javax.security.enterprise.identitystore.IdentityStore.ValidationType.VALIDATE, javax.security.enterprise.identitystore.IdentityStore.ValidationType.PROVIDE_GROUPS}</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="useForExpression--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>useForExpression</h4>
<pre>public abstract&nbsp;java.lang.String&nbsp;useForExpression</pre>
<div class="block">Allow useFor to be specified as an EL expression.
 If set, overrides any value set with useFor.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the useFor EL expression</dd>
</dl>
<dl>
<dt>Default:</dt>
<dd>""</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= 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><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">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="../../../../javax/security/enterprise/identitystore/CredentialValidationResult.Status.html" title="enum in javax.security.enterprise.identitystore"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../javax/security/enterprise/identitystore/IdentityStore.html" title="interface in javax.security.enterprise.identitystore"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?javax/security/enterprise/identitystore/DatabaseIdentityStoreDefinition.html" target="_top">Frames</a></li>
<li><a href="DatabaseIdentityStoreDefinition.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>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Required&nbsp;|&nbsp;</li>
<li><a href="#annotation.type.optional.element.summary">Optional</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#annotation.type.element.detail">Element</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
