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-authenticatorsin 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
TRACElog 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
DEBUGfor 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
TRACEorDEBUGcan negatively impact performance due to the large volume of data being written to the log file.To restore the default
ERRORlog level for both modules, execute these commands:call logcontroller('com.denodo.vdb.security', 'ERROR'); call logcontroller('com.denodo.internal.o.a.r.server', 'ERROR');
