<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!-- NewPage --> <html lang="en"> <head> <!-- Generated by javadoc (version 1.7.0_40) on Mon Oct 21 11:07:36 UTC 2013 --> <meta http-equiv="Content-Type" content="text/html" charset="UTF-8"> <title>AuthBeanMultiplexer (HSQLDB 2.2.9 API)</title> <meta name="date" content="2013-10-21"> <link rel="stylesheet" type="text/css" href="../../../javadoc.css" title="Style"> </head> <body> <script type="text/javascript"><!-- if (location.href.indexOf('is-external=true') == -1) { parent.document.title="AuthBeanMultiplexer (HSQLDB 2.2.9 API)"; } //--> </script> <noscript> <div>JavaScript is disabled on your browser.</div> </noscript> <!-- ========= START OF TOP NAVBAR ======= --> <div class="topNav"><a name="navbar_top"> <!-- --> </a><a href="#skip-navbar_top" title="Skip navigation links"></a><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="class-use/AuthBeanMultiplexer.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"> <li>Prev Class</li> <li><a href="../../../org/hsqldb/auth/AuthFunctionBean.html" title="interface in org.hsqldb.auth"><span class="strong">Next Class</span></a></li> </ul> <ul class="navList"> <li><a href="../../../index.html?org/hsqldb/auth/AuthBeanMultiplexer.html" target="_top">Frames</a></li> <li><a href="AuthBeanMultiplexer.html" target="_top">No Frames</a></li> </ul> <ul class="navList" id="allclasses_navbar_top"> <li><a href="../../../allclasses-noframe.html">All 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: </li> <li>Nested | </li> <li>Field | </li> <li>Constr | </li> <li><a href="#method_summary">Method</a></li> </ul> <ul class="subNavList"> <li>Detail: </li> <li>Field | </li> <li>Constr | </li> <li><a href="#method_detail">Method</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">org.hsqldb.auth</div> <h2 title="Class AuthBeanMultiplexer" class="title">Class AuthBeanMultiplexer</h2> </div> <div class="contentContainer"> <ul class="inheritance"> <li>java.lang.Object</li> <li> <ul class="inheritance"> <li>org.hsqldb.auth.AuthBeanMultiplexer</li> </ul> </li> </ul> <div class="description"> <ul class="blockList"> <li class="blockList"> <hr> <br> <pre>public class <span class="strong">AuthBeanMultiplexer</span> extends java.lang.Object</pre> <div class="block">This class provides a method which can be used directly as a HyperSQL static Java function method. Manages a set of AuthFunctionBean implementations</div> <dl><dt><span class="strong">Since:</span></dt> <dd>2.0.1</dd> <dt><span class="strong">Author:</span></dt> <dd>Blaine Simpson (blaine dot simpson at admc dot com)</dd></dl> </li> </ul> </div> <div class="summary"> <ul class="blockList"> <li class="blockList"> <!-- ========== METHOD SUMMARY =========== --> <ul class="blockList"> <li class="blockList"><a name="method_summary"> <!-- --> </a> <h3>Method Summary</h3> <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> <caption><span>Methods</span><span class="tabEnd"> </span></caption> <tr> <th class="colFirst" scope="col">Modifier and Type</th> <th class="colLast" scope="col">Method and Description</th> </tr> <tr class="altColor"> <td class="colFirst"><code>static java.sql.Array</code></td> <td class="colLast"><code><strong><a href="../../../org/hsqldb/auth/AuthBeanMultiplexer.html#authenticate(java.lang.String, java.lang.String, java.lang.String)">authenticate</a></strong>(java.lang.String database, java.lang.String user, java.lang.String password)</code> <div class="block">HyperSQL Java Function Method.</div> </td> </tr> <tr class="rowColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../org/hsqldb/auth/AuthBeanMultiplexer.html#clear()">clear</a></strong>()</code> <div class="block">Clear the set of AuthFunctionBeans</div> </td> </tr> <tr class="altColor"> <td class="colFirst"><code>static <a href="../../../org/hsqldb/auth/AuthBeanMultiplexer.html" title="class in org.hsqldb.auth">AuthBeanMultiplexer</a></code></td> <td class="colLast"><code><strong><a href="../../../org/hsqldb/auth/AuthBeanMultiplexer.html#getSingleton()">getSingleton</a></strong>()</code> </td> </tr> <tr class="rowColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../org/hsqldb/auth/AuthBeanMultiplexer.html#setAuthFunctionBean(java.sql.Connection, org.hsqldb.auth.AuthFunctionBean)">setAuthFunctionBean</a></strong>(java.sql.Connection c, <a href="../../../org/hsqldb/auth/AuthFunctionBean.html" title="interface in org.hsqldb.auth">AuthFunctionBean</a> authFunctionBean)</code> <div class="block">Exactly the same as setAuthFunctionBeans(String, List) other than taking an open Connection to identify the database.</div> </td> </tr> <tr class="altColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../org/hsqldb/auth/AuthBeanMultiplexer.html#setAuthFunctionBean(java.lang.String, org.hsqldb.auth.AuthFunctionBean)">setAuthFunctionBean</a></strong>(java.lang.String dbName, <a href="../../../org/hsqldb/auth/AuthFunctionBean.html" title="interface in org.hsqldb.auth">AuthFunctionBean</a> authFunctionBean)</code> <div class="block">This is not an "adder" function, but a "setter" function for the specified dbName , so do not use this to add to a database's FunctionBeans, but to assign ths single given AuthFunctionBean as the specified database's authenticator.</div> </td> </tr> <tr class="rowColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../org/hsqldb/auth/AuthBeanMultiplexer.html#setAuthFunctionBeans(java.sql.Connection, java.util.List)">setAuthFunctionBeans</a></strong>(java.sql.Connection c, java.util.List<<a href="../../../org/hsqldb/auth/AuthFunctionBean.html" title="interface in org.hsqldb.auth">AuthFunctionBean</a>> authFunctionBeans)</code> <div class="block">Wrapper for setAuthFunctioNBeans(String, List<AuthFunctionBean>)</div> </td> </tr> <tr class="altColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../org/hsqldb/auth/AuthBeanMultiplexer.html#setAuthFunctionBeans(java.util.Map)">setAuthFunctionBeans</a></strong>(java.util.Map<java.lang.String,java.util.List<<a href="../../../org/hsqldb/auth/AuthFunctionBean.html" title="interface in org.hsqldb.auth">AuthFunctionBean</a>>> authFunctionBeanMap)</code> <div class="block">Primary purpose of this class is to manage this static map.</div> </td> </tr> <tr class="rowColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../org/hsqldb/auth/AuthBeanMultiplexer.html#setAuthFunctionBeans(java.lang.String, java.util.List)">setAuthFunctionBeans</a></strong>(java.lang.String dbName, java.util.List<<a href="../../../org/hsqldb/auth/AuthFunctionBean.html" title="interface in org.hsqldb.auth">AuthFunctionBean</a>> authFunctionBeans)</code> <div class="block">This is not an "adder" function, but a "setter" function for the specified dbName , so do not use this to add to a database's FunctionBeans, but to assign the entire list for that database.</div> </td> </tr> </table> <ul class="blockList"> <li class="blockList"><a name="methods_inherited_from_class_java.lang.Object"> <!-- --> </a> <h3>Methods inherited from class java.lang.Object</h3> <code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li> </ul> </li> </ul> </li> </ul> </div> <div class="details"> <ul class="blockList"> <li class="blockList"> <!-- ============ METHOD DETAIL ========== --> <ul class="blockList"> <li class="blockList"><a name="method_detail"> <!-- --> </a> <h3>Method Detail</h3> <a name="getSingleton()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>getSingleton</h4> <pre>public static <a href="../../../org/hsqldb/auth/AuthBeanMultiplexer.html" title="class in org.hsqldb.auth">AuthBeanMultiplexer</a> getSingleton()</pre> </li> </ul> <a name="clear()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>clear</h4> <pre>public void clear()</pre> <div class="block">Clear the set of AuthFunctionBeans</div> </li> </ul> <a name="setAuthFunctionBeans(java.util.Map)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>setAuthFunctionBeans</h4> <pre>public void setAuthFunctionBeans(java.util.Map<java.lang.String,java.util.List<<a href="../../../org/hsqldb/auth/AuthFunctionBean.html" title="interface in org.hsqldb.auth">AuthFunctionBean</a>>> authFunctionBeanMap)</pre> <div class="block">Primary purpose of this class is to manage this static map. From dbNames to ordered-lists-of-AuthFunctionBeans. This is not an "adder" function, but a "setter" function, so do not use this to add to a partial set, but to assign the entire set. <P> The given entries are copied, to limit side-effects and concurrency issues. </P></div> </li> </ul> <a name="setAuthFunctionBeans(java.sql.Connection, java.util.List)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>setAuthFunctionBeans</h4> <pre>public void setAuthFunctionBeans(java.sql.Connection c, java.util.List<<a href="../../../org/hsqldb/auth/AuthFunctionBean.html" title="interface in org.hsqldb.auth">AuthFunctionBean</a>> authFunctionBeans) throws java.sql.SQLException</pre> <div class="block">Wrapper for setAuthFunctioNBeans(String, List<AuthFunctionBean>)</div> <dl><dt><span class="strong">Parameters:</span></dt><dd><code>c</code> - An open Connection to the desired database.</dd> <dt><span class="strong">Throws:</span></dt> <dd><code>java.sql.SQLException</code> - if failed to obtain unique name from given Connection.</dd></dl> </li> </ul> <a name="setAuthFunctionBeans(java.lang.String, java.util.List)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>setAuthFunctionBeans</h4> <pre>public void setAuthFunctionBeans(java.lang.String dbName, java.util.List<<a href="../../../org/hsqldb/auth/AuthFunctionBean.html" title="interface in org.hsqldb.auth">AuthFunctionBean</a>> authFunctionBeans)</pre> <div class="block">This is not an "adder" function, but a "setter" function for the specified dbName , so do not use this to add to a database's FunctionBeans, but to assign the entire list for that database. <P> The given entries are copied, to limit side-effects and concurrency issues. </P> <P> Use this method instead of setAuthFunctionBean(String, AuthFunctionBean) in order to set up multiple authenticators for a single database for redundancy purposes. </P></div> <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../org/hsqldb/auth/AuthBeanMultiplexer.html#setAuthFunctionBeans(java.util.Map)"><code>setAuthFunctionBeans(Map)</code></a>, <a href="../../../org/hsqldb/auth/AuthBeanMultiplexer.html#setAuthFunctionBean(java.lang.String, org.hsqldb.auth.AuthFunctionBean)"><code>setAuthFunctionBean(String, AuthFunctionBean)</code></a></dd></dl> </li> </ul> <a name="setAuthFunctionBean(java.sql.Connection, org.hsqldb.auth.AuthFunctionBean)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>setAuthFunctionBean</h4> <pre>public void setAuthFunctionBean(java.sql.Connection c, <a href="../../../org/hsqldb/auth/AuthFunctionBean.html" title="interface in org.hsqldb.auth">AuthFunctionBean</a> authFunctionBean) throws java.sql.SQLException</pre> <div class="block">Exactly the same as setAuthFunctionBeans(String, List) other than taking an open Connection to identify the database.</div> <dl><dt><span class="strong">Throws:</span></dt> <dd><code>java.sql.SQLException</code></dd></dl> </li> </ul> <a name="setAuthFunctionBean(java.lang.String, org.hsqldb.auth.AuthFunctionBean)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>setAuthFunctionBean</h4> <pre>public void setAuthFunctionBean(java.lang.String dbName, <a href="../../../org/hsqldb/auth/AuthFunctionBean.html" title="interface in org.hsqldb.auth">AuthFunctionBean</a> authFunctionBean)</pre> <div class="block">This is not an "adder" function, but a "setter" function for the specified dbName , so do not use this to add to a database's FunctionBeans, but to assign ths single given AuthFunctionBean as the specified database's authenticator. <P> To set up multiple authenticators for a single database for redundancy purposes, use the method setAuthFunctionBeans(String, List) instead. </P></div> <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../org/hsqldb/auth/AuthBeanMultiplexer.html#setAuthFunctionBeans(java.lang.String, java.util.List)"><code>setAuthFunctionBeans(String, List)</code></a></dd></dl> </li> </ul> <a name="authenticate(java.lang.String, java.lang.String, java.lang.String)"> <!-- --> </a> <ul class="blockListLast"> <li class="blockList"> <h4>authenticate</h4> <pre>public static java.sql.Array authenticate(java.lang.String database, java.lang.String user, java.lang.String password) throws java.lang.Exception</pre> <div class="block">HyperSQL Java Function Method. <P> Registered AuthFunctionBeans matching the specified database and password will be tried in order. <OL> <li>If the AuthFunctionBean being tried throws a non-runtime Exception, then that RuntimeException is passed through (re-thrown), resulting in a SQLException for the authenticating application. <li>If the AuthFunctionBean being tried doesn't throw anything, then the return value is passed through (returned) and HyperSQL will allow access and set roles according to HyperSQL's authentication function contract. <LI>If the AuthFunctionBean being tried throws a RuntimeException, then the next AuthFunctionBean in turn will be tried. If all matching AuthFunctionBeans throw RuntimeExceptions, then the first RuntimeException that was thrown will be passed through (re-thrown), resulting in a SQLException for the authenticating application. <LI>If there are no AuthFunctionBeans registered for the specified dbName, then this method will throw an IllegalArgumentException, resulting in a SQLException for the authenticating application. </OL></div> <dl><dt><span class="strong">Returns:</span></dt><dd>Null or java.sql.Array to indicate successful authentication according to the contract for HyperSQL authentication functions.</dd> <dt><span class="strong">Throws:</span></dt> <dd><code>java.lang.IllegalArgumentException</code> - if no AuthFunctionBean has been set for specified dbName.</dd> <dd><code>java.lang.RuntimeException</code> - if all matching AuthFunctionBeans threw RuntimeExceptions. (This indicates that no matching AuthFunctionBean functioned properly, not that authentication was purposefully denied by any AuthFunctionBean).</dd> <dd><code>java.lang.Exception</code> - (non-runtime). A matching AuthFunctionBean threw this Exception.</dd><dt><span class="strong">See Also:</span></dt><dd><code>User Guide, System Management chapter, Authentication Settings subsection.</code></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><a href="#skip-navbar_bottom" title="Skip navigation links"></a><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="class-use/AuthBeanMultiplexer.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"> <li>Prev Class</li> <li><a href="../../../org/hsqldb/auth/AuthFunctionBean.html" title="interface in org.hsqldb.auth"><span class="strong">Next Class</span></a></li> </ul> <ul class="navList"> <li><a href="../../../index.html?org/hsqldb/auth/AuthBeanMultiplexer.html" target="_top">Frames</a></li> <li><a href="AuthBeanMultiplexer.html" target="_top">No Frames</a></li> </ul> <ul class="navList" id="allclasses_navbar_bottom"> <li><a href="../../../allclasses-noframe.html">All 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: </li> <li>Nested | </li> <li>Field | </li> <li>Constr | </li> <li><a href="#method_summary">Method</a></li> </ul> <ul class="subNavList"> <li>Detail: </li> <li>Field | </li> <li>Constr | </li> <li><a href="#method_detail">Method</a></li> </ul> </div> <a name="skip-navbar_bottom"> <!-- --> </a></div> <!-- ======== END OF BOTTOM NAVBAR ======= --> <p class="legalCopy"><small><i>Copyright �� 2001 - 2010 HSQL Development Group.</i></small></p> </body> </html>