Skip to content

Commit 258809b

Browse files
committed
added:get time info for http user
delete:get time for tcp protocol
1 parent 9fac139 commit 258809b

File tree

3 files changed

+64
-16
lines changed

3 files changed

+64
-16
lines changed

XEngine_Source/XAuth_Protocol.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
#define ERROR_AUTHORIZE_PROTOCOL_PERMISSION 0x116 //用户权限错误
4545
#define ERROR_AUTHORIZE_PROTOCOL_EXPIRED 0x117 //已经过期
4646
#define ERROR_AUTHORIZE_PROTOCOL_CDKEY 0x118 //CDKEY错误
47+
#define ERROR_AUTHORIZE_PROTOCOL_PARSE 0x119 //协议解析错误
4748
//////////////////////////////////////////////////////////////////////////
4849
#define ERROR_AUTHORIZE_PROTOCOL_SERVER 0x201 //服务端内部错误
4950
#define ERROR_AUTHORIZE_PROTOCOL_LIMIT 0x202 //服务端内部限制,数据过大后者过小

XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_User.cpp

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ bool XEngine_AuthorizeHTTP_User(XNETHANDLE xhToken, LPCXSTR lpszClientAddr, LPCX
88
LPCXSTR lpszAPIRegister = _X("register");
99
LPCXSTR lpszAPIPay = _X("pay");
1010
LPCXSTR lpszAPIPass = _X("pass");
11+
LPCXSTR lpszAPITime = _X("time");
1112
LPCXSTR lpszAPITry = _X("try");
1213

1314
memset(tszSDBuffer, '\0', sizeof(tszSDBuffer));
@@ -297,6 +298,66 @@ bool XEngine_AuthorizeHTTP_User(XNETHANDLE xhToken, LPCXSTR lpszClientAddr, LPCX
297298
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
298299
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,用户名:%s,找回重置密码成功"), lpszClientAddr, st_UserInfo.tszUserName);
299300
}
301+
else if (0 == _tcsxnicmp(lpszAPIName, lpszAPITime, _tcsxlen(lpszAPIName)))
302+
{
303+
if (!st_FunSwitch.bSwitchTime)
304+
{
305+
Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_CLOSED, "the function is closed");
306+
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
307+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,获取用户时间信息失败,获取用户时间功能已经被服务器关闭!"), lpszClientAddr);
308+
return false;
309+
}
310+
XENGINE_PROTOCOL_USERAUTHEX st_UserAuth = {};
311+
if (!Protocol_Parse_HttpParseAuth(lpszMsgBuffer, nMsgLen, &st_UserAuth))
312+
{
313+
Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_PARSE, "protocol parse is incorrect");
314+
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
315+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,获取用户时间信息失败,协议错误:%s"), lpszClientAddr, lpszMsgBuffer);
316+
return false;
317+
}
318+
int nListCount = 0;
319+
AUTHREG_USERTABLE st_UserTable = {};
320+
AUTHSESSION_NETCLIENT** ppSt_ListClient;
321+
if (!Session_Authorize_GetClient(&ppSt_ListClient, &nListCount, st_UserAuth.tszUserName))
322+
{
323+
//没在线,获取数据库信息
324+
bool bSuccess = false;
325+
if (0 == st_AuthConfig.st_XSql.nDBType)
326+
{
327+
bSuccess = DBModule_SQLite_UserQuery(st_UserAuth.tszUserName, &st_UserTable);
328+
}
329+
else
330+
{
331+
bSuccess = DBModule_MySQL_UserQuery(st_UserAuth.tszUserName, &st_UserTable);
332+
}
333+
if (!bSuccess)
334+
{
335+
Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_NOTFOUND, "user not found");
336+
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
337+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户名:%s,获取时间失败,无法继续,错误:%lX"), lpszClientAddr, st_UserAuth.tszUserName, DBModule_GetLastError());
338+
return false;
339+
}
340+
nListCount = 1;
341+
BaseLib_Memory_Malloc((XPPPMEM)&ppSt_ListClient, 1, sizeof(AUTHSESSION_NETCLIENT));
342+
_tcsxcpy((*ppSt_ListClient)[0].st_UserTable.st_UserInfo.tszUserName, st_UserTable.st_UserInfo.tszUserName);
343+
_tcsxcpy((*ppSt_ListClient)[0].tszLeftTime, st_UserTable.tszLeftTime);
344+
(*ppSt_ListClient)[0].nLeftTime = _ttxoll(st_UserTable.tszLeftTime);
345+
(*ppSt_ListClient)[0].st_UserTable.enDeviceType = st_UserTable.enDeviceType;
346+
(*ppSt_ListClient)[0].st_UserTable.enSerialType = st_UserTable.enSerialType;
347+
}
348+
//安全验证判断
349+
if ((0 != _tcsxncmp(st_UserAuth.tszUserName, st_UserTable.st_UserInfo.tszUserName, _tcsxlen(st_UserTable.st_UserInfo.tszUserName))) || (0 == _tcsxncmp(st_UserAuth.tszUserPass, st_UserTable.st_UserInfo.tszUserPass, _tcsxlen(st_UserTable.st_UserInfo.tszUserPass))))
350+
{
351+
Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_NOTMATCH, "user information is incorrent");
352+
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
353+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户名:%s,获取时间失败,验证信息失败"), lpszClientAddr, st_UserAuth.tszUserName);
354+
return false;
355+
}
356+
Protocol_Packet_UserTime(tszSDBuffer, &nSDLen, &ppSt_ListClient, nListCount);
357+
BaseLib_Memory_Free((XPPPMEM)&ppSt_ListClient, nListCount);
358+
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
359+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,用户名:%s,获取时间成功"), lpszClientAddr, st_UserTable.st_UserInfo.tszUserName);
360+
}
300361
else if (0 == _tcsxnicmp(lpszAPIName, lpszAPITry, _tcsxlen(lpszAPIName)))
301362
{
302363
AUTHREG_TEMPVER st_VERTemp;

XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_TCPTask.cpp

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ bool XEngine_Client_TCPTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int n
181181
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("客户端:%s,用户名:%s,登录失败,用户名不存在"), lpszClientAddr, st_AuthProtocol.tszUserName);
182182
return false;
183183
}
184-
if ((_tcsxlen(st_AuthProtocol.tszUserPass) != _tcsxlen(st_UserTable.st_UserInfo.tszUserPass)) || (0 != _tcsxncmp(st_AuthProtocol.tszUserPass, st_UserTable.st_UserInfo.tszUserPass, _tcsxlen(st_AuthProtocol.tszUserPass))))
184+
if (0 != _tcsxncmp(st_AuthProtocol.tszUserPass, st_UserTable.st_UserInfo.tszUserPass, _tcsxlen(st_UserTable.st_UserInfo.tszUserPass)))
185185
{
186186
pSt_ProtocolHdr->wReserve = ERROR_AUTHORIZE_PROTOCOL_PASS;
187187
Protocol_Packet_HDRComm(tszSDBuffer, &nSDLen, pSt_ProtocolHdr, nNetType);
@@ -220,7 +220,7 @@ bool XEngine_Client_TCPTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int n
220220
{
221221
bSuccess = DBModule_MySQL_UserQuery(st_AuthProtocol.tszUserName, &st_UserTable, false);
222222
}
223-
if ((_tcsxlen(st_AuthProtocol.tszUserName) != _tcsxlen(st_UserTable.tszHardCode)) || (0 != _tcsxncmp(st_AuthProtocol.tszUserName, st_UserTable.tszHardCode, _tcsxlen(st_AuthProtocol.tszUserName))))
223+
if (0 != _tcsxncmp(st_AuthProtocol.tszUserName, st_UserTable.tszHardCode, _tcsxlen(st_UserTable.tszHardCode)))
224224
{
225225
pSt_ProtocolHdr->wReserve = ERROR_AUTHORIZE_PROTOCOL_HARDCODE;
226226
Protocol_Packet_HDRComm(tszSDBuffer, &nSDLen, pSt_ProtocolHdr, nNetType);
@@ -412,20 +412,6 @@ bool XEngine_Client_TCPTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int n
412412
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, nNetType);
413413
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("客户端:%s,用户名:%s,登录成功,注册类型:%s,剩余时间:%s"), lpszClientAddr, st_AuthProtocol.tszUserName, lpszXSerialType[st_UserTable.enSerialType], st_UserTable.tszLeftTime);
414414
}
415-
else if (XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_AUTH_REQGETTIME == pSt_ProtocolHdr->unOperatorCode)
416-
{
417-
AUTHSESSION_NETCLIENT st_AuthClient = {};
418-
if (!Session_Authorize_GetUserForAddr(lpszClientAddr, &st_AuthClient))
419-
{
420-
pSt_ProtocolHdr->wReserve = ERROR_AUTHORIZE_PROTOCOL_NOTFOUND;
421-
Protocol_Packet_HDRComm(tszSDBuffer, &nSDLen, pSt_ProtocolHdr, nNetType);
422-
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, nNetType);
423-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("客户端:%s,查找用户失败,没有找到,错误:%lX"), lpszClientAddr, Session_GetLastError());
424-
return false;
425-
}
426-
XEngine_Client_TaskSend(lpszClientAddr, (LPCXSTR)&st_AuthClient, sizeof(AUTHSESSION_NETCLIENT), nNetType);
427-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,用户名:%s,获取时间成功"), lpszClientAddr, st_AuthClient.st_UserTable.st_UserInfo.tszUserName);
428-
}
429415
else
430416
{
431417
Protocol_Packet_HDRComm(tszSDBuffer, &nSDLen, pSt_ProtocolHdr, nNetType);

0 commit comments

Comments
 (0)