![JAR search and dependency download from the Maven repository](/logo.png)
org.kawanfw.sql.api.server.auth.UserAuthenticator Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of aceql-http Show documentation
Show all versions of aceql-http Show documentation
AceQL HTTP is a framework of REST like http APIs that allow to access to remote SQL databases over http from any device that supports http.
AceQL HTTP is provided with four client SDK:
- The AceQL C# Client SDK allows to wrap the HTTP APIs using Microsoft SQL Server like calls in their code, just like they would for a local database.
- The AceQL Java Client SDK allows to wrap the HTTP APIs using JDBC calls in their code, just like they would for a local database.
- The AceQL Python Client SDK allows SQL calls to be encoded with standard unmodified DB-API 2.0 syntax
/*
* Copyright (c)2022 KawanSoft S.A.S. All rights reserved.
*
* Use of this software is governed by the Business Source License included
* in the LICENSE.TXT file in the project's root directory.
*
* Change Date: 2026-11-01
*
* On the date above, in accordance with the Business Source License, use
* of this software will be governed by version 2.0 of the Apache License.
*/
package org.kawanfw.sql.api.server.auth;
import java.io.IOException;
import java.sql.SQLException;
/**
* Interface that defines how to authenticate a remote client that wants to
* create an AceQL session.
*
* Following built-in and ready to use classes are provided. No coding is
* required. See each Javadoc for more details:
*
* - {@link JdbcUserAuthenticator}: authenticates the remote client (username,
* password) against a SQL table using a JDBC query.
* - {@link LdapUserAuthenticator}: authenticates the remote client (username,
* password) against a LDAP server.
* - {@link SshUserAuthenticator}: authenticates the remote client (username,
* password) against a SSH server.
* - {@link WebServiceUserAuthenticator}: authenticates the remote client
* (username, password) against a Web service.
* - {@link WindowsUserAuthenticator}: authenticates the remote client
* (username, password) against the Windows server on which the AceQL server is
* running.
*
*
* @author Nicolas de Pomereu
* @since 5.0
*/
public interface UserAuthenticator {
/**
* Allows to authenticate the remote {@code (username, password)} couple sent by
* the client side.
*
*
* The AceQL HTTP Server will call the method in order to grant or not client
* access.
*
*
* Typical usage would be to check the (username, password) couple against a
* LDAP server or against a SSH server, etc.
*
* The method allows to retrieve:
*
* - The name of the database to which the client wants to connect.
* - The IP address of the client.
*
*
* @param username the username sent by the client
* @param password the password to connect to the server
* @param database the database name to which the client wants to connect
* @param ipAddress the IP address of the client user
* @return true if the client is authenticated by the method. If false, the
* client side will not be authorized to send any command.
* @throws IOException if an IOException occurs
* @throws SQLException if a SQLException occurs
*/
public boolean login(String username, char[] password, String database, String ipAddress)
throws IOException, SQLException;
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy