Skip to content

Commit 07eac2a

Browse files
committed
modify:adjust http authorize method.now it use token instead with get
modify:just post verification
1 parent 40ee635 commit 07eac2a

File tree

9 files changed

+332
-135
lines changed

9 files changed

+332
-135
lines changed

XEngine_Source/MQCore_ProtocolModule/MQCore_ProtocolModule.def

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,7 @@ EXPORTS
1818
ProtocolModule_Packet_UNReadDelete
1919

2020
ProtocolModule_Parse_Websocket
21-
ProtocolModule_Parse_Register
21+
ProtocolModule_Parse_Register
22+
ProtocolModule_Parse_Token
23+
ProtocolModule_Parse_Type
24+
ProtocolModule_Parse_Name

XEngine_Source/MQCore_ProtocolModule/ProtocolModule_Parse/ProtocolModule_Parse.cpp

Lines changed: 157 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -301,5 +301,162 @@ bool CProtocolModule_Parse::ProtocolModule_Parse_Register(LPCXSTR lpszMsgBuffer,
301301
{
302302
pSt_UserInfo->nUserState = st_JsonProtocol["nUserState"].asInt();
303303
}
304+
return true;
305+
}
306+
/********************************************************************
307+
函数名称:ProtocolModule_Parse_Token
308+
函数功能:解析TOKEN
309+
参数.一:lpszMsgBuffer
310+
In/Out:In
311+
类型:常量字符指针
312+
可空:N
313+
意思:输入要解析的缓冲区
314+
参数.二:nMsgLen
315+
In/Out:In
316+
类型:整数型
317+
可空:N
318+
意思:输入要解析的大小
319+
参数.三:pxhToken
320+
In/Out:Out
321+
类型:句柄
322+
可空:N
323+
意思:输出解析到的TOKEN值
324+
返回值
325+
类型:逻辑型
326+
意思:是否成功
327+
备注:
328+
*********************************************************************/
329+
bool CProtocolModule_Parse::ProtocolModule_Parse_Token(LPCXSTR lpszMsgBuffer, int nMsgLen, XNETHANDLE* pxhToken)
330+
{
331+
Protocol_IsErrorOccur = false;
332+
333+
if ((NULL == lpszMsgBuffer) || (NULL == pxhToken))
334+
{
335+
Protocol_IsErrorOccur = true;
336+
Protocol_dwErrorCode = ERROR_MQ_MODULE_PROTOCOL_PARAMENT;
337+
return false;
338+
}
339+
Json::Value st_JsonRoot;
340+
JSONCPP_STRING st_JsonError;
341+
Json::CharReaderBuilder st_ReaderBuilder;
342+
343+
std::unique_ptr<Json::CharReader> const pSt_JsonReader(st_ReaderBuilder.newCharReader());
344+
if (!pSt_JsonReader->parse(lpszMsgBuffer, lpszMsgBuffer + nMsgLen, &st_JsonRoot, &st_JsonError))
345+
{
346+
Protocol_IsErrorOccur = true;
347+
Protocol_dwErrorCode = ERROR_MQ_MODULE_PROTOCOL_PARSE;
348+
return false;
349+
}
350+
if (st_JsonRoot["xhToken"].isNull())
351+
{
352+
Protocol_IsErrorOccur = true;
353+
Protocol_dwErrorCode = ERROR_MQ_MODULE_PROTOCOL_PARSE;
354+
return false;
355+
}
356+
*pxhToken = st_JsonRoot["xhToken"].asUInt64();
357+
return true;
358+
}
359+
/********************************************************************
360+
函数名称:ProtocolModule_Parse_Type
361+
函数功能:解析负载的类型字段
362+
参数.一:lpszMsgBuffer
363+
In/Out:In
364+
类型:常量字符指针
365+
可空:N
366+
意思:要解析的数据
367+
参数.二:nMsgLen
368+
In/Out:In
369+
类型:整数型
370+
可空:N
371+
意思:要解析的大小
372+
参数.三:pInt_Type
373+
In/Out:Out
374+
类型:整数型指针
375+
可空:N
376+
意思:输出解析到的类型
377+
返回值
378+
类型:逻辑型
379+
意思:是否成功
380+
备注:
381+
*********************************************************************/
382+
bool CProtocolModule_Parse::ProtocolModule_Parse_Type(LPCXSTR lpszMsgBuffer, int nMsgLen, int* pInt_Type)
383+
{
384+
Protocol_IsErrorOccur = false;
385+
386+
if ((NULL == lpszMsgBuffer))
387+
{
388+
Protocol_IsErrorOccur = true;
389+
Protocol_dwErrorCode = ERROR_MQ_MODULE_PROTOCOL_PARAMENT;
390+
return false;
391+
}
392+
Json::Value st_JsonRoot;
393+
JSONCPP_STRING st_JsonError;
394+
Json::CharReaderBuilder st_ReaderBuilder;
395+
396+
std::unique_ptr<Json::CharReader> const pSt_JsonReader(st_ReaderBuilder.newCharReader());
397+
if (!pSt_JsonReader->parse(lpszMsgBuffer, lpszMsgBuffer + nMsgLen, &st_JsonRoot, &st_JsonError))
398+
{
399+
Protocol_IsErrorOccur = true;
400+
Protocol_dwErrorCode = ERROR_MQ_MODULE_PROTOCOL_PARSE;
401+
return false;
402+
}
403+
Json::Value st_JsonObject = st_JsonRoot["Object"];
404+
if (!st_JsonObject["nType"].isNull())
405+
{
406+
*pInt_Type = st_JsonObject["nType"].asInt();
407+
}
408+
409+
return true;
410+
}
411+
/********************************************************************
412+
函数名称:ProtocolModule_Parse_Name
413+
函数功能:解析负载的类型字段
414+
参数.一:lpszMsgBuffer
415+
In/Out:In
416+
类型:常量字符指针
417+
可空:N
418+
意思:要解析的数据
419+
参数.二:nMsgLen
420+
In/Out:In
421+
类型:整数型
422+
可空:N
423+
意思:要解析的大小
424+
参数.三:ptszMSGBuffer
425+
In/Out:Out
426+
类型:字符指针
427+
可空:N
428+
意思:输出解析到的名称
429+
返回值
430+
类型:逻辑型
431+
意思:是否成功
432+
备注:
433+
*********************************************************************/
434+
bool CProtocolModule_Parse::ProtocolModule_Parse_Name(LPCXSTR lpszMsgBuffer, int nMsgLen, XCHAR* ptszMSGBuffer)
435+
{
436+
Protocol_IsErrorOccur = false;
437+
438+
if ((NULL == lpszMsgBuffer))
439+
{
440+
Protocol_IsErrorOccur = true;
441+
Protocol_dwErrorCode = ERROR_MQ_MODULE_PROTOCOL_PARAMENT;
442+
return false;
443+
}
444+
Json::Value st_JsonRoot;
445+
JSONCPP_STRING st_JsonError;
446+
Json::CharReaderBuilder st_ReaderBuilder;
447+
448+
std::unique_ptr<Json::CharReader> const pSt_JsonReader(st_ReaderBuilder.newCharReader());
449+
if (!pSt_JsonReader->parse(lpszMsgBuffer, lpszMsgBuffer + nMsgLen, &st_JsonRoot, &st_JsonError))
450+
{
451+
Protocol_IsErrorOccur = true;
452+
Protocol_dwErrorCode = ERROR_MQ_MODULE_PROTOCOL_PARSE;
453+
return false;
454+
}
455+
Json::Value st_JsonObject = st_JsonRoot["Object"];
456+
if (!st_JsonObject["name"].isNull())
457+
{
458+
_tcsxcpy(ptszMSGBuffer, st_JsonObject["name"].asCString());
459+
}
460+
304461
return true;
305462
}

XEngine_Source/MQCore_ProtocolModule/ProtocolModule_Parse/ProtocolModule_Parse.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ class CProtocolModule_Parse
1919
public:
2020
bool ProtocolModule_Parse_Websocket(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, XCHAR* ptszMsgBuffer, int* pInt_MsgLen);
2121
bool ProtocolModule_Parse_Register(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_PROTOCOL_USERINFO* pSt_UserInfo);
22+
bool ProtocolModule_Parse_Token(LPCXSTR lpszMsgBuffer, int nMsgLen, XNETHANDLE* pxhToken);
23+
bool ProtocolModule_Parse_Type(LPCXSTR lpszMsgBuffer, int nMsgLen, int* pInt_Type);
24+
bool ProtocolModule_Parse_Name(LPCXSTR lpszMsgBuffer, int nMsgLen, XCHAR* ptszMSGBuffer);
2225
protected:
2326
private:
2427
};

XEngine_Source/MQCore_ProtocolModule/Protocol_Define.h

Lines changed: 73 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -459,4 +459,76 @@ extern "C" bool ProtocolModule_Parse_Websocket(LPCXSTR lpszMsgBuffer, int nMsgLe
459459
意思:是否成功
460460
备注:
461461
*********************************************************************/
462-
extern "C" bool ProtocolModule_Parse_Register(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_PROTOCOL_USERINFO* pSt_UserInfo);
462+
extern "C" bool ProtocolModule_Parse_Register(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_PROTOCOL_USERINFO* pSt_UserInfo);
463+
/********************************************************************
464+
函数名称:ProtocolModule_Parse_Token
465+
函数功能:解析TOKEN
466+
参数.一:lpszMsgBuffer
467+
In/Out:In
468+
类型:常量字符指针
469+
可空:N
470+
意思:输入要解析的缓冲区
471+
参数.二:nMsgLen
472+
In/Out:In
473+
类型:整数型
474+
可空:N
475+
意思:输入要解析的大小
476+
参数.三:pxhToken
477+
In/Out:Out
478+
类型:句柄
479+
可空:N
480+
意思:输出解析到的TOKEN值
481+
返回值
482+
类型:逻辑型
483+
意思:是否成功
484+
备注:
485+
*********************************************************************/
486+
extern "C" bool ProtocolModule_Parse_Token(LPCXSTR lpszMsgBuffer, int nMsgLen, XNETHANDLE* pxhToken);
487+
/********************************************************************
488+
函数名称:ProtocolModule_Parse_Type
489+
函数功能:解析负载的类型字段
490+
参数.一:lpszMsgBuffer
491+
In/Out:In
492+
类型:常量字符指针
493+
可空:N
494+
意思:要解析的数据
495+
参数.二:nMsgLen
496+
In/Out:In
497+
类型:整数型
498+
可空:N
499+
意思:要解析的大小
500+
参数.三:pInt_Type
501+
In/Out:Out
502+
类型:整数型指针
503+
可空:N
504+
意思:输出解析到的类型
505+
返回值
506+
类型:逻辑型
507+
意思:是否成功
508+
备注:
509+
*********************************************************************/
510+
extern "C" bool ProtocolModule_Parse_Type(LPCXSTR lpszMsgBuffer, int nMsgLen, int* pInt_Type);
511+
/********************************************************************
512+
函数名称:ProtocolModule_Parse_Name
513+
函数功能:解析负载的类型字段
514+
参数.一:lpszMsgBuffer
515+
In/Out:In
516+
类型:常量字符指针
517+
可空:N
518+
意思:要解析的数据
519+
参数.二:nMsgLen
520+
In/Out:In
521+
类型:整数型
522+
可空:N
523+
意思:要解析的大小
524+
参数.三:ptszMSGBuffer
525+
In/Out:Out
526+
类型:字符指针
527+
可空:N
528+
意思:输出解析到的名称
529+
返回值
530+
类型:逻辑型
531+
意思:是否成功
532+
备注:
533+
*********************************************************************/
534+
extern "C" bool ProtocolModule_Parse_Name(LPCXSTR lpszMsgBuffer, int nMsgLen, XCHAR* ptszMSGBuffer);

XEngine_Source/MQCore_ProtocolModule/pch.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,4 +93,16 @@ extern "C" bool ProtocolModule_Parse_Websocket(LPCXSTR lpszMsgBuffer, int nMsgLe
9393
extern "C" bool ProtocolModule_Parse_Register(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_PROTOCOL_USERINFO* pSt_UserInfo)
9494
{
9595
return m_ProtocolParse.ProtocolModule_Parse_Register(lpszMsgBuffer, nMsgLen, pSt_UserInfo);
96+
}
97+
extern "C" bool ProtocolModule_Parse_Token(LPCXSTR lpszMsgBuffer, int nMsgLen, XNETHANDLE* pxhToken)
98+
{
99+
return m_ProtocolParse.ProtocolModule_Parse_Token(lpszMsgBuffer, nMsgLen, pxhToken);
100+
}
101+
extern "C" bool ProtocolModule_Parse_Type(LPCXSTR lpszMsgBuffer, int nMsgLen, int* pInt_Type)
102+
{
103+
return m_ProtocolParse.ProtocolModule_Parse_Type(lpszMsgBuffer, nMsgLen, pInt_Type);
104+
}
105+
extern "C" bool ProtocolModule_Parse_Name(LPCXSTR lpszMsgBuffer, int nMsgLen, XCHAR* ptszMSGBuffer)
106+
{
107+
return m_ProtocolParse.ProtocolModule_Parse_Name(lpszMsgBuffer, nMsgLen, ptszMSGBuffer);
96108
}

XEngine_Source/XEngine_MQServiceApp.sln

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XEngine_MQServiceApp", "XEn
1111
{77321E0D-15DB-4C6E-8872-115CBBE41F27} = {77321E0D-15DB-4C6E-8872-115CBBE41F27}
1212
{8C55D3E0-FEC2-4A6C-A374-651516ED8F99} = {8C55D3E0-FEC2-4A6C-A374-651516ED8F99}
1313
{B0EB2A7A-53C1-4E9F-A851-19539099671C} = {B0EB2A7A-53C1-4E9F-A851-19539099671C}
14+
{E17E889F-D826-413F-854E-DBA6000B4DA7} = {E17E889F-D826-413F-854E-DBA6000B4DA7}
1415
{F1736B3F-03A2-4FC7-B045-A12BA8D724FB} = {F1736B3F-03A2-4FC7-B045-A12BA8D724FB}
1516
{F6520D2C-BB8E-45BB-964B-F5D6A4318A89} = {F6520D2C-BB8E-45BB-964B-F5D6A4318A89}
1617
EndProjectSection

0 commit comments

Comments
 (0)