fix auth error while create table
This commit is contained in:
parent
fa145e68cf
commit
7a9990404a
|
@ -621,5 +621,7 @@ int32_t dndGetUserAuthFromMnode(SDnode *pDnode, char *user, char *spi, char *enc
|
||||||
|
|
||||||
int32_t code = mndRetriveAuth(pMnode, user, spi, encrypt, secret, ckey);
|
int32_t code = mndRetriveAuth(pMnode, user, spi, encrypt, secret, ckey);
|
||||||
dndReleaseMnode(pDnode, pMnode);
|
dndReleaseMnode(pDnode, pMnode);
|
||||||
|
|
||||||
|
dTrace("user:%s, retrieve auth spi:%d encrypt:%d", user, *spi, *encrypt);
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
|
@ -171,7 +171,7 @@ static int32_t dndInitClient(SDnode *pDnode) {
|
||||||
|
|
||||||
SRpcInit rpcInit;
|
SRpcInit rpcInit;
|
||||||
memset(&rpcInit, 0, sizeof(rpcInit));
|
memset(&rpcInit, 0, sizeof(rpcInit));
|
||||||
rpcInit.label = "DND-C";
|
rpcInit.label = "D-C";
|
||||||
rpcInit.numOfThreads = 1;
|
rpcInit.numOfThreads = 1;
|
||||||
rpcInit.cfp = dndProcessResponse;
|
rpcInit.cfp = dndProcessResponse;
|
||||||
rpcInit.sessions = 1024;
|
rpcInit.sessions = 1024;
|
||||||
|
@ -282,12 +282,12 @@ static int32_t dndRetrieveUserAuthInfo(void *parent, char *user, char *spi, char
|
||||||
SDnode *pDnode = parent;
|
SDnode *pDnode = parent;
|
||||||
|
|
||||||
if (dndAuthInternalReq(parent, user, spi, encrypt, secret, ckey) == 0) {
|
if (dndAuthInternalReq(parent, user, spi, encrypt, secret, ckey) == 0) {
|
||||||
// dTrace("get internal auth success");
|
dTrace("user:%s, get auth from internal mnode, spi:%d encrypt:%d", user, *spi, *encrypt);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dndGetUserAuthFromMnode(pDnode, user, spi, encrypt, secret, ckey) == 0) {
|
if (dndGetUserAuthFromMnode(pDnode, user, spi, encrypt, secret, ckey) == 0) {
|
||||||
// dTrace("get auth from internal mnode");
|
dTrace("user:%s, get auth from internal mnode, spi:%d encrypt:%d", user, *spi, *encrypt);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -296,13 +296,12 @@ static int32_t dndRetrieveUserAuthInfo(void *parent, char *user, char *spi, char
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// dDebug("user:%s, send auth msg to other mnodes", user);
|
|
||||||
|
|
||||||
SAuthReq *pReq = rpcMallocCont(sizeof(SAuthReq));
|
SAuthReq *pReq = rpcMallocCont(sizeof(SAuthReq));
|
||||||
tstrncpy(pReq->user, user, TSDB_USER_LEN);
|
tstrncpy(pReq->user, user, TSDB_USER_LEN);
|
||||||
|
|
||||||
SRpcMsg rpcMsg = {.pCont = pReq, .contLen = sizeof(SAuthReq), .msgType = TDMT_MND_AUTH};
|
SRpcMsg rpcMsg = {.pCont = pReq, .contLen = sizeof(SAuthReq), .msgType = TDMT_MND_AUTH};
|
||||||
SRpcMsg rpcRsp = {0};
|
SRpcMsg rpcRsp = {0};
|
||||||
|
dTrace("user:%s, send user auth req to other mnodes, spi:%d encrypt:%d", user, pReq->spi, pReq->encrypt);
|
||||||
dndSendMsgToMnodeRecv(pDnode, &rpcMsg, &rpcRsp);
|
dndSendMsgToMnodeRecv(pDnode, &rpcMsg, &rpcRsp);
|
||||||
|
|
||||||
if (rpcRsp.code != 0) {
|
if (rpcRsp.code != 0) {
|
||||||
|
@ -314,7 +313,7 @@ static int32_t dndRetrieveUserAuthInfo(void *parent, char *user, char *spi, char
|
||||||
memcpy(ckey, pRsp->ckey, TSDB_PASSWORD_LEN);
|
memcpy(ckey, pRsp->ckey, TSDB_PASSWORD_LEN);
|
||||||
*spi = pRsp->spi;
|
*spi = pRsp->spi;
|
||||||
*encrypt = pRsp->encrypt;
|
*encrypt = pRsp->encrypt;
|
||||||
dDebug("user:%s, success to get user auth from other mnodes", user);
|
dTrace("user:%s, success to get user auth from other mnodes, spi:%d encrypt:%d", user, pRsp->spi, pRsp->encrypt);
|
||||||
}
|
}
|
||||||
|
|
||||||
rpcFreeCont(rpcRsp.pCont);
|
rpcFreeCont(rpcRsp.pCont);
|
||||||
|
@ -333,7 +332,7 @@ static int32_t dndInitServer(SDnode *pDnode) {
|
||||||
SRpcInit rpcInit;
|
SRpcInit rpcInit;
|
||||||
memset(&rpcInit, 0, sizeof(rpcInit));
|
memset(&rpcInit, 0, sizeof(rpcInit));
|
||||||
rpcInit.localPort = pDnode->cfg.serverPort;
|
rpcInit.localPort = pDnode->cfg.serverPort;
|
||||||
rpcInit.label = "DND-S";
|
rpcInit.label = "D-S";
|
||||||
rpcInit.numOfThreads = numOfThreads;
|
rpcInit.numOfThreads = numOfThreads;
|
||||||
rpcInit.cfp = dndProcessRequest;
|
rpcInit.cfp = dndProcessRequest;
|
||||||
rpcInit.sessions = pDnode->cfg.maxShellConns;
|
rpcInit.sessions = pDnode->cfg.maxShellConns;
|
||||||
|
|
|
@ -28,6 +28,14 @@ void mndCleanupAuth(SMnode *pMnode) {}
|
||||||
int32_t mndRetriveAuth(SMnode *pMnode, char *user, char *spi, char *encrypt, char *secret, char *ckey) { return 0; }
|
int32_t mndRetriveAuth(SMnode *pMnode, char *user, char *spi, char *encrypt, char *secret, char *ckey) { return 0; }
|
||||||
|
|
||||||
static int32_t mndProcessAuthReq(SMnodeMsg *pReq) {
|
static int32_t mndProcessAuthReq(SMnodeMsg *pReq) {
|
||||||
mDebug("user:%s, auth req is processed", pReq->user);
|
SAuthReq *pAuth = pReq->rpcMsg.pCont;
|
||||||
return 0;
|
|
||||||
|
int32_t contLen = sizeof(SAuthRsp);
|
||||||
|
SAuthRsp *pRsp = rpcMallocCont(contLen);
|
||||||
|
pReq->pCont = pRsp;
|
||||||
|
pReq->contLen = contLen;
|
||||||
|
|
||||||
|
int32_t code = mndRetriveAuth(pReq->pMnode, pAuth->user, &pRsp->spi, &pRsp->encrypt, pRsp->secret, pRsp->ckey);
|
||||||
|
mTrace("user:%s, auth req received, spi:%d encrypt:%d ruser:%s", pReq->user, pAuth->spi, pAuth->encrypt, pAuth->user);
|
||||||
|
return code;
|
||||||
}
|
}
|
|
@ -96,7 +96,7 @@ int vnodeApplyWMsg(SVnode *pVnode, SRpcMsg *pMsg, SRpcMsg **pRsp) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
vInfo("vgId:%d process create %"PRIzu" tables", pVnode->vgId, taosArrayGetSize(vCreateTbBatchReq.pArray));
|
vDebug("vgId:%d process create %"PRIzu" tables", pVnode->vgId, taosArrayGetSize(vCreateTbBatchReq.pArray));
|
||||||
taosArrayDestroy(vCreateTbBatchReq.pArray);
|
taosArrayDestroy(vCreateTbBatchReq.pArray);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -752,8 +752,8 @@ static SRpcConn *rpcAllocateServerConn(SRpcInfo *pRpc, SRecvInfo *pRecv) {
|
||||||
}
|
}
|
||||||
|
|
||||||
taosHashPut(pRpc->hash, hashstr, size, (char *)&pConn, POINTER_BYTES);
|
taosHashPut(pRpc->hash, hashstr, size, (char *)&pConn, POINTER_BYTES);
|
||||||
tDebug("%s %p server connection is allocated, uid:0x%x sid:%d key:%s", pRpc->label, pConn, pConn->linkUid, sid,
|
tDebug("%s %p server connection is allocated, uid:0x%x sid:%d key:%s spi:%d", pRpc->label, pConn, pConn->linkUid, sid,
|
||||||
hashstr);
|
hashstr, pConn->spi);
|
||||||
}
|
}
|
||||||
|
|
||||||
return pConn;
|
return pConn;
|
||||||
|
@ -1612,7 +1612,7 @@ static int rpcCheckAuthentication(SRpcConn *pConn, char *msg, int msgLen) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
tDebug("%s, auth spi:%d not matched with received:%d", pConn->info, pConn->spi, pHead->spi);
|
tError("%s, auth spi:%d not matched with received:%d %p", pConn->info, pConn->spi, pHead->spi, pConn);
|
||||||
code = pHead->spi ? TSDB_CODE_RPC_AUTH_FAILURE : TSDB_CODE_RPC_AUTH_REQUIRED;
|
code = pHead->spi ? TSDB_CODE_RPC_AUTH_FAILURE : TSDB_CODE_RPC_AUTH_REQUIRED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue