Hi Caleb,

JDBC Thin Client doesn't supports authorization for now.

On Wed, Nov 15, 2017 at 6:54 PM, calebs <[email protected]> wrote:

> Hi Valdimir,
>
> There are at least two problems that I've found here. The first is the
> query
> execution engine as you have just pointed out. The second one is the JDBC
> thin driver itself.
>
> In JdbcThinTcpIo.handshake, it doesn't pass in user credentials (i.e., user
> & password) as shown below, so how can the server identify the user during
> the hand shaking?
>
>     /**
>      * Used for versions: 2.1.5 and 2.3.0. The protocol version is changed
> but handshake format isn't changed.
>      *
>      * @param ver JDBC client version.
>      * @throws IOException On IO error.
>      * @throws SQLException On connection reject.
>      */
>     public void handshake(ClientListenerProtocolVersion ver) throws
> IOException, SQLException {
>         BinaryWriterExImpl writer = new BinaryWriterExImpl(null, new
> BinaryHeapOutputStream(HANDSHAKE_MSG_SIZE),
>             null, null);
>
>         writer.writeByte((byte) ClientListenerRequest.HANDSHAKE);
>
>         writer.writeShort(ver.major());
>         writer.writeShort(ver.minor());
>         writer.writeShort(ver.maintenance());
>
>         writer.writeByte(ClientListenerNioListener.JDBC_CLIENT);
>
>         writer.writeBoolean(distributedJoins);
>         writer.writeBoolean(enforceJoinOrder);
>         writer.writeBoolean(collocated);
>         writer.writeBoolean(replicatedOnly);
>         writer.writeBoolean(autoCloseServerCursor);
>         writer.writeBoolean(lazy);
>         writer.writeBoolean(skipReducerOnUpdate);
>
>         send(writer.array());
>
>         BinaryReaderExImpl reader = new BinaryReaderExImpl(null, new
> BinaryHeapInputStream(read()),
>             null, null, false);
>
>         boolean accepted = reader.readBoolean();
>
>         if (accepted) {
>             if (reader.available() > 0) {
>                 byte maj = reader.readByte();
>                 byte min = reader.readByte();
>                 byte maintenance = reader.readByte();
>
>                 String stage = reader.readString();
>
>                 long ts = reader.readLong();
>                 byte[] hash = reader.readByteArray();
>
>                 igniteVer = new IgniteProductVersion(maj, min, maintenance,
> stage, ts, hash);
>             }
>             else
>                 igniteVer = new IgniteProductVersion((byte)2, (byte)0,
> (byte)0, "Unknown", 0L, null);
>         }
>         else {
>             short maj = reader.readShort();
>             short min = reader.readShort();
>             short maintenance = reader.readShort();
>
>             String err = reader.readString();
>
>             ClientListenerProtocolVersion srvProtocolVer =
> ClientListenerProtocolVersion.create(maj, min, maintenance);
>
>             if (VER_2_1_5.equals(srvProtocolVer))
>                 handshake(VER_2_1_5);
>             else if (VER_2_1_0.equals(srvProtocolVer))
>                 handshake_2_1_0();
>             else {
>                 throw new SQLException("Handshake failed
> [driverProtocolVer=" + CURRENT_VER +
>                     ", remoteNodeProtocolVer=" + srvProtocolVer + ", err="
> +
> err + ']',
>                     SqlStateCode.CONNECTION_REJECTED);
>             }
>         }
>     }
>
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>



-- 
Best regards,
Andrey V. Mashenkov

Reply via email to