Package org.mariadb.jdbc.plugin

## Interface AuthenticationPlugin

All Known Implementing Classes:
  `CachingSha2PasswordPlugin`, `ClearPasswordPlugin`, `Ed25519PasswordPlugin`, `NativePasswordPlugin`, `SendGssApiAuthPacket`, `SendPamAuthPacket`

    public interface AuthenticationPlugin

Authentication plugin descriptor

### Method Summary

All Methods Instance Methods Abstract Methods Default Methods
`default byte[]` `hash​(Credential credential)` Return Hash
`void` `initialize​(String authenticationData, byte[] seed, Configuration conf, HostAddress hostAddress)` Plugin initialization.
`default boolean` `isMitMProof()` Can plugins is MitM-proof, permitting returning HASH
`org.mariadb.jdbc.client.ReadableByteBuf` `process​(Writer encoder, Reader decoder, org.mariadb.jdbc.client.Context context)` Process plugin authentication.
`default boolean` `requireSsl()` Authentication plugin required SSL to be used
`String` `type()` Authentication plugin type.

### Method Detail

#### type

    String type()

Authentication plugin type.

Returns:
  authentication plugin type. ex: mysql_native_password

#### initialize

    void initialize​(String authenticationData,
                    byte[] seed,
                    Configuration conf,
                    HostAddress hostAddress)

Plugin initialization.

Parameters:
  `authenticationData` - authentication data (password/token)
  `seed` - server provided seed
  `conf` - Connection options
  `hostAddress` - host address

#### process

    org.mariadb.jdbc.client.ReadableByteBuf process​(Writer encoder,
                                                    Reader decoder,
                                                    org.mariadb.jdbc.client.Context context)
                                             throws IOException,
                                                    SQLException

Process plugin authentication.

Parameters:
  `encoder` - out stream
  `decoder` - in stream
  `context` - connection context
Returns:
  response packet
Throws:
  `IOException` - if socket error
  `SQLException` - if plugin exception

#### isMitMProof

    default boolean isMitMProof()

Can plugins is MitM-proof, permitting returning HASH

Returns:
  true if permitted

#### hash

    default byte[] hash​(Credential credential)

Return Hash

Parameters:
  `credential` - credential
Returns:
  hash

#### requireSsl

    default boolean requireSsl()

Authentication plugin required SSL to be used

Returns:
  true if SSL is required