I created a plugin that implements GridSecurityProcessor because our implementation requries very specialized authorization; but now, whenever I try to run a SQL SELECT query on Ignite over JDBC, `AuthorizationProcessor.authenticate(..)` is run many times, like this:
``` Running AuthorizationPluginProvider.createCacheProvider(..) Running AuthorizationPluginProvider.createComponent(..) Running AuthorizationPluginProvider.createCacheProvider(..) Running AuthorizationPluginProvider.createComponent(..) // Initial setup completed Running AuthorizationProcessor.enabled() Running AuthorizationProcessor.enabled() Running AuthorizationProcessor.authenticate(..) Username is: ignite Running AuthorizationProcessor.enabled() Running AuthorizationProcessor.authenticate(..) Username is: ignite Running AuthorizationProcessor.enabled() Running AuthorizationProcessor.authenticate(..) Username is: ignite Running AuthorizationProcessor.enabled() Running AuthorizationProcessor.authenticate(..) Username is: ignite Running AuthorizationProcessor.enabled() Running AuthorizationProcessor.authenticate(..) Username is: ignite Running AuthorizationProcessor.enabled() Running AuthorizationProcessor.authenticate(..) Username is: ignite Running AuthorizationProcessor.enabled() Running AuthorizationProcessor.authenticate(..) Username is: ignite Running AuthorizationProcessor.enabled() Running AuthorizationProcessor.authenticate(..) Username is: ignite Running AuthorizationProcessor.enabled() Running AuthorizationProcessor.authenticate(..) Username is: ignite Running AuthorizationProcessor.enabled() Running AuthorizationProcessor.authenticate(..) Username is: ignite Running AuthorizationProcessor.enabled() Running AuthorizationProcessor.authenticate(..) Username is: ignite Running AuthorizationProcessor.enabled() Running AuthorizationProcessor.authenticate(..) Username is: ignite Running AuthorizationProcessor.enabled() Running AuthorizationProcessor.authenticate(..) Username is: ignite Running AuthorizationProcessor.enabled() Running AuthorizationProcessor.authenticate(..) Username is: ignite Running AuthorizationProcessor.enabled() Running AuthorizationProcessor.authenticate(..) Username is: ignite Running AuthorizationProcessor.enabled() Running AuthorizationProcessor.authenticate(..) Username is: ignite Running AuthorizationProcessor.enabled() Running AuthorizationProcessor.authenticate(..) Username is: ignite Running AuthorizationProcessor.enabled() Running AuthorizationProcessor.authenticate(..) Username is: ignite ``` and then my JDBC client (using DBeaver as my client with a JDBC Ignite driver) gives me this error: ```org.jkiss.dbeaver.model.sql.DBSQLException: SQL Error [08006]: Failed to communicate with Ignite cluster. at org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCStatementImpl.executeStatement(JDBCStatementImpl.java:134) at org.jkiss.dbeaver.ui.editors.sql.execute.SQLQueryJob.executeStatement(SQLQueryJob.java:488) at org.jkiss.dbeaver.ui.editors.sql.execute.SQLQueryJob.lambda$0(SQLQueryJob.java:425) at org.jkiss.dbeaver.model.exec.DBExecUtils.tryExecuteRecover(DBExecUtils.java:170) at org.jkiss.dbeaver.ui.editors.sql.execute.SQLQueryJob.executeSingleQuery(SQLQueryJob.java:417) at org.jkiss.dbeaver.ui.editors.sql.execute.SQLQueryJob.extractData(SQLQueryJob.java:775) at org.jkiss.dbeaver.ui.editors.sql.SQLEditor$QueryResultsContainer.readData(SQLEditor.java:2914) at org.jkiss.dbeaver.ui.controls.resultset.ResultSetJobDataRead.lambda$0(ResultSetJobDataRead.java:111) at org.jkiss.dbeaver.model.exec.DBExecUtils.tryExecuteRecover(DBExecUtils.java:170) at org.jkiss.dbeaver.ui.controls.resultset.ResultSetJobDataRead.run(ResultSetJobDataRead.java:109) at org.jkiss.dbeaver.ui.controls.resultset.ResultSetViewer$17.run(ResultSetViewer.java:3423) at org.jkiss.dbeaver.model.runtime.AbstractJob.run(AbstractJob.java:103) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63) Caused by: java.sql.SQLException: Failed to communicate with Ignite cluster. at org.apache.ignite.internal.jdbc.thin.JdbcThinConnection.sendRequest(JdbcThinConnection.java:916) at org.apache.ignite.internal.jdbc.thin.JdbcThinStatement.execute0(JdbcThinStatement.java:231) at org.apache.ignite.internal.jdbc.thin.JdbcThinStatement.execute(JdbcThinStatement.java:559) at org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCStatementImpl.execute(JDBCStatementImpl.java:338) at org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCStatementImpl.executeStatement(JDBCStatementImpl.java:131) ... 12 more Caused by: class org.apache.ignite.binary.BinaryObjectException: Not enough data to read the value [position=20, requiredBytes=1, remainingBytes=0] at org.apache.ignite.internal.binary.streams.BinaryAbstractInputStream.ensureEnoughData(BinaryAbstractInputStream.java:305) at org.apache.ignite.internal.binary.streams.BinaryAbstractInputStream.readByte(BinaryAbstractInputStream.java:35) at org.apache.ignite.internal.binary.streams.BinaryAbstractInputStream.readBoolean(BinaryAbstractInputStream.java:53) at org.apache.ignite.internal.binary.BinaryReaderExImpl.readBoolean(BinaryReaderExImpl.java:548) at org.apache.ignite.internal.processors.odbc.jdbc.JdbcQueryExecuteResult.readBinary(JdbcQueryExecuteResult.java:167) at org.apache.ignite.internal.processors.odbc.jdbc.JdbcResult.readResult(JdbcResult.java:207) at org.apache.ignite.internal.processors.odbc.jdbc.JdbcResponse.readBinary(JdbcResponse.java:153) at org.apache.ignite.internal.jdbc.thin.JdbcThinTcpIo.readResponse(JdbcThinTcpIo.java:451) at org.apache.ignite.internal.jdbc.thin.JdbcThinTcpIo.sendRequest(JdbcThinTcpIo.java:423) at org.apache.ignite.internal.jdbc.thin.JdbcThinConnection.sendRequest(JdbcThinConnection.java:890) ... 16 more ``` What might cause this? Devin G. Bost
