public class SSPIClient extends Object implements ISSPIClient
Use Waffle-JNI to support SSPI authentication when PgJDBC is running on a Windows client and talking to a Windows server.
SSPI is not supported on a non-Windows client.
Modifier and Type | Field and Description |
---|---|
static String |
SSPI_DEFAULT_SPN_SERVICE_CLASS |
Constructor and Description |
---|
SSPIClient(PGStream pgStream,
String spnServiceClass,
boolean enableNegotiate)
Instantiate an SSPIClient for authentication of a connection.
|
Modifier and Type | Method and Description |
---|---|
void |
continueSSPI(int msgLength)
Continue an existing authentication conversation with the back-end in response to an
authentication request of type AUTH_REQ_GSS_CONT.
|
void |
dispose()
Clean up native win32 resources after completion or failure of SSPI authentication.
|
boolean |
isSSPISupported()
Test whether we can attempt SSPI authentication.
|
void |
startSSPI()
Respond to an authentication request from the back-end for SSPI authentication (AUTH_REQ_SSPI).
|
public static final String SSPI_DEFAULT_SPN_SERVICE_CLASS
public SSPIClient(PGStream pgStream, String spnServiceClass, boolean enableNegotiate)
Instantiate an SSPIClient for authentication of a connection.
SSPIClient is not re-usable across connections.
It is safe to instantiate SSPIClient even if Waffle and JNA are missing or on non-Windows platforms, however you may not call any methods other than isSSPISupported().
pgStream
- PostgreSQL connection streamspnServiceClass
- SSPI SPN service class, defaults to POSTGRES if nullenableNegotiate
- enable negotiatepublic boolean isSSPISupported()
isSSPISupported
in interface ISSPIClient
public void startSSPI() throws SQLException, IOException
startSSPI
in interface ISSPIClient
SQLException
- on SSPI authentication handshake failureIOException
- on network I/O issuespublic void continueSSPI(int msgLength) throws SQLException, IOException
continueSSPI
in interface ISSPIClient
msgLength
- Length of message to read, excluding length word and message type wordSQLException
- if something wrong happensIOException
- if something wrong happenspublic void dispose()
dispose
in interface ISSPIClient
Copyright © 1997-2020 PostgreSQL Global Development Group. All Rights Reserved.