Package com.mimecast.robin.sasl
Class SqlUserLookup
java.lang.Object
com.mimecast.robin.sasl.SqlUserLookup
- All Implemented Interfaces:
AutoCloseable
SqlUserLookup provides user existence lookup against a configured SQL database.
It is intended as an alternative to the Dovecot UNIX domain socket userdb lookup.
Usage: construct with a JDBC URL/user/password or provide a HikariDataSource.
-
Nested Class Summary
Nested Classes -
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionSqlUserLookup(com.zaxxer.hikari.HikariDataSource ds, String userQuery) SqlUserLookup(com.zaxxer.hikari.HikariDataSource sharedDs, String userQuery, boolean unused) SqlUserLookup(com.zaxxer.hikari.HikariDataSource ds, String userQuery, String domainQuery, String aliasQuery) SqlUserLookup(String jdbcUrl, String user, String password, String userQuery) SqlUserLookup(String jdbcUrl, String user, String password, String userQuery, String domainQuery, String aliasQuery) -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()booleanisDomainServed(String domain) Checks if a domain is served by this mail system.resolveAlias(String email) Resolves an email alias to its real destination address.
-
Field Details
-
log
private static final org.apache.logging.log4j.Logger log -
ds
private final com.zaxxer.hikari.HikariDataSource ds -
userQuery
-
domainQuery
-
aliasQuery
-
-
Constructor Details
-
SqlUserLookup
-
SqlUserLookup
-
SqlUserLookup
-
SqlUserLookup
-
SqlUserLookup
-
-
Method Details
-
lookup
-
isDomainServed
Checks if a domain is served by this mail system. Returns true if domainQuery is not configured (backward compatible).- Parameters:
domain- Domain to check (e.g. "example.com").- Returns:
- True if the domain is served or no domain query is configured.
-
resolveAlias
Resolves an email alias to its real destination address. Returns empty if aliasQuery is not configured (backward compatible).- Parameters:
email- Email address to resolve.- Returns:
- Optional destination address, or empty if no alias exists.
-
close
public void close()- Specified by:
closein interfaceAutoCloseable
-