I was very happy to see that the new 2.5 version of Ignite supports
authentication and I have tested this successfully with the default ignite
user. However, I haven't had much success beyond that. If I try to change
the password on the default ignite user (ALTER USER ignite WITH PASSWORD
'test';) I get the following error:
[19:09:24,539][SEVERE][client-connector-#95%grid%][JdbcRequestHandler]
Failed to execute SQL query [reqId=0, req=JdbcQueryExecuteRequest
[schemaName=PUBLIC, pageSize=1024, maxRows=0, sqlQry=ALTER USER ignite WITH
PASSWORD 'test', args=[], stmtType=ANY_STATEMENT_TYPE]]
class org.apache.ignite.internal.processors.query.IgniteSQLException:
Operation failed [nodeId=99cb1492-e7b1-4d1e-9cf5-111f21cd86a1,
opId=4901a57d361-acc1d895-072c-4e15-b593-434c52951f7e, err=class
org.apache.ignite.internal.processors.authentication.UserManagementException:
User doesn't exist [userName=IGNITE]]
at
org.apache.ignite.internal.processors.query.h2.ddl.DdlStatementsProcessor.runDdlStatement(DdlStatementsProcessor.java:247)
at
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.tryQueryDistributedSqlFieldsNative(IgniteH2Indexing.java:1572)
at
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.querySqlFields(IgniteH2Indexing.java:1602)
at
org.apache.ignite.internal.processors.query.GridQueryProcessor$4.applyx(GridQueryProcessor.java:2035)
at
org.apache.ignite.internal.processors.query.GridQueryProcessor$4.applyx(GridQueryProcessor.java:2030)
at
org.apache.ignite.internal.util.lang.IgniteOutClosureX.apply(IgniteOutClosureX.java:36)
at
org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuery(GridQueryProcessor.java:2578)
at
org.apache.ignite.internal.processors.query.GridQueryProcessor.querySqlFields(GridQueryProcessor.java:2044)
at
org.apache.ignite.internal.processors.odbc.jdbc.JdbcRequestHandler.executeQuery(JdbcRequestHandler.java:456)
at
org.apache.ignite.internal.processors.odbc.jdbc.JdbcRequestHandler.handle(JdbcRequestHandler.java:203)
at
org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:160)
at
org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:44)
at
org.apache.ignite.internal.util.nio.GridNioFilterChain$TailFilter.onMessageReceived(GridNioFilterChain.java:279)
at
org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109)
at
org.apache.ignite.internal.util.nio.GridNioAsyncNotifyFilter$3.body(GridNioAsyncNotifyFilter.java:97)
at
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
at
org.apache.ignite.internal.util.worker.GridWorkerPool$1.run(GridWorkerPool.java:70)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: class
org.apache.ignite.internal.processors.authentication.UserManagementException:
Operation failed [nodeId=99cb1492-e7b1-4d1e-9cf5-111f21cd86a1,
opId=4901a57d361-acc1d895-072c-4e15-b593-434c52951f7e, err=class
org.apache.ignite.internal.processors.authentication.UserManagementException:
User doesn't exist [userName=IGNITE]]
at
org.apache.ignite.internal.processors.authentication.IgniteAuthenticationProcessor$UserOperationFinishFuture.onOperationFailOnNode(IgniteAuthenticationProcessor.java:1182)
at
org.apache.ignite.internal.processors.authentication.IgniteAuthenticationProcessor.onFinishMessage(IgniteAuthenticationProcessor.java:802)
at
org.apache.ignite.internal.processors.authentication.IgniteAuthenticationProcessor.access$700(IgniteAuthenticationProcessor.java:84)
at
org.apache.ignite.internal.processors.authentication.IgniteAuthenticationProcessor$2.onMessage(IgniteAuthenticationProcessor.java:207)
at
org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1556)
at
org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1184)
at
org.apache.ignite.internal.managers.communication.GridIoManager.send(GridIoManager.java:1632)
at
org.apache.ignite.internal.managers.communication.GridIoManager.sendToGridTopic(GridIoManager.java:1715)
at
org.apache.ignite.internal.processors.authentication.IgniteAuthenticationProcessor.sendFinish(IgniteAuthenticationProcessor.java:959)
at
org.apache.ignite.internal.processors.authentication.IgniteAuthenticationProcessor.access$3900(IgniteAuthenticationProcessor.java:84)
at
org.apache.ignite.internal.processors.authentication.IgniteAuthenticationProcessor$UserOperationWorker.body(IgniteAuthenticationProcessor.java:1301)