USER MANUALS

Diagnosing Custom Authenticators

How to diagnose problems:

When an authentication error occurs, an authentication error message is displayed in the Admin Tool or Web Design Studio. Concurrently, relevant error information is logged to the log file. This same behavior applies to connections that require a custom authenticator, regardless of whether they are made via JDBC, RESTful, or other protocols.

Here are some common cases and their solutions.

Missing JAR File

Generic authentication error occurs and the following information is logged:

ERROR: ... Log with Unable to find and instantiate class custom authenticator JAR
       ... LoadJarException: Error loading jar 'all-authenticators'.

This error happens when a custom authenticator’s JAR file (all-authenticators in this example) is configured but has not been imported as an extension in Virtual DataPort.

Tip

Solution: To import this file, follow the instructions in Import the third-party jar files of the Denodo Platform Installation Guide.

Insufficient Privileges

Insufficient privileges to connect authentication error message is displayed and the following information is logged:

ERROR: ... UserManager.doCustomAuthLogin: {}
       ... AuthenticationException: Insufficient privileges to connect to the database '<database>'

This issue indicates that the connecting user’s role does not have the necessary permissions on the database they are trying to connect to.

Tip

Solution: Ensure the user’s role exists and has the required privileges on the target database.

Log File with ‘doCustomAuthLogin’ Exception or Error

An exception or error related to doCustomAuthLogin means the problem originates from within your custom authenticator implementation.

Other Problems

If the solutions above don’t apply, you can enable more detailed server logs to help pinpoint the source of the issue.

To get started, enable the TRACE log level for Denodo’s security module:

call logcontroller('com.denodo.vdb.security', 'TRACE');

If that doesn’t provide enough information, you can try a more verbose and comprehensive log level by enabling DEBUG for the authentication server:

call logcontroller('com.denodo.internal.o.a.r.server', 'DEBUG');

Remember to always reset the log levels to their default values after you’ve gathered the information you need. Running the server with a high log level like TRACE or DEBUG can negatively impact performance due to the large volume of data being written to the log file.

To restore the default ERROR log level for both modules, execute these commands:

call logcontroller('com.denodo.vdb.security', 'ERROR');
call logcontroller('com.denodo.internal.o.a.r.server', 'ERROR');
Add feedback