blob: f24048bdec98e4517019268d4ac71a5f9ba4597c [file] [log] [blame]
// SPDX-License-Identifier: LGPL-2.1-or-later
// Copyright (c) 2012-2014 Monty Program Ab
// Copyright (c) 2015-2021 MariaDB Corporation Ab
package org.mariadb.jdbc.plugin.authentication.addon;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import org.mariadb.jdbc.Configuration;
import org.mariadb.jdbc.client.Context;
import org.mariadb.jdbc.client.ReadableByteBuf;
import org.mariadb.jdbc.client.socket.Reader;
import org.mariadb.jdbc.client.socket.Writer;
import org.mariadb.jdbc.plugin.AuthenticationPlugin;
/** Clear password plugin. */
public class ClearPasswordPlugin implements AuthenticationPlugin {
/** plugin name */
public static final String TYPE = "mysql_clear_password";
private String authenticationData;
@Override
public String type() {
return TYPE;
}
public void initialize(String authenticationData, byte[] authData, Configuration conf) {
this.authenticationData = authenticationData;
}
/**
* Send password in clear text to server.
*
* @param out out stream
* @param in in stream
* @param context context
* @return response packet
* @throws IOException if socket error
*/
public ReadableByteBuf process(Writer out, Reader in, Context context) throws IOException {
if (authenticationData == null) {
out.writeEmptyPacket();
} else {
byte[] bytePwd = authenticationData.getBytes(StandardCharsets.UTF_8);
out.writeBytes(bytePwd);
out.writeByte(0);
out.flush();
}
return in.readReusablePacket();
}
}