Module org.hsqldb
Package org.hsqldb.auth

## Interface AuthFunctionBean

- All Known Implementing Classes:
    `HsqldbSlaveAuthBean`, `JaasAuthBean`, `LdapAuthBean`

      public interface AuthFunctionBean

  AuthFunctionBeans are NOT directly usable as HyperSQL Authentication Function methods, they are POJO beans to be managed by AuthBeanMultiplexer (which does have a real HyperSQL Authentication Function static method).
  Since:
    2.0.1
  Author:
    Blaine Simpson (blaine dot simpson at admc dot com)
  See Also:
    `for how these beans are used.`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.lang.String[]` | `authenticate​(java.lang.String userName, java.lang.String password)` | Return a list of authorized roles or null to indicate that the implementation does not intend to produce a specific role list but only to indicate whether to allow access or not.

- - ### Method Detail

    - #### authenticate

          java.lang.String[] authenticate​(java.lang.String userName,
                                          java.lang.String password)
                                   throws java.lang.Exception

      Return a list of authorized roles or null to indicate that the implementation does not intend to produce a specific role list but only to indicate whether to allow access or not. A return value of String[0] is different from returning null, and means that the user should not be granted any roles.
      Parameters:
        `userName` - String
        `password` - String
      Returns:
        null or String[] according to the contract of HyperSQL authentication function contract, except that the role/schema list is returned as a String[] instead of a java.sql.Array.
      Throws:
        `java.lang.Exception` - If user should not be allowed access to the specified database. Other registered AuthFunctionBeans will not be attempted.
        `java.lang.RuntimeException` - Upon system problem. The exception will be logged to the HyperSQL application logger and other registered AuthFunctionBeans (if any) will be attempted.