Top Description Fields Constructors Methods
com.mysql.cj.protocol.a.authentication

public Class AuthenticationOpenidConnectClient

extends Object
implements AuthenticationPlugin<NativePacketPayload>
Class Inheritance
All Implemented Interfaces
com.mysql.cj.protocol.AuthenticationPlugin
Imports
java.util.List, com.mysql.cj.Messages, com.mysql.cj.callback.MysqlCallbackHandler, .OpenidConnectAuthenticationCallback, .UsernameCallback, com.mysql.cj.conf.PropertyKey, .RuntimeProperty, com.mysql.cj.exceptions.ExceptionFactory, .WrongArgumentException, com.mysql.cj.protocol.AuthenticationPlugin, .Protocol, com.mysql.cj.protocol.a.NativeConstants.IntegerDataType, .NativeConstants.StringSelfDataType, .NativePacketPayload, com.mysql.cj.util.Util

MySQL 'authentication_openid_connect_client' authentication plugin.

Field Summary

Modifier and TypeField and Description
private OpenidConnectAuthenticationCallback
private MysqlCallbackHandler
public static String
private Protocol<NativePacketPayload>
private String
private MysqlCallbackHandler

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public void
destroy()

Overrides default com.mysql.cj.protocol.AuthenticationPlugin.destroy.

Called by the driver when this extension should release any resources it is holding and cleanup internally before the connection is closed.

private String
public String
getProtocolPluginName()

Implements com.mysql.cj.protocol.AuthenticationPlugin.getProtocolPluginName.

Returns the client-side name that the MySQL server uses on the wire for this plugin.

public void
init(Protocol<NativePacketPayload>
the protocol instance
prot
,
MysqlCallbackHandler
a callback handler to provide additional information to the authentication provider
cbh
)

Overrides default com.mysql.cj.protocol.AuthenticationPlugin.init.

Initializes this plugin with a direct Protocol reference and a generic MysqlCallbackHandler that can be used to pass over information back to the authentication provider.

public boolean
public boolean
nextAuthenticationStep(NativePacketPayload
a buffer containing handshake data payload from server (can be empty).
fromServer
,
List<NativePacketPayload>
list of buffers with data to be sent to the server (the list can be empty, but buffers in the list should contain data).
toServer
)

Implements com.mysql.cj.protocol.AuthenticationPlugin.nextAuthenticationStep.

Process authentication handshake data from server and optionally produce data to be sent back to the server.

public boolean
requiresConfidentiality()

Implements com.mysql.cj.protocol.AuthenticationPlugin.requiresConfidentiality.

Does this plugin require the connection itself to be confidential (i.e. tls/ssl)...Highly recommended to return "true" for plugins that return the credentials in the clear.

public void
setAuthenticationParameters(String
user name
user
,
String
user password
password
)

Implements com.mysql.cj.protocol.AuthenticationPlugin.setAuthenticationParameters.

This method called from Connector/J before first nextAuthenticationStep call.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

openidConnectAuthCallbackback to summary
private OpenidConnectAuthenticationCallback openidConnectAuthCallback
openidConnectAuthenticationCallbackHandlerback to summary
private MysqlCallbackHandler openidConnectAuthenticationCallbackHandler
PLUGIN_NAMEback to summary
public static String PLUGIN_NAME
protocolback to summary
private Protocol<NativePacketPayload> protocol
userback to summary
private String user
usernameCallbackHandlerback to summary
private MysqlCallbackHandler usernameCallbackHandler

Constructor Detail

AuthenticationOpenidConnectClientback to summary
public AuthenticationOpenidConnectClient()

Method Detail

destroyback to summary
public void destroy()

Overrides default com.mysql.cj.protocol.AuthenticationPlugin.destroy.

Doc from com.mysql.cj.protocol.AuthenticationPlugin.destroy.

Called by the driver when this extension should release any resources it is holding and cleanup internally before the connection is closed.

Annotations
@Override
getPropertyStringValueback to summary
private String getPropertyStringValue(PropertyKey key)
getProtocolPluginNameback to summary
public String getProtocolPluginName()

Implements com.mysql.cj.protocol.AuthenticationPlugin.getProtocolPluginName.

Doc from com.mysql.cj.protocol.AuthenticationPlugin.getProtocolPluginName.

Returns the client-side name that the MySQL server uses on the wire for this plugin.

Returns:String

plugin name

Annotations
@Override
initback to summary
public void init(Protocol<NativePacketPayload> prot, MysqlCallbackHandler cbh)

Overrides default com.mysql.cj.protocol.AuthenticationPlugin.init.

Doc from com.mysql.cj.protocol.AuthenticationPlugin.init.

Initializes this plugin with a direct Protocol reference and a generic MysqlCallbackHandler that can be used to pass over information back to the authentication provider. For example an authentication plugin may accept null usernames and use that information to obtain them from some external source, such as the system login.

Parameters
prot:Protocol<NativePacketPayload>

the protocol instance

cbh:MysqlCallbackHandler

a callback handler to provide additional information to the authentication provider

Annotations
@Override
isReusableback to summary
public boolean isReusable()

Implements com.mysql.cj.protocol.AuthenticationPlugin.isReusable.

Returns:boolean

Doc from com.mysql.cj.protocol.AuthenticationPlugin.isReusable.

true if plugin instance may be reused, false otherwise

Annotations
@Override
nextAuthenticationStepback to summary
public boolean nextAuthenticationStep(NativePacketPayload fromServer, List<NativePacketPayload> toServer)

Implements com.mysql.cj.protocol.AuthenticationPlugin.nextAuthenticationStep.

Doc from com.mysql.cj.protocol.AuthenticationPlugin.nextAuthenticationStep.

Process authentication handshake data from server and optionally produce data to be sent back to the server. The driver will keep calling this method on each new server packet arrival until either an Exception is thrown (authentication failure, please use appropriate SQLStates) or the number of exchange iterations exceeded max limit or an OK packet is sent by server indicating that the connection has been approved. If, on return from this method, toServer is a non-empty list of buffers, then these buffers will be sent to the server in the same order and without any reads in between them. If toServer is an empty list, no data will be sent to server, driver immediately reads the next packet from server. In case of errors the method should throw Exception.

Parameters
fromServer:NativePacketPayload

a buffer containing handshake data payload from server (can be empty).

toServer:List<NativePacketPayload>

list of buffers with data to be sent to the server (the list can be empty, but buffers in the list should contain data).

Returns:boolean

return value is ignored.

Annotations
@Override
requiresConfidentialityback to summary
public boolean requiresConfidentiality()

Implements com.mysql.cj.protocol.AuthenticationPlugin.requiresConfidentiality.

Doc from com.mysql.cj.protocol.AuthenticationPlugin.requiresConfidentiality.

Does this plugin require the connection itself to be confidential (i.e. tls/ssl)...Highly recommended to return "true" for plugins that return the credentials in the clear.

Returns:boolean

true if secure connection is required

Annotations
@Override
setAuthenticationParametersback to summary
public void setAuthenticationParameters(String user, String password)

Implements com.mysql.cj.protocol.AuthenticationPlugin.setAuthenticationParameters.

Doc from com.mysql.cj.protocol.AuthenticationPlugin.setAuthenticationParameters.

This method called from Connector/J before first nextAuthenticationStep call. Values of user and password parameters are passed from those in NativeAuthenticationProvider#changeUser() or NativeAuthenticationProvider#connect(). Plugin should use these values instead of values from connection properties because parent method may be a changeUser call which saves user and password into connection only after successful handshake.

Parameters
user:String

user name

password:String

user password

Annotations
@Override