From f11e3f73045faf3bfb34748128b32c62f4b7119c Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Thu, 12 Jan 2023 12:32:17 +0800 Subject: [PATCH 01/24] update:http request function name --- .../Authorize_Dialog/Dialog_Banned.cpp | 12 ++++++------ .../Authorize_Dialog/Dialog_Config.cpp | 6 +++--- .../Authorize_Dialog/Dialog_Modify.cpp | 8 ++++---- .../Authorize_Dialog/Dialog_Serial.cpp | 16 ++++++++-------- .../Authorize_Dialog/Dialog_Switch.cpp | 8 ++++---- .../Authorize_Dialog/Dialog_User.cpp | 12 ++++++------ .../XEngine_AuthorizeApp/pch.h | 6 +++--- .../AuthorizeHTTP_Get/AuthorizeHTTP_Token.cpp | 4 ++-- .../XEngine_AuthorizeService/Authorize_Hdr.h | 6 +++--- .../XEngine_AuthorizeService/Authorize_Net.cpp | 2 +- .../Authorize_TCPTask.cpp | 2 +- .../XEngine_AuthorizeService/Authorize_Task.cpp | 4 ++-- .../XEngine_AuthorizeService/Makefile | 2 +- 13 files changed, 44 insertions(+), 44 deletions(-) diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.cpp index 9214299..87498a5 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.cpp @@ -139,11 +139,11 @@ void CDialog_Banned::OnBnClickedButton2() nMsgLen = st_JsonRoot.toStyledString().length(); OPenSsl_XCrypto_Encoder(st_JsonRoot.toStyledString().c_str(), &nMsgLen, (UCHAR*)tszMsgBuffer, tszPassBuffer); - APIHelp_HttpRequest_Custom(_T("POST"), tszUrlAddr, tszMsgBuffer, NULL, &ptszMsgBuffer, &nMsgLen); + APIClient_Http_Request(_T("POST"), tszUrlAddr, tszMsgBuffer, NULL, &ptszMsgBuffer, &nMsgLen); } else { - APIHelp_HttpRequest_Custom(_T("POST"), tszUrlAddr, st_JsonRoot.toStyledString().c_str(), NULL, &ptszMsgBuffer, &nMsgLen); + APIClient_Http_Request(_T("POST"), tszUrlAddr, st_JsonRoot.toStyledString().c_str(), NULL, &ptszMsgBuffer, &nMsgLen); } JSONCPP_STRING st_JsonError; Json::CharReaderBuilder st_ReaderBuilder; @@ -217,11 +217,11 @@ void CDialog_Banned::OnBnClickedButton4() nMsgLen = st_JsonRoot.toStyledString().length(); OPenSsl_XCrypto_Encoder(st_JsonRoot.toStyledString().c_str(), &nMsgLen, (UCHAR*)tszMsgBuffer, tszPassBuffer); - APIHelp_HttpRequest_Custom(_T("POST"), tszUrlAddr, tszMsgBuffer, NULL, &ptszMsgBuffer, &nMsgLen); + APIClient_Http_Request(_T("POST"), tszUrlAddr, tszMsgBuffer, NULL, &ptszMsgBuffer, &nMsgLen); } else { - APIHelp_HttpRequest_Custom(_T("POST"), tszUrlAddr, st_JsonRoot.toStyledString().c_str(), NULL, &ptszMsgBuffer, &nMsgLen); + APIClient_Http_Request(_T("POST"), tszUrlAddr, st_JsonRoot.toStyledString().c_str(), NULL, &ptszMsgBuffer, &nMsgLen); } JSONCPP_STRING st_JsonError; Json::CharReaderBuilder st_ReaderBuilder; @@ -332,11 +332,11 @@ void CDialog_Banned::OnBnClickedButton3() nMsgLen = st_JsonRoot.toStyledString().length(); OPenSsl_XCrypto_Encoder(st_JsonRoot.toStyledString().c_str(), &nMsgLen, (UCHAR*)tszMsgBuffer, tszPassBuffer); - APIHelp_HttpRequest_Custom(_T("POST"), tszUrlAddr, tszMsgBuffer, NULL, &ptszMsgBuffer, &nMsgLen); + APIClient_Http_Request(_T("POST"), tszUrlAddr, tszMsgBuffer, NULL, &ptszMsgBuffer, &nMsgLen); } else { - APIHelp_HttpRequest_Custom(_T("POST"), tszUrlAddr, st_JsonRoot.toStyledString().c_str(), NULL, &ptszMsgBuffer, &nMsgLen); + APIClient_Http_Request(_T("POST"), tszUrlAddr, st_JsonRoot.toStyledString().c_str(), NULL, &ptszMsgBuffer, &nMsgLen); } st_JsonRoot.clear(); JSONCPP_STRING st_JsonError; diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Config.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Config.cpp index b0b8903..9d01d4c 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Config.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Config.cpp @@ -101,7 +101,7 @@ void CDialog_Config::OnBnClickedButton1() //请求用户信息 int nMsgLen = 0; CHAR* ptszMsgBuffer = NULL; - APIHelp_HttpRequest_Custom(_T("GET"), tszUrlAddr, NULL, NULL, &ptszMsgBuffer, &nMsgLen); + APIClient_Http_Request(_T("GET"), tszUrlAddr, NULL, NULL, &ptszMsgBuffer, &nMsgLen); Json::Value st_JsonRoot; JSONCPP_STRING st_JsonError; @@ -167,7 +167,7 @@ void CDialog_Config::OnBnClickedButton2() //请求用户信息 int nMsgLen = 0; CHAR* ptszMsgBuffer = NULL; - APIHelp_HttpRequest_Custom(_T("GET"), tszUrlAddr, NULL, NULL, &ptszMsgBuffer, &nMsgLen); + APIClient_Http_Request(_T("GET"), tszUrlAddr, NULL, NULL, &ptszMsgBuffer, &nMsgLen); Json::Value st_JsonRoot; JSONCPP_STRING st_JsonError; @@ -228,7 +228,7 @@ void CDialog_Config::OnBnClickedButton5() //请求用户信息 int nMsgLen = 0; CHAR* ptszMsgBuffer = NULL; - APIHelp_HttpRequest_Custom(_T("GET"), tszUrlAddr, NULL, NULL, &ptszMsgBuffer, &nMsgLen); + APIClient_Http_Request(_T("GET"), tszUrlAddr, NULL, NULL, &ptszMsgBuffer, &nMsgLen); Json::Value st_JsonRoot; JSONCPP_STRING st_JsonError; diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Modify.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Modify.cpp index 32b0037..d1ce5ec 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Modify.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Modify.cpp @@ -106,11 +106,11 @@ BOOL CDialog_Modify::OnInitDialog() nMsgLen = st_JsonRoot.toStyledString().length(); OPenSsl_XCrypto_Encoder(st_JsonRoot.toStyledString().c_str(), &nMsgLen, (UCHAR*)tszMsgBuffer, tszPassBuffer); - APIHelp_HttpRequest_Custom(_T("POST"), tszUrlAddr, tszMsgBuffer, NULL, &ptszMsgBuffer, &nMsgLen); + APIClient_Http_Request(_T("POST"), tszUrlAddr, tszMsgBuffer, NULL, &ptszMsgBuffer, &nMsgLen); } else { - APIHelp_HttpRequest_Custom(_T("POST"), tszUrlAddr, st_JsonRoot.toStyledString().c_str(), NULL, &ptszMsgBuffer, &nMsgLen); + APIClient_Http_Request(_T("POST"), tszUrlAddr, st_JsonRoot.toStyledString().c_str(), NULL, &ptszMsgBuffer, &nMsgLen); } st_JsonObject.clear(); st_JsonRoot.clear(); @@ -240,11 +240,11 @@ void CDialog_Modify::OnBnClickedButton2() nMsgLen = st_JsonRoot.toStyledString().length(); OPenSsl_XCrypto_Encoder(st_JsonRoot.toStyledString().c_str(), &nMsgLen, (UCHAR*)tszMsgBuffer, tszPassBuffer); - APIHelp_HttpRequest_Custom(_T("POST"), tszUrlAddr, tszMsgBuffer, NULL, &ptszMsgBuffer, &nMsgLen); + APIClient_Http_Request(_T("POST"), tszUrlAddr, tszMsgBuffer, NULL, &ptszMsgBuffer, &nMsgLen); } else { - APIHelp_HttpRequest_Custom(_T("POST"), tszUrlAddr, st_JsonRoot.toStyledString().c_str(), NULL, &ptszMsgBuffer, &nMsgLen); + APIClient_Http_Request(_T("POST"), tszUrlAddr, st_JsonRoot.toStyledString().c_str(), NULL, &ptszMsgBuffer, &nMsgLen); } st_JsonRoot.clear(); JSONCPP_STRING st_JsonError; diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Serial.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Serial.cpp index 8be34cc..c16a088 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Serial.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Serial.cpp @@ -121,11 +121,11 @@ void CDialog_Serial::OnBnClickedButton1() nMsgLen = st_JsonRoot.toStyledString().length(); OPenSsl_XCrypto_Encoder(st_JsonRoot.toStyledString().c_str(), &nMsgLen, (UCHAR*)tszMsgBuffer, tszPassBuffer); - APIHelp_HttpRequest_Custom(_T("POST"), tszUrlAddr, tszMsgBuffer, NULL, &ptszMsgBuffer, &nMsgLen); + APIClient_Http_Request(_T("POST"), tszUrlAddr, tszMsgBuffer, NULL, &ptszMsgBuffer, &nMsgLen); } else { - APIHelp_HttpRequest_Custom(_T("POST"), tszUrlAddr, st_JsonRoot.toStyledString().c_str(), NULL, &ptszMsgBuffer, &nMsgLen); + APIClient_Http_Request(_T("POST"), tszUrlAddr, st_JsonRoot.toStyledString().c_str(), NULL, &ptszMsgBuffer, &nMsgLen); } JSONCPP_STRING st_JsonError; Json::CharReaderBuilder st_ReaderBuilder; @@ -225,11 +225,11 @@ void CDialog_Serial::OnBnClickedButton2() nMsgLen = st_JsonRoot.toStyledString().length(); OPenSsl_XCrypto_Encoder(st_JsonRoot.toStyledString().c_str(), &nMsgLen, (UCHAR*)tszMsgBuffer, tszPassBuffer); - APIHelp_HttpRequest_Custom(_T("POST"), tszUrlAddr, tszMsgBuffer, NULL, &ptszMsgBuffer, &nMsgLen); + APIClient_Http_Request(_T("POST"), tszUrlAddr, tszMsgBuffer, NULL, &ptszMsgBuffer, &nMsgLen); } else { - APIHelp_HttpRequest_Custom(_T("POST"), tszUrlAddr, st_JsonRoot.toStyledString().c_str(), NULL, &ptszMsgBuffer, &nMsgLen); + APIClient_Http_Request(_T("POST"), tszUrlAddr, st_JsonRoot.toStyledString().c_str(), NULL, &ptszMsgBuffer, &nMsgLen); } st_JsonRoot.clear(); JSONCPP_STRING st_JsonError; @@ -324,11 +324,11 @@ void CDialog_Serial::OnBnClickedButton4() nMsgLen = st_JsonRoot.toStyledString().length(); OPenSsl_XCrypto_Encoder(st_JsonRoot.toStyledString().c_str(), &nMsgLen, (UCHAR*)tszMsgBuffer, tszPassBuffer); - APIHelp_HttpRequest_Custom(_T("POST"), tszUrlAddr, tszMsgBuffer, NULL, &ptszMsgBuffer, &nMsgLen); + APIClient_Http_Request(_T("POST"), tszUrlAddr, tszMsgBuffer, NULL, &ptszMsgBuffer, &nMsgLen); } else { - APIHelp_HttpRequest_Custom(_T("POST"), tszUrlAddr, st_JsonRoot.toStyledString().c_str(), NULL, &ptszMsgBuffer, &nMsgLen); + APIClient_Http_Request(_T("POST"), tszUrlAddr, st_JsonRoot.toStyledString().c_str(), NULL, &ptszMsgBuffer, &nMsgLen); } st_JsonRoot.clear(); JSONCPP_STRING st_JsonError; @@ -479,11 +479,11 @@ void CDialog_Serial::OnBnClickedButton6() nMsgLen = st_JsonRoot.toStyledString().length(); OPenSsl_XCrypto_Encoder(st_JsonRoot.toStyledString().c_str(), &nMsgLen, (UCHAR*)tszMsgBuffer, tszPassBuffer); - APIHelp_HttpRequest_Custom(_T("POST"), tszUrlAddr, tszMsgBuffer, NULL, &ptszMsgBuffer, &nMsgLen); + APIClient_Http_Request(_T("POST"), tszUrlAddr, tszMsgBuffer, NULL, &ptszMsgBuffer, &nMsgLen); } else { - APIHelp_HttpRequest_Custom(_T("POST"), tszUrlAddr, st_JsonRoot.toStyledString().c_str(), NULL, &ptszMsgBuffer, &nMsgLen); + APIClient_Http_Request(_T("POST"), tszUrlAddr, st_JsonRoot.toStyledString().c_str(), NULL, &ptszMsgBuffer, &nMsgLen); } st_JsonRoot.clear(); JSONCPP_STRING st_JsonError; diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Switch.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Switch.cpp index 96c30a3..9e6b826 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Switch.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Switch.cpp @@ -80,11 +80,11 @@ void CDialog_Switch::OnBnClickedButton1() nMsgLen = st_JsonRoot.toStyledString().length(); OPenSsl_XCrypto_Encoder(st_JsonRoot.toStyledString().c_str(), &nMsgLen, (UCHAR*)tszMsgBuffer, tszPassBuffer); - APIHelp_HttpRequest_Custom(_T("POST"), tszUrlAddr, tszMsgBuffer, NULL, &ptszMsgBuffer, &nMsgLen); + APIClient_Http_Request(_T("POST"), tszUrlAddr, tszMsgBuffer, NULL, &ptszMsgBuffer, &nMsgLen); } else { - APIHelp_HttpRequest_Custom(_T("POST"), tszUrlAddr, st_JsonRoot.toStyledString().c_str(), NULL, &ptszMsgBuffer, &nMsgLen); + APIClient_Http_Request(_T("POST"), tszUrlAddr, st_JsonRoot.toStyledString().c_str(), NULL, &ptszMsgBuffer, &nMsgLen); } st_JsonRoot.clear(); JSONCPP_STRING st_JsonError; @@ -259,11 +259,11 @@ void CDialog_Switch::OnBnClickedButton2() nMsgLen = st_JsonRoot.toStyledString().length(); OPenSsl_XCrypto_Encoder(st_JsonRoot.toStyledString().c_str(), &nMsgLen, (UCHAR*)tszMsgBuffer, tszPassBuffer); - APIHelp_HttpRequest_Custom(_T("POST"), tszUrlAddr, tszMsgBuffer, NULL, &ptszMsgBuffer, &nMsgLen); + APIClient_Http_Request(_T("POST"), tszUrlAddr, tszMsgBuffer, NULL, &ptszMsgBuffer, &nMsgLen); } else { - APIHelp_HttpRequest_Custom(_T("POST"), tszUrlAddr, st_JsonRoot.toStyledString().c_str(), NULL, &ptszMsgBuffer, &nMsgLen); + APIClient_Http_Request(_T("POST"), tszUrlAddr, st_JsonRoot.toStyledString().c_str(), NULL, &ptszMsgBuffer, &nMsgLen); } st_JsonRoot.clear(); JSONCPP_STRING st_JsonError; diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_User.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_User.cpp index e6bfa49..6cee5a6 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_User.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_User.cpp @@ -120,11 +120,11 @@ void CDialog_User::OnBnClickedButton1() nMsgLen = st_JsonRoot.toStyledString().length(); OPenSsl_XCrypto_Encoder(st_JsonRoot.toStyledString().c_str(), &nMsgLen, (UCHAR*)tszMsgBuffer, tszPassBuffer); - APIHelp_HttpRequest_Custom(_T("POST"), tszUrlAddr, tszMsgBuffer, NULL, &ptszMsgBuffer, &nMsgLen); + APIClient_Http_Request(_T("POST"), tszUrlAddr, tszMsgBuffer, NULL, &ptszMsgBuffer, &nMsgLen); } else { - APIHelp_HttpRequest_Custom(_T("POST"), tszUrlAddr, st_JsonRoot.toStyledString().c_str(), NULL, &ptszMsgBuffer, &nMsgLen); + APIClient_Http_Request(_T("POST"), tszUrlAddr, st_JsonRoot.toStyledString().c_str(), NULL, &ptszMsgBuffer, &nMsgLen); } JSONCPP_STRING st_JsonError; Json::CharReaderBuilder st_ReaderBuilder; @@ -229,11 +229,11 @@ void CDialog_User::OnBnClickedButton2() nMsgLen = st_JsonRoot.toStyledString().length(); OPenSsl_XCrypto_Encoder(st_JsonRoot.toStyledString().c_str(), &nMsgLen, (UCHAR*)tszMsgBuffer, tszPassBuffer); - APIHelp_HttpRequest_Custom(_T("POST"), tszUrlAddr, tszMsgBuffer, NULL, &ptszMsgBuffer, &nMsgLen); + APIClient_Http_Request(_T("POST"), tszUrlAddr, tszMsgBuffer, NULL, &ptszMsgBuffer, &nMsgLen); } else { - APIHelp_HttpRequest_Custom(_T("POST"), tszUrlAddr, st_JsonRoot.toStyledString().c_str(), NULL, &ptszMsgBuffer, &nMsgLen); + APIClient_Http_Request(_T("POST"), tszUrlAddr, st_JsonRoot.toStyledString().c_str(), NULL, &ptszMsgBuffer, &nMsgLen); } //查看返回值是否正确 st_JsonRoot.clear(); @@ -317,11 +317,11 @@ void CDialog_User::OnBnClickedButton3() nMsgLen = st_JsonRoot.toStyledString().length(); OPenSsl_XCrypto_Encoder(st_JsonRoot.toStyledString().c_str(), &nMsgLen, (UCHAR*)tszMsgBuffer, tszPassBuffer); - APIHelp_HttpRequest_Custom(_T("POST"), tszUrlAddr, tszMsgBuffer, NULL, &ptszMsgBuffer, &nMsgLen); + APIClient_Http_Request(_T("POST"), tszUrlAddr, tszMsgBuffer, NULL, &ptszMsgBuffer, &nMsgLen); } else { - APIHelp_HttpRequest_Custom(_T("POST"), tszUrlAddr, st_JsonRoot.toStyledString().c_str(), NULL, &ptszMsgBuffer, &nMsgLen); + APIClient_Http_Request(_T("POST"), tszUrlAddr, st_JsonRoot.toStyledString().c_str(), NULL, &ptszMsgBuffer, &nMsgLen); } //查看返回值是否正确 st_JsonRoot.clear(); diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/pch.h b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/pch.h index 00025d1..bf5cd5a 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/pch.h +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/pch.h @@ -20,8 +20,8 @@ using namespace std; #include #include #include -#include -#include +#include +#include #include #include #include "../../XAuth_Protocol.h" @@ -63,4 +63,4 @@ extern LPCSTR lpszStuType[2]; #pragma comment(lib,"XEngine_BaseLib/XEngine_BaseLib.lib") #pragma comment(lib,"XEngine_Core/XEngine_OPenSsl.lib") -#pragma comment(lib,"XEngine_NetHelp/NetHelp_APIHelp.lib") \ No newline at end of file +#pragma comment(lib,"XEngine_NetHelp/NetHelp_APIClient.lib") \ No newline at end of file diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Get/AuthorizeHTTP_Token.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Get/AuthorizeHTTP_Token.cpp index 141f113..b64b9de 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Get/AuthorizeHTTP_Token.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Get/AuthorizeHTTP_Token.cpp @@ -54,7 +54,7 @@ BOOL XEngine_AuthorizeHTTP_Token(LPCTSTR lpszClientAddr, TCHAR** pptszList, int st_AuthProtocol.enDeviceType = (ENUM_PROTOCOLDEVICE_TYPE)_ttoi(tszDeviceType); Protocol_Packet_HttpUserPass(tszSDBuffer, &nSDLen, &st_AuthProtocol); - APIHelp_HttpRequest_Custom(_T("POST"), st_AuthConfig.st_XLogin.st_PassUrl.tszPassLogin, tszSDBuffer, &nHTTPCode, &ptszMsgBuffer, &nHTTPLen); + APIClient_Http_Request(_T("POST"), st_AuthConfig.st_XLogin.st_PassUrl.tszPassLogin, tszSDBuffer, &nHTTPCode, &ptszMsgBuffer, &nHTTPLen); if (200 != nHTTPCode) { Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 404, "user not found"); @@ -213,7 +213,7 @@ BOOL XEngine_AuthorizeHTTP_Token(LPCTSTR lpszClientAddr, TCHAR** pptszList, int memset(tszSDBuffer, '\0', MAX_PATH); Protocol_Packet_HttpUserTime(tszSDBuffer, &nSDLen, &st_AuthTime); - APIHelp_HttpRequest_Custom(_T("POST"), st_AuthConfig.st_XLogin.st_PassUrl.tszPassLogout, tszSDBuffer); + APIClient_Http_Request(_T("POST"), st_AuthConfig.st_XLogin.st_PassUrl.tszPassLogout, tszSDBuffer); } Database_SQLite_UserLeave(&st_AuthTime); } diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Hdr.h b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Hdr.h index 470a8af..a405429 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Hdr.h +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Hdr.h @@ -38,8 +38,8 @@ using namespace std; #include #include #include -#include -#include +#include +#include #include "../../XAuth_Protocol.h" #include "../../AuthorizeModule_Configure/Config_Define.h" #include "../../AuthorizeModule_Configure/Config_Error.h" @@ -120,5 +120,5 @@ extern XENGINE_FUNCTIONSWITCH st_FunSwitch; #pragma comment(lib,"XEngine_HelpComponents/HelpComponents_Authorize.lib") #pragma comment(lib,"XEngine_RfcComponents/RfcComponents_WSProtocol.lib") #pragma comment(lib,"XEngine_RfcComponents/RfcComponents_HttpServer.lib") -#pragma comment(lib,"XEngine_NetHelp/NetHelp_APIHelp.lib") +#pragma comment(lib,"XEngine_NetHelp/NetHelp_APIClient.lib") #endif \ No newline at end of file diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Net.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Net.cpp index 0f875a9..20d59e2 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Net.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Net.cpp @@ -107,7 +107,7 @@ BOOL XEngine_CloseClient(LPCTSTR lpszClientAddr) memset(tszSDBuffer, '\0', MAX_PATH); Protocol_Packet_HttpUserTime(tszSDBuffer, &nSDLen, &st_AuthTime); - APIHelp_HttpRequest_Custom(_T("POST"), st_AuthConfig.st_XLogin.st_PassUrl.tszPassLogout, tszSDBuffer); + APIClient_Http_Request(_T("POST"), st_AuthConfig.st_XLogin.st_PassUrl.tszPassLogout, tszSDBuffer); } else { diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_TCPTask.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_TCPTask.cpp index dae045d..30c40a0 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_TCPTask.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_TCPTask.cpp @@ -105,7 +105,7 @@ BOOL XEngine_Client_TCPTask(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int n int nHTTPLen = 0; TCHAR* ptszMsgBuffer = NULL; Protocol_Packet_HttpUserPass(tszSDBuffer, &nSDLen, &st_AuthProtocol); - APIHelp_HttpRequest_Custom(_T("POST"), st_AuthConfig.st_XLogin.st_PassUrl.tszPassLogin, tszSDBuffer, &nHTTPCode, &ptszMsgBuffer, &nHTTPLen); + APIClient_Http_Request(_T("POST"), st_AuthConfig.st_XLogin.st_PassUrl.tszPassLogin, tszSDBuffer, &nHTTPCode, &ptszMsgBuffer, &nHTTPLen); if (200 != nHTTPCode) { pSt_ProtocolHdr->wReserve = 251; diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Task.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Task.cpp index e424883..61fd8b6 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Task.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Task.cpp @@ -31,7 +31,7 @@ void __stdcall XEngine_TaskEvent_Client(LPCSTR lpszUserAddr, LPCSTR lpszUserName memset(tszMsgBuffer, '\0', sizeof(tszMsgBuffer)); Protocol_Packet_HttpUserTime(tszMsgBuffer, &nMsgLen, &st_AuthTime); - APIHelp_HttpRequest_Custom(_T("POST"), st_AuthConfig.st_XLogin.st_PassUrl.tszPassTimeout, tszMsgBuffer); + APIClient_Http_Request(_T("POST"), st_AuthConfig.st_XLogin.st_PassUrl.tszPassTimeout, tszMsgBuffer); } if (XENGINE_AUTH_APP_NETTYPE_HTTP != nNetType) { @@ -76,7 +76,7 @@ void __stdcall XEngine_TaskEvent_Token(XNETHANDLE xhToken, LPVOID lParam) memset(tszSDBuffer, '\0', MAX_PATH); Protocol_Packet_HttpUserTime(tszSDBuffer, &nSDLen, &st_AuthTime); - APIHelp_HttpRequest_Custom(_T("POST"), st_AuthConfig.st_XLogin.st_PassUrl.tszPassLogout, tszSDBuffer); + APIClient_Http_Request(_T("POST"), st_AuthConfig.st_XLogin.st_PassUrl.tszPassLogout, tszSDBuffer); } Database_SQLite_UserLeave(&st_AuthTime); } diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Makefile b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Makefile index b79e546..086dde9 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Makefile +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Makefile @@ -5,7 +5,7 @@ RELEASE = 0 UNICODE = 0 LOADBIN = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L /usr/local/lib/XEngine_Release/XEngine_Core -L /usr/local/lib/XEngine_Release/XEngine_HelpComponents -L /usr/local/lib/XEngine_Release/XEngine_RfcComponents -L /usr/local/lib/XEngine_Release/XEngine_NetHelp -L /usr/local/lib/XEngine_Release/XEngine_SystemSdk \ -L ../../AuthorizeModule_Session -L ../../AuthorizeModule_Database -L ../../AuthorizeModule_Protocol -L ../../AuthorizeModule_Configure -L ../../XEngine_ThirdPart/jsoncpp -LIB = -lXEngine_BaseLib -lXEngine_Algorithm -lXEngine_Core -lXEngine_ManagePool -lXEngine_OPenSsl -lHelpComponents_Packets -lHelpComponents_DataBase -lHelpComponents_XLog -lHelpComponents_Authorize -lRfcComponents_WSProtocol -lRfcComponents_HttpServer -lNetHelp_APIHelp -lXEngine_ProcFile -lXEngine_SystemApi \ +LIB = -lXEngine_BaseLib -lXEngine_Algorithm -lXEngine_Core -lXEngine_ManagePool -lXEngine_OPenSsl -lHelpComponents_Packets -lHelpComponents_DataBase -lHelpComponents_XLog -lHelpComponents_Authorize -lRfcComponents_WSProtocol -lRfcComponents_HttpServer -lNetHelp_APIClient -lXEngine_ProcFile -lXEngine_SystemApi \ -lAuthorizeModule_Session -lAuthorizeModule_Database -lAuthorizeModule_Protocol -lAuthorizeModule_Configure -ljsoncpp LIBEX = -ldl -lpthread LOADSO = -Wl,-rpath=./,--disable-new-dtags From def7986daf8258cd3c66656d05a833f1b53c01d2 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Tue, 17 Jan 2023 13:16:20 +0800 Subject: [PATCH 02/24] modify:app example http request function --- .../Authorize_APPClient.cpp | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/XEngine_Apps/Authorize_APPClient/Authorize_APPClient.cpp b/XEngine_Apps/Authorize_APPClient/Authorize_APPClient.cpp index 8b769c4..c13314b 100644 --- a/XEngine_Apps/Authorize_APPClient/Authorize_APPClient.cpp +++ b/XEngine_Apps/Authorize_APPClient/Authorize_APPClient.cpp @@ -5,7 +5,7 @@ #pragma comment(lib,"XEngine_BaseLib/XEngine_BaseLib") #pragma comment(lib,"XEngine_Core/XEngine_OPenSsl") #pragma comment(lib,"XEngine_Client/XClient_Socket") -#pragma comment(lib,"XEngine_NetHelp/NetHelp_APIHelp") +#pragma comment(lib,"XEngine_NetHelp/NetHelp_APIClient") #pragma comment(lib,"../../XEngine_Source/Debug/jsoncpp") #else #include @@ -23,14 +23,14 @@ using namespace std; #include #include #include -#include -#include +#include +#include #include #include "../../XEngine_Source/XAuth_Protocol.h" //Windows::vs2022 x86 debug 编译即可 -//Linux::g++ -std=c++17 -Wall -g Auth_APPClient.cpp -o Auth_APPClient.exe -L ../../../XEngine/XEngine_Release/XEngine_Linux/Ubuntu/XEngine_BaseLib -L ../../../XEngine/XEngine_Release/XEngine_Linux/Ubuntu/XEngine_Core -L ../../../XEngine/XEngine_Release/XEngine_Linux/Ubuntu/XEngine_Client -L ../../../XEngine/XEngine_Release/XEngine_Linux/Ubuntu/XEngine_NetHelp -lXEngine_BaseLib -lXEngine_OPenSsl -lXClient_Socket -lNetHelp_APIHelp -lpthread -ljsoncpp -Wl,-rpath=../../../XEngine/XEngine_Release/XEngine_Linux/Ubuntu/XEngine_BaseLib:../../../XEngine/XEngine_Release/XEngine_Linux/Ubuntu/XEngine_Core:../../../XEngine/XEngine_Release/XEngine_Linux/Ubuntu/XEngine_Client:../../../XEngine/XEngine_Release/XEngine_Linux/Ubuntu/XEngine_NetHelp,--disable-new-dtags -//Macos::g++ -std=c++17 -Wall -g Auth_APPClient.cpp -o Auth_APPClient.exe -L ../../../XEngine/XEngine_Release/XEngine_Linux/Ubuntu/XEngine_BaseLib -L ../../../XEngine/XEngine_Release/XEngine_Linux/Ubuntu/XEngine_Core -L ../../../XEngine/XEngine_Release/XEngine_Linux/Ubuntu/XEngine_Client -L ../../../XEngine/XEngine_Release/XEngine_Linux/Ubuntu/XEngine_NetHelp -lXEngine_BaseLib -lXEngine_OPenSsl -lXClient_Socket -lNetHelp_APIHelp -lpthread -ljsoncpp +//Linux::g++ -std=c++17 -Wall -g Auth_APPClient.cpp -o Auth_APPClient.exe -L ../../../XEngine/XEngine_Release/XEngine_Linux/Ubuntu/XEngine_BaseLib -L ../../../XEngine/XEngine_Release/XEngine_Linux/Ubuntu/XEngine_Core -L ../../../XEngine/XEngine_Release/XEngine_Linux/Ubuntu/XEngine_Client -L ../../../XEngine/XEngine_Release/XEngine_Linux/Ubuntu/XEngine_NetHelp -lXEngine_BaseLib -lXEngine_OPenSsl -lXClient_Socket -lNetHelp_APIClient -lpthread -ljsoncpp -Wl,-rpath=../../../XEngine/XEngine_Release/XEngine_Linux/Ubuntu/XEngine_BaseLib:../../../XEngine/XEngine_Release/XEngine_Linux/Ubuntu/XEngine_Core:../../../XEngine/XEngine_Release/XEngine_Linux/Ubuntu/XEngine_Client:../../../XEngine/XEngine_Release/XEngine_Linux/Ubuntu/XEngine_NetHelp,--disable-new-dtags +//Macos::g++ -std=c++17 -Wall -g Auth_APPClient.cpp -o Auth_APPClient.exe -L ../../../XEngine/XEngine_Release/XEngine_Linux/Ubuntu/XEngine_BaseLib -L ../../../XEngine/XEngine_Release/XEngine_Linux/Ubuntu/XEngine_Core -L ../../../XEngine/XEngine_Release/XEngine_Linux/Ubuntu/XEngine_Client -L ../../../XEngine/XEngine_Release/XEngine_Linux/Ubuntu/XEngine_NetHelp -lXEngine_BaseLib -lXEngine_OPenSsl -lXClient_Socket -lNetHelp_APIClient -lpthread -ljsoncpp BOOL bRun = TRUE; BOOL bLogin = TRUE; @@ -118,7 +118,7 @@ int AuthClient_Register() int nMsgLen = 0; CHAR* ptszMsgBuffer = NULL; - APIHelp_HttpRequest_Custom(_T("POST"), lpszUrl, st_JsonRoot.toStyledString().c_str(), &nHTTPCode, &ptszMsgBuffer, &nMsgLen); + APIClient_Http_Request(_T("POST"), lpszUrl, st_JsonRoot.toStyledString().c_str(), &nHTTPCode, &ptszMsgBuffer, &nMsgLen); printf("AuthClient_Register:\n%s\n", ptszMsgBuffer); BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer); @@ -138,7 +138,7 @@ int AuthClient_Pay() int nMsgLen = 0; CHAR* ptszMsgBuffer = NULL; - APIHelp_HttpRequest_Custom(_T("POST"), lpszUrl, st_JsonRoot.toStyledString().c_str(), &nHTTPCode, &ptszMsgBuffer, &nMsgLen); + APIClient_Http_Request(_T("POST"), lpszUrl, st_JsonRoot.toStyledString().c_str(), &nHTTPCode, &ptszMsgBuffer, &nMsgLen); printf("AuthClient_Pay:\n%s\n", ptszMsgBuffer); BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer); @@ -213,7 +213,7 @@ int AuthClient_GetPass() int nMsgLen = 0; CHAR* ptszMsgBuffer = NULL; - APIHelp_HttpRequest_Custom(_T("POST"), lpszUrl, st_JsonRoot.toStyledString().c_str(), &nHTTPCode, &ptszMsgBuffer, &nMsgLen); + APIClient_Http_Request(_T("POST"), lpszUrl, st_JsonRoot.toStyledString().c_str(), &nHTTPCode, &ptszMsgBuffer, &nMsgLen); printf("AuthClient_GetPass:\n%s\n", ptszMsgBuffer); BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer); @@ -232,7 +232,7 @@ int AuthClient_GetTime() int nMsgLen = 0; CHAR* ptszMsgBuffer = NULL; - APIHelp_HttpRequest_Custom(_T("POST"), lpszUrl, st_JsonRoot.toStyledString().c_str(), &nHTTPCode, &ptszMsgBuffer, &nMsgLen); + APIClient_Http_Request(_T("POST"), lpszUrl, st_JsonRoot.toStyledString().c_str(), &nHTTPCode, &ptszMsgBuffer, &nMsgLen); printf("AuthClient_GetTime:\n%s\n", ptszMsgBuffer); BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer); @@ -255,7 +255,7 @@ int AuthClient_Delete() int nMsgLen = 0; CHAR* ptszMsgBuffer = NULL; - APIHelp_HttpRequest_Custom(_T("POST"), lpszUrl, st_JsonRoot.toStyledString().c_str(), &nHTTPCode, &ptszMsgBuffer, &nMsgLen); + APIClient_Http_Request(_T("POST"), lpszUrl, st_JsonRoot.toStyledString().c_str(), &nHTTPCode, &ptszMsgBuffer, &nMsgLen); printf("AuthClient_Delete:\n%s\n", ptszMsgBuffer); BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer); @@ -274,7 +274,7 @@ int AuthClient_Try() int nMsgLen = 0; CHAR* ptszMsgBuffer = NULL; - APIHelp_HttpRequest_Custom(_T("POST"), lpszUrl, st_JsonRoot.toStyledString().c_str(), &nHTTPCode, &ptszMsgBuffer, &nMsgLen); + APIClient_Http_Request(_T("POST"), lpszUrl, st_JsonRoot.toStyledString().c_str(), &nHTTPCode, &ptszMsgBuffer, &nMsgLen); printf("AuthClient_Try:\n%s\n", ptszMsgBuffer); BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer); From 5eec1cd99b518258673ea7788640ba1022b0adc9 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Tue, 17 Jan 2023 13:19:12 +0800 Subject: [PATCH 03/24] modify:XHDATA to XNETHANDLE --- .../AuthorizeModule_Database/Database_SQLite/Database_SQLite.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/XEngine_Source/AuthorizeModule_Database/Database_SQLite/Database_SQLite.h b/XEngine_Source/AuthorizeModule_Database/Database_SQLite/Database_SQLite.h index 4a00c18..16af14e 100644 --- a/XEngine_Source/AuthorizeModule_Database/Database_SQLite/Database_SQLite.h +++ b/XEngine_Source/AuthorizeModule_Database/Database_SQLite/Database_SQLite.h @@ -51,5 +51,5 @@ class CDatabase_SQLite BOOL Database_SQLite_UserPayTime(LPCTSTR lpszUserName, LPCTSTR lpszUserTime, LPCTSTR lpszCardTime, ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE en_AuthSerialType, ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE en_AuthUserType); private: BOOL m_bChange; - XHDATA xhData; //数据库句柄 + XNETHANDLE xhData; //数据库句柄 }; From 63cf64fcd8aec64b57571bff09e53a50da56eef5 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Tue, 17 Jan 2023 13:20:41 +0800 Subject: [PATCH 04/24] added:local cdkey protocol parse supported --- .../AuthorizeModule_Protocol.def | 3 +- .../Protocol_Define.h | 26 +++- .../Protocol_Parse/Protocol_Parse.cpp | 133 ++++++++++++++++++ .../Protocol_Parse/Protocol_Parse.h | 1 + .../AuthorizeModule_Protocol/pch.cpp | 4 + 5 files changed, 165 insertions(+), 2 deletions(-) diff --git a/XEngine_Source/AuthorizeModule_Protocol/AuthorizeModule_Protocol.def b/XEngine_Source/AuthorizeModule_Protocol/AuthorizeModule_Protocol.def index a46d153..d8af1ad 100644 --- a/XEngine_Source/AuthorizeModule_Protocol/AuthorizeModule_Protocol.def +++ b/XEngine_Source/AuthorizeModule_Protocol/AuthorizeModule_Protocol.def @@ -27,4 +27,5 @@ EXPORTS Protocol_Parse_HttpParseTime Protocol_Parse_HttpParseSwitch Protocol_Parse_HttpParsePos - Protocol_Parse_HttpParseBanned \ No newline at end of file + Protocol_Parse_HttpParseBanned + Protocol_Parse_HttpParseCDKey \ No newline at end of file diff --git a/XEngine_Source/AuthorizeModule_Protocol/Protocol_Define.h b/XEngine_Source/AuthorizeModule_Protocol/Protocol_Define.h index e48ded7..f11353b 100644 --- a/XEngine_Source/AuthorizeModule_Protocol/Protocol_Define.h +++ b/XEngine_Source/AuthorizeModule_Protocol/Protocol_Define.h @@ -670,4 +670,28 @@ extern "C" BOOL Protocol_Parse_HttpParsePos(LPCTSTR lpszMsgBuffer, int nMsgLen, 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL Protocol_Parse_HttpParseBanned(LPCTSTR lpszMsgBuffer, int nMsgLen, AUTHREG_BANNED* pSt_AuthBanned); \ No newline at end of file +extern "C" BOOL Protocol_Parse_HttpParseBanned(LPCTSTR lpszMsgBuffer, int nMsgLen, AUTHREG_BANNED* pSt_AuthBanned); +/******************************************************************** +函数名称:Protocol_Parse_HttpParseCDKey +函数功能:解析CDKEY + 参数.一:lpszMsgBuffer + In/Out:In + 类型:常量字符指针 + 可空:N + 意思:输入要解析的缓冲区 + 参数.二:nMsgLen + In/Out:In + 类型:整数型 + 可空:N + 意思:输入缓冲区大小 + 参数.三:pSt_Authorize + In/Out:Out + 类型:数据结构指针 + 可空:N + 意思:输出解析后的信息 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +extern "C" BOOL Protocol_Parse_HttpParseCDKey(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_AUTHORIZE_LOCAL* pSt_Authorize); \ No newline at end of file diff --git a/XEngine_Source/AuthorizeModule_Protocol/Protocol_Parse/Protocol_Parse.cpp b/XEngine_Source/AuthorizeModule_Protocol/Protocol_Parse/Protocol_Parse.cpp index 39a5a23..4ad3de3 100644 --- a/XEngine_Source/AuthorizeModule_Protocol/Protocol_Parse/Protocol_Parse.cpp +++ b/XEngine_Source/AuthorizeModule_Protocol/Protocol_Parse/Protocol_Parse.cpp @@ -934,4 +934,137 @@ BOOL CProtocol_Parse::Protocol_Parse_HttpParseBanned(LPCTSTR lpszMsgBuffer, int _tcscpy(pSt_AuthBanned->tszUserName, st_JsonObject["tszUserName"].asCString()); } return TRUE; +} +/******************************************************************** +函数名称:Protocol_Parse_HttpParseCDKey +函数功能:解析CDKEY + 参数.一:lpszMsgBuffer + In/Out:In + 类型:常量字符指针 + 可空:N + 意思:输入要解析的缓冲区 + 参数.二:nMsgLen + In/Out:In + 类型:整数型 + 可空:N + 意思:输入缓冲区大小 + 参数.三:pSt_Authorize + In/Out:Out + 类型:数据结构指针 + 可空:N + 意思:输出解析后的信息 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +BOOL CProtocol_Parse::Protocol_Parse_HttpParseCDKey(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_AUTHORIZE_LOCAL* pSt_Authorize) +{ + Protocol_IsErrorOccur = FALSE; + + if ((NULL == lpszMsgBuffer) || (NULL == pSt_Authorize)) + { + Protocol_IsErrorOccur = TRUE; + Protocol_dwErrorCode = ERROR_AUTHORIZE_MODULE_PROTOCOL_PARAMENT; + return FALSE; + } + Json::Value st_JsonRoot; + JSONCPP_STRING st_JsonError; + Json::CharReaderBuilder st_ReaderBuilder; + //解析JSON + std::unique_ptr const pSt_JsonReader(st_ReaderBuilder.newCharReader()); + if (!pSt_JsonReader->parse(lpszMsgBuffer, lpszMsgBuffer + nMsgLen, &st_JsonRoot, &st_JsonError)) + { + Protocol_IsErrorOccur = TRUE; + Protocol_dwErrorCode = ERROR_AUTHORIZE_MODULE_PROTOCOL_PARSE; + return FALSE; + } + + if (!st_JsonRoot["tszAddr"].isNull()) + { + _tcscpy(pSt_Authorize->tszAddr, st_JsonRoot["tszAddr"].asCString()); + } + if (!st_JsonRoot["nPort"].isNull()) + { + pSt_Authorize->nPort = st_JsonRoot["nPort"].asInt(); + } + //应用信息 + Json::Value st_JsonAPPInfo = st_JsonRoot["st_AuthAppInfo"]; + if (!st_JsonAPPInfo["nExecTime"].isNull()) + { + pSt_Authorize->st_AuthAppInfo.nExecTime = st_JsonAPPInfo["nExecTime"].asInt(); + } + if (!st_JsonAPPInfo["bInit"].isNull()) + { + pSt_Authorize->st_AuthAppInfo.bInit = st_JsonAPPInfo["bInit"].asBool(); + } + if (!st_JsonAPPInfo["tszAppName"].isNull()) + { + _tcscpy(pSt_Authorize->st_AuthAppInfo.tszAppName, st_JsonAPPInfo["tszAppName"].asCString()); + } + if (!st_JsonAPPInfo["tszAppVer"].isNull()) + { + _tcscpy(pSt_Authorize->st_AuthAppInfo.tszAppVer, st_JsonAPPInfo["tszAppVer"].asCString()); + } + //注册信息 + Json::Value st_JsonREGInfo = st_JsonRoot["st_AuthRegInfo"]; + if (!st_JsonREGInfo["nHasTime"].isNull()) + { + pSt_Authorize->st_AuthRegInfo.nHasTime = (ENUM_HELPCOMPONENTS_AUTHORIZE_REG_TYPE)st_JsonREGInfo["nHasTime"].asInt(); + } + if (!st_JsonREGInfo["enSerialType"].isNull()) + { + pSt_Authorize->st_AuthRegInfo.enSerialType = (ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE)st_JsonREGInfo["enSerialType"].asInt(); + } + if (!st_JsonREGInfo["enRegType"].isNull()) + { + pSt_Authorize->st_AuthRegInfo.enRegType = (ENUM_HELPCOMPONENTS_AUTHORIZE_REG_TYPE)st_JsonREGInfo["enRegType"].asInt(); + } + if (!st_JsonREGInfo["enHWType"].isNull()) + { + pSt_Authorize->st_AuthRegInfo.enHWType = (ENUM_HELPCOMPONENTS_AUTHORIZE_HW_TYPE)st_JsonREGInfo["enHWType"].asInt(); + } + if (!st_JsonREGInfo["enVModeType"].isNull()) + { + pSt_Authorize->st_AuthRegInfo.enVModeType = (ENUM_HELPCOMPONENTS_AUTHORIZE_VERMODE_TYPE)st_JsonREGInfo["enVModeType"].asInt(); + } + if (!st_JsonREGInfo["tszHardware"].isNull()) + { + _tcscpy(pSt_Authorize->st_AuthRegInfo.tszHardware, st_JsonREGInfo["tszHardware"].asCString()); + } + if (!st_JsonREGInfo["tszCreateTime"].isNull()) + { + _tcscpy(pSt_Authorize->st_AuthRegInfo.tszCreateTime, st_JsonREGInfo["tszCreateTime"].asCString()); + } + if (!st_JsonREGInfo["tszRegisterTime"].isNull()) + { + _tcscpy(pSt_Authorize->st_AuthRegInfo.tszRegisterTime, st_JsonREGInfo["tszRegisterTime"].asCString()); + } + if (!st_JsonREGInfo["tszLeftTime"].isNull()) + { + _tcscpy(pSt_Authorize->st_AuthRegInfo.tszLeftTime, st_JsonREGInfo["tszLeftTime"].asCString()); + } + if (!st_JsonREGInfo["tszStartTime"].isNull()) + { + _tcscpy(pSt_Authorize->st_AuthRegInfo.tszStartTime, st_JsonREGInfo["tszStartTime"].asCString()); + } + if (!st_JsonREGInfo["tszExpiryTime"].isNull()) + { + _tcscpy(pSt_Authorize->st_AuthRegInfo.tszExpiryTime, st_JsonREGInfo["tszExpiryTime"].asCString()); + } + //CDKEY用户信息 + Json::Value st_JsonUserInfo = st_JsonRoot["st_AuthUserInfo"]; + if (!st_JsonUserInfo["tszUserName"].isNull()) + { + _tcscpy(pSt_Authorize->st_AuthUserInfo.tszUserName, st_JsonUserInfo["tszUserName"].asCString()); + } + if (!st_JsonUserInfo["tszUserContact"].isNull()) + { + _tcscpy(pSt_Authorize->st_AuthUserInfo.tszUserContact, st_JsonUserInfo["tszUserContact"].asCString()); + } + if (!st_JsonUserInfo["tszCustom"].isNull()) + { + _tcscpy(pSt_Authorize->st_AuthUserInfo.tszCustom, st_JsonUserInfo["tszCustom"].asCString()); + } + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/AuthorizeModule_Protocol/Protocol_Parse/Protocol_Parse.h b/XEngine_Source/AuthorizeModule_Protocol/Protocol_Parse/Protocol_Parse.h index 52055bc..a5a3721 100644 --- a/XEngine_Source/AuthorizeModule_Protocol/Protocol_Parse/Protocol_Parse.h +++ b/XEngine_Source/AuthorizeModule_Protocol/Protocol_Parse/Protocol_Parse.h @@ -32,6 +32,7 @@ class CProtocol_Parse BOOL Protocol_Parse_HttpParseSwitch(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_FUNCTIONSWITCH* pSt_FunSwitch); BOOL Protocol_Parse_HttpParsePos(LPCTSTR lpszMsgBuffer, int nMsgLen, int* pInt_PosStart, int* pInt_PosEnd); BOOL Protocol_Parse_HttpParseBanned(LPCTSTR lpszMsgBuffer, int nMsgLen, AUTHREG_BANNED* pSt_AuthBanned); + BOOL Protocol_Parse_HttpParseCDKey(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_AUTHORIZE_LOCAL* pSt_Authorize); protected: private: }; \ No newline at end of file diff --git a/XEngine_Source/AuthorizeModule_Protocol/pch.cpp b/XEngine_Source/AuthorizeModule_Protocol/pch.cpp index d8cbff3..3af1f33 100644 --- a/XEngine_Source/AuthorizeModule_Protocol/pch.cpp +++ b/XEngine_Source/AuthorizeModule_Protocol/pch.cpp @@ -129,4 +129,8 @@ extern "C" BOOL Protocol_Parse_HttpParsePos(LPCTSTR lpszMsgBuffer, int nMsgLen, extern "C" BOOL Protocol_Parse_HttpParseBanned(LPCTSTR lpszMsgBuffer, int nMsgLen, AUTHREG_BANNED * pSt_AuthBanned) { return m_ProtocolParse.Protocol_Parse_HttpParseBanned(lpszMsgBuffer, nMsgLen, pSt_AuthBanned); +} +extern "C" BOOL Protocol_Parse_HttpParseCDKey(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_AUTHORIZE_LOCAL * pSt_Authorize) +{ + return m_ProtocolParse.Protocol_Parse_HttpParseCDKey(lpszMsgBuffer, nMsgLen, pSt_Authorize); } \ No newline at end of file From 13cfc2e29b8f5a1108eb5cc480783b132781d6c0 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Wed, 18 Jan 2023 12:57:09 +0800 Subject: [PATCH 05/24] added:local cdkey support --- .../AuthorizeHTTP_CDKey.cpp | 68 +++++++++++++++++++ .../AuthorizeHTTP_Post/AuthorizeHTTP_CDKey.h | 3 + .../XEngine_AuthorizeService/Authorize_Hdr.h | 1 + .../Authorize_HttpTask.cpp | 5 ++ .../XEngine_AuthorizeService.vcxproj | 2 + .../XEngine_AuthorizeService.vcxproj.filters | 6 ++ 6 files changed, 85 insertions(+) create mode 100644 XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_CDKey.cpp create mode 100644 XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_CDKey.h diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_CDKey.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_CDKey.cpp new file mode 100644 index 0000000..f0aa271 --- /dev/null +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_CDKey.cpp @@ -0,0 +1,68 @@ +#include "../Authorize_Hdr.h" + +BOOL XEngine_AuthorizeHTTP_CDKey(LPCTSTR lpszClientAddr, LPCTSTR lpszAPIName, LPCTSTR lpszMsgBuffer, int nMsgLen, LPCTSTR lpszPass) +{ + int nSDLen = 4096; + int nRVLen = 4096; + TCHAR tszSDBuffer[4096]; + TCHAR tszRVBuffer[4096]; + LPCTSTR lpszAPICreate = _T("create"); + LPCTSTR lpszAPIAuth = _T("auth"); + + memset(tszSDBuffer, '\0', sizeof(tszSDBuffer)); + memset(tszRVBuffer, '\0', sizeof(tszRVBuffer)); + + if (0 == _tcsnicmp(lpszAPICreate, lpszAPIName, _tcslen(lpszAPICreate))) + { + XENGINE_AUTHORIZE_LOCAL st_Authorize; + memset(&st_Authorize, '\0', sizeof(XENGINE_AUTHORIZE_LOCAL)); + + Protocol_Parse_HttpParseCDKey(lpszMsgBuffer, nMsgLen, &st_Authorize); + if (!Authorize_Local_WriteMemory(tszRVBuffer,&nRVLen, &st_Authorize)) + { + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 406, "Not Acceptable,write key failed"); + XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("HTTP客户端:%s,请求创建CDKEY协议失败,服务器内部错误:%lX"), lpszClientAddr, Authorize_GetLastError()); + return FALSE; + } + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen); + XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("HTTP客户端:%s,请求创建CDKEY成功,APP名:%s,APP版本:%s"), lpszClientAddr, st_Authorize.st_AuthAppInfo.tszAppName, st_Authorize.st_AuthAppInfo.tszAppVer); + } + else if (0 == _tcsnicmp(lpszAPIAuth, lpszAPIName, _tcslen(lpszAPIAuth))) + { + XENGINE_AUTHORIZE_LOCAL st_Authorize; + memset(&st_Authorize, '\0', sizeof(XENGINE_AUTHORIZE_LOCAL)); + + Authorize_Local_ReadMemory(lpszMsgBuffer, nMsgLen, &st_Authorize); + //授权 + if (ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE_CUSTOM == st_Authorize.st_AuthRegInfo.enSerialType) + { + XENGINE_LIBTIMER st_LibTime; + memset(&st_LibTime, '\0', sizeof(XENGINE_LIBTIMER)); + + BaseLib_OperatorTime_StrToTime(st_Authorize.st_AuthRegInfo.tszLeftTime, &st_LibTime); + Authorize_Local_BuildKeyTime(&st_Authorize, 0, &st_LibTime); + } + else + { + Authorize_Local_BuildKeyTime(&st_Authorize, _ttoi64(st_Authorize.st_AuthRegInfo.tszLeftTime)); + } + Authorize_Local_WriteMemory(tszRVBuffer, &nRVLen, &st_Authorize); + //加密 + if (NULL != lpszPass) + { + OPenSsl_XCrypto_Encoder(tszRVBuffer, &nRVLen, (UCHAR*)tszSDBuffer, lpszPass); + nSDLen = nRVLen; + } + XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("HTTP客户端:%s,请求授权CDKEY成功,APP名:%s,APP版本:%s,授权期限:%s"), lpszClientAddr, st_Authorize.st_AuthAppInfo.tszAppName, st_Authorize.st_AuthAppInfo.tszAppVer, st_Authorize.st_AuthRegInfo.tszLeftTime); + } + else + { + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 404, "Not support protocol"); + XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("HTTP客户端:%s,请求了一条未知的子协议:%s"), lpszClientAddr, lpszAPIName); + } + return TRUE; +} \ No newline at end of file diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_CDKey.h b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_CDKey.h new file mode 100644 index 0000000..3b46cd2 --- /dev/null +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_CDKey.h @@ -0,0 +1,3 @@ +#pragma once + +BOOL XEngine_AuthorizeHTTP_CDKey(LPCTSTR lpszClientAddr, LPCTSTR lpszAPIName, LPCTSTR lpszMsgBuffer, int nMsgLen, LPCTSTR lpszPass = NULL); \ No newline at end of file diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Hdr.h b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Hdr.h index a405429..f29c1dd 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Hdr.h +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Hdr.h @@ -82,6 +82,7 @@ extern XENGINE_FUNCTIONSWITCH st_FunSwitch; #include "AuthorizeHTTP_Post/AuthorizeHTTP_Pass.h" #include "AuthorizeHTTP_Post/AuthorizeHTTP_Switch.h" #include "AuthorizeHTTP_Post/AuthorizeHTTP_Banned.h" +#include "AuthorizeHTTP_Post/AuthorizeHTTP_CDKey.h" #include "AuthorizeHTTP_Get/AuthorizeHTTP_Token.h" #ifdef _WINDOWS diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_HttpTask.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_HttpTask.cpp index ff46ecb..a189aba 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_HttpTask.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_HttpTask.cpp @@ -83,6 +83,7 @@ BOOL XEngine_Client_HttpTask(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int LPCTSTR lpszAPIVerPass = _T("pass"); LPCTSTR lpszAPIVerSwitch = _T("switch"); LPCTSTR lpszAPIVerBanned = _T("banned"); + LPCTSTR lpszAPIVerCDKey = _T("cdkey"); memset(tszAPIType, '\0', sizeof(tszAPIType)); memset(tszAPIVer, '\0', sizeof(tszAPIVer)); @@ -193,6 +194,10 @@ BOOL XEngine_Client_HttpTask(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int } XEngine_AuthorizeHTTP_Banned(lpszClientAddr, tszAPIName, lpszMsgBuffer, nMsgLen); } + else if (0 == _tcsnicmp(lpszAPIVerCDKey, tszAPIVer, _tcslen(lpszAPIVerCDKey))) + { + XEngine_AuthorizeHTTP_CDKey(lpszClientAddr, tszAPIName, lpszMsgBuffer, nMsgLen); + } } else if (0 == _tcsnicmp(lpszMethodGet, pSt_HTTPParament->tszHttpMethod, _tcslen(lpszMethodGet))) { diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.vcxproj b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.vcxproj index 6ddc6b9..05288f5 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.vcxproj +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.vcxproj @@ -152,6 +152,7 @@ + @@ -168,6 +169,7 @@ + diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.vcxproj.filters b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.vcxproj.filters index 5fec005..3f3fbff 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.vcxproj.filters +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.vcxproj.filters @@ -69,6 +69,9 @@ 源文件\AuthorizeHTTP_Post + + 源文件\AuthorizeHTTP_Post + @@ -113,5 +116,8 @@ 头文件\AuthorizeHTTP_Post + + 头文件\AuthorizeHTTP_Post + \ No newline at end of file From 89fa75d931e3a8576acbc021936e63d459982986 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Wed, 18 Jan 2023 13:56:14 +0800 Subject: [PATCH 06/24] update:vscopy file --- XEngine_Source/VSCopy_x64.bat | 2 +- XEngine_Source/VSCopy_x86.bat | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/XEngine_Source/VSCopy_x64.bat b/XEngine_Source/VSCopy_x64.bat index 9e160af..4699481 100644 --- a/XEngine_Source/VSCopy_x64.bat +++ b/XEngine_Source/VSCopy_x64.bat @@ -12,7 +12,7 @@ copy /y "%XEngine_Lib64%\XEngine_HelpComponents\HelpComponents_Authorize.dll" ". copy /y "%XEngine_Lib64%\XEngine_RfcComponents\RfcComponents_WSProtocol.dll" "./" copy /y "%XEngine_Lib64%\XEngine_RfcComponents\RfcComponents_HttpServer.dll" "./" -copy /y "%XEngine_Lib64%\XEngine_NetHelp\NetHelp_APIHelp.dll" "./" +copy /y "%XEngine_Lib64%\XEngine_NetHelp\NetHelp_APIClient.dll" "./" copy /y "%XEngine_Lib64%\XEngine_SystemSdk\XEngine_SystemApi.dll" "./" copy /y "%XEngine_Lib64%\XEngine_HelpComponents\bson-1.0.dll" "./" diff --git a/XEngine_Source/VSCopy_x86.bat b/XEngine_Source/VSCopy_x86.bat index 12d4d08..06c7033 100644 --- a/XEngine_Source/VSCopy_x86.bat +++ b/XEngine_Source/VSCopy_x86.bat @@ -12,7 +12,7 @@ copy /y "%XEngine_Lib32%\XEngine_HelpComponents\HelpComponents_Authorize.dll" ". copy /y "%XEngine_Lib32%\XEngine_RfcComponents\RfcComponents_WSProtocol.dll" "./" copy /y "%XEngine_Lib32%\XEngine_RfcComponents\RfcComponents_HttpServer.dll" "./" -copy /y "%XEngine_Lib32%\XEngine_NetHelp\NetHelp_APIHelp.dll" "./" +copy /y "%XEngine_Lib32%\XEngine_NetHelp\NetHelp_APIClient.dll" "./" copy /y "%XEngine_Lib32%\XEngine_SystemSdk\XEngine_SystemApi.dll" "./" copy /y "%XEngine_Lib32%\XEngine_HelpComponents\bson-1.0.dll" "./" From d88f5deb6dd758acd29e2f3df9ec14331292f6b2 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Wed, 1 Feb 2023 17:13:34 +0800 Subject: [PATCH 07/24] fixed:management program have not device type when login --- .../Authorize_Dialog/Dialog_Config.cpp | 4 ++-- .../XEngineAuthorizeApp.aps | Bin 120276 -> 102436 bytes .../AuthorizeHTTP_Get/AuthorizeHTTP_Token.cpp | 2 +- .../AuthorizeHTTP_CDKey.cpp | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Config.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Config.cpp index 9d01d4c..3c6e5d6 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Config.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Config.cpp @@ -96,8 +96,8 @@ void CDialog_Config::OnBnClickedButton1() m_EditIPPort.GetWindowText(m_StrIPPort); m_EditUser.GetWindowText(m_StrUser); m_EditPass.GetWindowText(m_StrPass); - - _stprintf(tszUrlAddr, _T("http://%s:%s/api?function=login&user=%s&pass=%s"), m_StrIPAddr.GetBuffer(), m_StrIPPort.GetBuffer(), m_StrUser.GetBuffer(), m_StrPass.GetBuffer()); + + _stprintf(tszUrlAddr, _T("http://%s:%s/api?function=login&user=%s&pass=%s&device=%d"), m_StrIPAddr.GetBuffer(), m_StrIPPort.GetBuffer(), m_StrUser.GetBuffer(), m_StrPass.GetBuffer(), ENUM_PROTOCOL_FOR_DEVICE_TYPE_PC_WINDOWS); //请求用户信息 int nMsgLen = 0; CHAR* ptszMsgBuffer = NULL; diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngineAuthorizeApp.aps b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngineAuthorizeApp.aps index 13b5bb6322e5de9c3fa1ef48a44fd59e55e5a94c..6a72774c02f8aabf48b180e568eee9cf901a4887 100644 GIT binary patch delta 2344 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

1q-+Z!9E|QWC!f^f+YT;Urr1V<0>EK$9^*h(f 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 Date: Thu, 2 Feb 2023 10:14:15 +0800 Subject: [PATCH 08/24] modify:root user is not allowed to modify --- .../Authorize_Dialog/Dialog_Modify.cpp | 5 +++++ .../XEngineAuthorizeApp.aps | Bin 102436 -> 120824 bytes 2 files changed, 5 insertions(+) diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Modify.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Modify.cpp index d1ce5ec..efbadf8 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Modify.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Modify.cpp @@ -159,6 +159,11 @@ BOOL CDialog_Modify::OnInitDialog() m_ComboSerial.SetCurSel(st_JsonObject["enSerialType"].asInt()); m_ComboLeave.SetCurSel(st_JsonObject["st_UserInfo"]["nUserLevel"].asInt() + 1); + + if (ENUM_XENGINE_PROTOCOLHDR_LEVEL_TYPE_ROOT == st_JsonObject["st_UserInfo"]["nUserLevel"].asInt()) + { + m_ComboLeave.EnableWindow(FALSE); + } } return TRUE; // return TRUE unless you set the focus to a control // 异常: OCX 属性页应返回 FALSE diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngineAuthorizeApp.aps b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngineAuthorizeApp.aps index 6a72774c02f8aabf48b180e568eee9cf901a4887..5e1d9f08ee92eddea758cca39a063c6aee69af32 100644 GIT binary patch delta 11201 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 From fd8097807475e52d613bde2e79054a0db95bfccd Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Thu, 2 Feb 2023 11:24:37 +0800 Subject: [PATCH 09/24] modify:open user modify window when double click user list --- .../Authorize_Dialog/Dialog_User.cpp | 10 ++++++++++ .../Authorize_Dialog/Dialog_User.h | 1 + 2 files changed, 11 insertions(+) diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_User.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_User.cpp index 6cee5a6..824a807 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_User.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_User.cpp @@ -41,6 +41,7 @@ BEGIN_MESSAGE_MAP(CDialog_User, CDialogEx) ON_BN_CLICKED(IDC_BUTTON4, &CDialog_User::OnBnClickedButton4) ON_BN_CLICKED(IDC_CHECK2, &CDialog_User::OnBnClickedCheck2) ON_BN_CLICKED(IDC_BUTTON5, &CDialog_User::OnBnClickedButton5) + ON_NOTIFY(NM_DBLCLK, IDC_LIST1, &CDialog_User::OnNMDblclkList1) END_MESSAGE_MAP() @@ -432,3 +433,12 @@ void CDialog_User::OnBnClickedButton5() CDialog_Modify m_DlgModify; m_DlgModify.DoModal(); } + + +void CDialog_User::OnNMDblclkList1(NMHDR* pNMHDR, LRESULT* pResult) +{ + LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast(pNMHDR); + // TODO: 在此添加控件通知处理程序代码 + OnBnClickedButton4(); + *pResult = 0; +} diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_User.h b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_User.h index 1750595..bbe3963 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_User.h +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_User.h @@ -40,4 +40,5 @@ class CDialog_User : public CDialogEx afx_msg void OnBnClickedButton5(); CEdit m_EditPosStart; CEdit m_EditPosEnd; + afx_msg void OnNMDblclkList1(NMHDR* pNMHDR, LRESULT* pResult); }; From bcf42a9ef3c35298c7f43b2a01b10140b723f546 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Thu, 2 Feb 2023 13:53:45 +0800 Subject: [PATCH 10/24] added:banned function support left time --- .../Database_SQLite/Database_SQLite.cpp | 20 +++++++++++++------ .../Protocol_Packet/Protocol_Packet.cpp | 6 ++++-- .../Protocol_Parse/Protocol_Parse.cpp | 8 ++++++-- XEngine_Source/XAuth_Protocol.h | 3 ++- 4 files changed, 26 insertions(+), 11 deletions(-) diff --git a/XEngine_Source/AuthorizeModule_Database/Database_SQLite/Database_SQLite.cpp b/XEngine_Source/AuthorizeModule_Database/Database_SQLite/Database_SQLite.cpp index e26e048..2ac0d66 100644 --- a/XEngine_Source/AuthorizeModule_Database/Database_SQLite/Database_SQLite.cpp +++ b/XEngine_Source/AuthorizeModule_Database/Database_SQLite/Database_SQLite.cpp @@ -1074,11 +1074,11 @@ BOOL CDatabase_SQLite::Database_SQLite_BannedInsert(AUTHREG_BANNED* pSt_Banned) //处理的类型 if (_tcslen(pSt_Banned->tszUserName) > 0) { - _stprintf_s(tszSQLStatement, _T("INSERT INTO Authorize_BannedUser(tszUserName,tszCreateTime) VALUES('%s',datetime('now', 'localtime'))"), pSt_Banned->tszUserName); + _stprintf_s(tszSQLStatement, _T("INSERT INTO Authorize_BannedUser(tszUserName,tszLeftTime,tszCreateTime) VALUES('%s','%s',datetime('now', 'localtime'))"), pSt_Banned->tszUserName, pSt_Banned->tszLeftTime); } else { - _stprintf_s(tszSQLStatement, _T("INSERT INTO Authorize_BannedAddr(tszIPStart,tszIPEnd,tszCreateTime) VALUES('%s','%s',datetime('now', 'localtime'))"), pSt_Banned->tszIPStart, pSt_Banned->tszIPEnd); + _stprintf_s(tszSQLStatement, _T("INSERT INTO Authorize_BannedAddr(tszIPStart,tszIPEnd,tszLeftTime,tszCreateTime) VALUES('%s','%s','%s',datetime('now', 'localtime'))"), pSt_Banned->tszIPStart, pSt_Banned->tszIPEnd, pSt_Banned->tszLeftTime); } //插入数据库 if (!DataBase_SQLite_Exec(xhData, tszSQLStatement)) @@ -1201,8 +1201,11 @@ BOOL CDatabase_SQLite::Database_SQLite_BannedList(AUTHREG_BANNED*** pppSt_Banned //结束地址 _tcscpy(st_Banned.tszIPEnd, ppszResult[nFliedValue]); nFliedValue++; + //过期时间 + _tcscpy(st_Banned.tszLeftTime, ppszResult[nFliedValue]); + nFliedValue++; //注册时间 - _tcscpy(st_Banned.tszTime, ppszResult[nFliedValue]); + _tcscpy(st_Banned.tszCreateTime, ppszResult[nFliedValue]); nFliedValue++; stl_ListAddr.push_back(st_Banned); @@ -1233,8 +1236,11 @@ BOOL CDatabase_SQLite::Database_SQLite_BannedList(AUTHREG_BANNED*** pppSt_Banned //用户名 _tcscpy(st_Banned.tszUserName, ppszResult[nFliedValue]); nFliedValue++; + //过期时间 + _tcscpy(st_Banned.tszLeftTime, ppszResult[nFliedValue]); + nFliedValue++; //注册时间 - _tcscpy(st_Banned.tszTime, ppszResult[nFliedValue]); + _tcscpy(st_Banned.tszCreateTime, ppszResult[nFliedValue]); nFliedValue++; stl_ListUser.push_back(st_Banned); @@ -1252,14 +1258,16 @@ BOOL CDatabase_SQLite::Database_SQLite_BannedList(AUTHREG_BANNED*** pppSt_Banned (*pppSt_BannedAddr)[i]->nID = stl_ListIterator->nID; _tcscpy((*pppSt_BannedAddr)[i]->tszIPStart, stl_ListIterator->tszIPStart); _tcscpy((*pppSt_BannedAddr)[i]->tszIPEnd, stl_ListIterator->tszIPEnd); - _tcscpy((*pppSt_BannedAddr)[i]->tszTime, stl_ListIterator->tszTime); + _tcscpy((*pppSt_BannedAddr)[i]->tszLeftTime, stl_ListIterator->tszLeftTime); + _tcscpy((*pppSt_BannedAddr)[i]->tszCreateTime, stl_ListIterator->tszCreateTime); } stl_ListIterator = stl_ListUser.begin(); for (int i = 0; stl_ListIterator != stl_ListUser.end(); stl_ListIterator++, i++) { (*pppSt_BannedUser)[i]->nID = stl_ListIterator->nID; _tcscpy((*pppSt_BannedUser)[i]->tszUserName, stl_ListIterator->tszUserName); - _tcscpy((*pppSt_BannedUser)[i]->tszTime, stl_ListIterator->tszTime); + _tcscpy((*pppSt_BannedAddr)[i]->tszLeftTime, stl_ListIterator->tszLeftTime); + _tcscpy((*pppSt_BannedUser)[i]->tszCreateTime, stl_ListIterator->tszCreateTime); } stl_ListAddr.clear(); diff --git a/XEngine_Source/AuthorizeModule_Protocol/Protocol_Packet/Protocol_Packet.cpp b/XEngine_Source/AuthorizeModule_Protocol/Protocol_Packet/Protocol_Packet.cpp index 1cd8520..c6eab5c 100644 --- a/XEngine_Source/AuthorizeModule_Protocol/Protocol_Packet/Protocol_Packet.cpp +++ b/XEngine_Source/AuthorizeModule_Protocol/Protocol_Packet/Protocol_Packet.cpp @@ -646,7 +646,8 @@ BOOL CProtocol_Packet::Protocol_Packet_HttpBanned(TCHAR* ptszMsgBuffer, int* pIn { Json::Value st_JsonObject; st_JsonObject["nID"] = (Json::Value::Int64)(*pppSt_BannedUser)[i]->nID; - st_JsonObject["tszTime"] = (*pppSt_BannedUser)[i]->tszTime; + st_JsonObject["tszLeftTime"] = (*pppSt_BannedUser)[i]->tszLeftTime; + st_JsonObject["tszCreateTime"] = (*pppSt_BannedUser)[i]->tszCreateTime; st_JsonObject["tszUserName"] = (*pppSt_BannedUser)[i]->tszUserName; st_JsonUser.append(st_JsonObject); } @@ -656,7 +657,8 @@ BOOL CProtocol_Packet::Protocol_Packet_HttpBanned(TCHAR* ptszMsgBuffer, int* pIn st_JsonObject["nID"] = (Json::Value::Int64)(*pppSt_BannedAddr)[i]->nID; st_JsonObject["tszIPEnd"] = (*pppSt_BannedAddr)[i]->tszIPEnd; st_JsonObject["tszIPStart"] = (*pppSt_BannedAddr)[i]->tszIPStart; - st_JsonObject["tszTime"] = (*pppSt_BannedAddr)[i]->tszTime; + st_JsonObject["tszLeftTime"] = (*pppSt_BannedAddr)[i]->tszLeftTime; + st_JsonObject["tszCreateTime"] = (*pppSt_BannedAddr)[i]->tszCreateTime; st_JsonAddr.append(st_JsonObject); } st_JsonRoot["msg"] = "success"; diff --git a/XEngine_Source/AuthorizeModule_Protocol/Protocol_Parse/Protocol_Parse.cpp b/XEngine_Source/AuthorizeModule_Protocol/Protocol_Parse/Protocol_Parse.cpp index 4ad3de3..94b5437 100644 --- a/XEngine_Source/AuthorizeModule_Protocol/Protocol_Parse/Protocol_Parse.cpp +++ b/XEngine_Source/AuthorizeModule_Protocol/Protocol_Parse/Protocol_Parse.cpp @@ -925,9 +925,13 @@ BOOL CProtocol_Parse::Protocol_Parse_HttpParseBanned(LPCTSTR lpszMsgBuffer, int { _tcscpy(pSt_AuthBanned->tszIPStart, st_JsonObject["tszIPStart"].asCString()); } - if (!st_JsonObject["tszTime"].isNull()) + if (!st_JsonObject["tszLeftTime"].isNull()) { - _tcscpy(pSt_AuthBanned->tszTime, st_JsonObject["tszTime"].asCString()); + _tcscpy(pSt_AuthBanned->tszLeftTime, st_JsonObject["tszLeftTime"].asCString()); + } + if (!st_JsonObject["tszCreateTime"].isNull()) + { + _tcscpy(pSt_AuthBanned->tszCreateTime, st_JsonObject["tszCreateTime"].asCString()); } if (!st_JsonObject["tszUserName"].isNull()) { diff --git a/XEngine_Source/XAuth_Protocol.h b/XEngine_Source/XAuth_Protocol.h index 1787e85..2be50c1 100644 --- a/XEngine_Source/XAuth_Protocol.h +++ b/XEngine_Source/XAuth_Protocol.h @@ -84,5 +84,6 @@ typedef struct CHAR tszUserName[MAX_PATH]; //用户名 CHAR tszIPStart[128]; //起始IP CHAR tszIPEnd[128]; //结束IP - CHAR tszTime[64]; //时间 + CHAR tszLeftTime[64]; //过期时间 + CHAR tszCreateTime[64]; //创建时间 }AUTHREG_BANNED, * LPAUTHREG_BANNED; \ No newline at end of file From 588de1c7b5891d95bff03b12ef216e80f54a594b Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Thu, 2 Feb 2023 14:22:58 +0800 Subject: [PATCH 11/24] added:lefe time for management app --- .../Authorize_Dialog/Dialog_Banned.cpp | 29 ++++++++++++++++++ .../Authorize_Dialog/Dialog_Banned.h | 3 ++ .../XEngineAuthorizeApp.aps | Bin 120824 -> 121012 bytes .../XEngineAuthorizeApp.rc | Bin 29624 -> 30170 bytes .../XEngine_AuthorizeApp/resource.h | 3 +- 5 files changed, 34 insertions(+), 1 deletion(-) diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.cpp index 87498a5..e59327e 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.cpp @@ -32,6 +32,8 @@ void CDialog_Banned::DoDataExchange(CDataExchange* pDX) DDX_Control(pDX, IDC_LIST1, m_ListAddr); DDX_Control(pDX, IDC_LIST2, m_ListUser); DDX_Control(pDX, IDC_EDIT1, m_EditUser); + DDX_Control(pDX, IDC_DATETIMEPICKER1, m_DataTime); + DDX_Control(pDX, IDC_CHECK1, m_BtnCheckTime); } @@ -41,6 +43,7 @@ BEGIN_MESSAGE_MAP(CDialog_Banned, CDialogEx) ON_BN_CLICKED(IDC_BUTTON2, &CDialog_Banned::OnBnClickedButton2) ON_BN_CLICKED(IDC_BUTTON4, &CDialog_Banned::OnBnClickedButton4) ON_BN_CLICKED(IDC_BUTTON3, &CDialog_Banned::OnBnClickedButton3) + ON_BN_CLICKED(IDC_CHECK1, &CDialog_Banned::OnBnClickedCheck1) END_MESSAGE_MAP() @@ -88,6 +91,9 @@ BOOL CDialog_Banned::OnInitDialog() m_ListUser.InsertColumn(1, _T("用户名"), LVCFMT_LEFT, 120); m_ListUser.InsertColumn(2, _T("创建日期"), LVCFMT_LEFT, 120); m_ListUser.SetExtendedStyle(LVS_EX_FULLROWSELECT); + + m_DataTime.EnableWindow(FALSE); + m_DataTime.SetFormat(_T("yyyy-mm-dd hh:mm:ss")); return TRUE; // return TRUE unless you set the focus to a control // 异常: OCX 属性页应返回 FALSE } @@ -101,6 +107,7 @@ void CDialog_Banned::OnBnClickedButton2() CString m_StrToken; CString m_StrUser; CString m_StrIPEnd; + CString m_StrTime; CDialog_Config* pWnd = (CDialog_Config*)CDialog_Config::FromHandle(hConfigWnd); pWnd->m_EditIPAddr.GetWindowText(m_StrIPAddr); @@ -108,6 +115,7 @@ void CDialog_Banned::OnBnClickedButton2() pWnd->m_EditToken.GetWindowText(m_StrToken); m_EditUser.GetWindowText(m_StrUser); m_EditIPEnd.GetWindowText(m_StrIPEnd); + m_DataTime.GetWindowText(m_StrTime); TCHAR tszUrlAddr[MAX_PATH]; memset(tszUrlAddr, '\0', MAX_PATH); @@ -127,6 +135,11 @@ void CDialog_Banned::OnBnClickedButton2() st_JsonObject["tszIPStart"] = m_StrUser.GetBuffer(); st_JsonObject["tszIPEnd"] = m_StrIPEnd.GetBuffer(); } + if (BST_CHECKED == m_BtnCheckTime.GetCheck()) + { + st_JsonObject["tszLeftTime"] = m_StrTime.GetBuffer(); + } + st_JsonRoot["st_Banned"] = st_JsonObject; //是否加密 TCHAR tszPassBuffer[64]; @@ -375,3 +388,19 @@ void CDialog_Banned::OnBnClickedButton3() //刷新 OnBnClickedButton4(); } + + +void CDialog_Banned::OnBnClickedCheck1() +{ + // TODO: 在此添加控件通知处理程序代码 + if (BST_CHECKED == m_BtnCheckTime.GetCheck()) + { + m_DataTime.EnableWindow(TRUE); + m_BtnCheckTime.SetCheck(BST_CHECKED); + } + else + { + m_DataTime.EnableWindow(FALSE); + m_BtnCheckTime.SetCheck(BST_UNCHECKED); + } +} diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.h b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.h index e401b23..d593ca2 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.h +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.h @@ -36,4 +36,7 @@ class CDialog_Banned : public CDialogEx CListCtrl m_ListAddr; CListCtrl m_ListUser; CEdit m_EditUser; + CDateTimeCtrl m_DataTime; + afx_msg void OnBnClickedCheck1(); + CButton m_BtnCheckTime; }; diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngineAuthorizeApp.aps b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngineAuthorizeApp.aps index 5e1d9f08ee92eddea758cca39a063c6aee69af32..cca290164d0511de4b62bfa0567d9b725dd41fb2 100644 GIT binary patch delta 669 zcmXw#Ur5tY6vw~k&R;VnG7_ULXT^d&=yXPZ7EziTHnJS{dq|LeSZYPqOD-COsQKW7 zk?|`I3HchaLMDJK+M`k~FM|{bIp)I_yQVTkKDFdmP}YO>q3QJ@nmZthEj$(_H|^rj zQSu9bo%7_j0qJxHMteHLu2A<~SLoQ49lEr`2yp8>-PgJh#clpRM|<+DK+uXeID!&s zk`3}>WRQp3V&oPzwLBQ3d(_2+3slvpTKo$UB>Dm;vNN7^x(n|f6)5R1HrgsF3>;R6xDzeptAMxjjMqSS(S2*cvfkjo7rW z@{_vRyF^8zH)39h*s}PMHH!Hf=Z?7~~nHv@V+NMVoeA19aZZ)TGRTl&m=f zMA^GcMbyXj3YR!6Au!JU%jBRQo>6KOe^hwQn+j)nZ&Jd^UWG}nS9r_eB-yoMx#>DT zlZrU`o?j%%A^JXWDoJO=@i;qHWZn?xQ;HpNzN|PH=XObo^79qh=o`P35P1n+TOr$D D6LQvp delta 548 zcmXAlPe@cj9LMMTo^KcYQ%kIeeaM>8VLP-vQ&K#Xnu*aNi8Z>t2wNn|yeJwTlsZ&& zcs1lNtb;+ahlO@!cd;-Gp@nvpXt#a4OGI?+=s_@|c>RV3hTnWY^Z5-klU?)wO8K23 z{Yn{fF*d%IJZ@|I!}6GJu4#0=hDX_W_fpD8)w(scChF7?GFp_ z$Clsiu&;^xBMBK!M2$EvC+JoMU1*?}s?^D?pk2F~mN(KS1za>>f?8chQ#pAjXVR!b zZ)i-Rg}i*2H_1_Ggq|v7xw6kS>GOZfWu(8F1f?bsqCl0so77rm*u4rmv&wLkq4w=H zU9KXmk7q!)GfW+(dVdylANtIZE3GV5G_mZ*=b-dyGf Suw*F7qPaRB6f4tm9p*nTT)_(f diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngineAuthorizeApp.rc b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngineAuthorizeApp.rc index 96ee716d879e06f95033ecfe95a4d99fd47c5f92..8d198b08660c4d165424e733cd529b1663a2584a 100644 GIT binary patch delta 285 zcmdn-oblFc#tmY@j0T&p)Ql#`qs zV8AkYgM!@T0$rYZ7Y0X$5C&Hu_GIt{(g8r)nZX;#3Suw>>QQ0{W~gK+W^iFhWGG=s z1**$r$OX~?KsuQro52`psuED03s5GQAs(p9lfj+A1ITk^@By>^7!(+4fEcF2hryr0 z52yxgGat|*H=sZe&~l(dCcih3mev6pY5>Gw2Lo9;43-Qa=NmGZPIlDQ=g|+*C_UaU lpZ+cN%hbtM>RF-|V5J6N_nI-7fR!3db~G2>ydYdc1^^8?JAVKG delta 35 rcmcchnsLW-#tmY@jOLrggHJLunooWhwsA6-3*Y3J> Date: Thu, 2 Feb 2023 14:41:53 +0800 Subject: [PATCH 12/24] modify:does not need to start and end for ip address added:enable field for banned --- .../Database_SQLite/Database_SQLite.cpp | 569 +++++++++--------- .../Protocol_Packet/Protocol_Packet.cpp | 5 +- .../Protocol_Parse/Protocol_Parse.cpp | 8 +- XEngine_Source/XAuth_Protocol.h | 4 +- .../AuthorizeHTTP_Banned.cpp | 4 +- .../Authorize_HttpTask.cpp | 4 +- .../Authorize_TCPTask.cpp | 4 +- 7 files changed, 298 insertions(+), 300 deletions(-) diff --git a/XEngine_Source/AuthorizeModule_Database/Database_SQLite/Database_SQLite.cpp b/XEngine_Source/AuthorizeModule_Database/Database_SQLite/Database_SQLite.cpp index 2ac0d66..de18cff 100644 --- a/XEngine_Source/AuthorizeModule_Database/Database_SQLite/Database_SQLite.cpp +++ b/XEngine_Source/AuthorizeModule_Database/Database_SQLite/Database_SQLite.cpp @@ -45,7 +45,7 @@ BOOL CDatabase_SQLite::Database_SQLite_Init(LPCTSTR lpszSQLFile, BOOL bIsChange SQLPacket_IsErrorOccur = FALSE; m_bChange = bIsChange; //打开数据库 - if (!DataBase_SQLite_Open(&xhData,lpszSQLFile)) + if (!DataBase_SQLite_Open(&xhData, lpszSQLFile)) { SQLPacket_IsErrorOccur = TRUE; SQLPacket_dwErrorCode = DataBase_GetLastError(); @@ -90,10 +90,10 @@ BOOL CDatabase_SQLite::Database_SQLite_UserDelete(LPCTSTR lpszUserName) { SQLPacket_IsErrorOccur = FALSE; TCHAR tszSQLStatement[1024]; //SQL语句 - memset(tszSQLStatement,'\0',1024); - _stprintf_s(tszSQLStatement,_T("delete from Authorize_User where UserName = '%s'"),lpszUserName); + memset(tszSQLStatement, '\0', 1024); + _stprintf_s(tszSQLStatement, _T("delete from Authorize_User where UserName = '%s'"), lpszUserName); //执行 - if (!DataBase_SQLite_Exec(xhData,tszSQLStatement)) + if (!DataBase_SQLite_Exec(xhData, tszSQLStatement)) { SQLPacket_IsErrorOccur = TRUE; SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_EXEC; @@ -118,7 +118,7 @@ BOOL CDatabase_SQLite::Database_SQLite_UserRegister(AUTHREG_USERTABLE* pSt_UserI { SQLPacket_IsErrorOccur = FALSE; TCHAR tszSQLStatement[1024]; //SQL语句 - memset(tszSQLStatement,'\0',1024); + memset(tszSQLStatement, '\0', 1024); if (Database_SQLite_UserQuery(pSt_UserInfo->st_UserInfo.tszUserName)) { @@ -157,13 +157,13 @@ BOOL CDatabase_SQLite::Database_SQLite_UserQuery(LPCTSTR lpszUserName, AUTHREG_U { SQLPacket_IsErrorOccur = FALSE; TCHAR tszSQLStatement[1024]; //SQL语句 - char **ppszResult = NULL; + char** ppszResult = NULL; int nRow = 0; int nColumn = 0; - memset(tszSQLStatement,'\0',1024); + memset(tszSQLStatement, '\0', 1024); - _stprintf_s(tszSQLStatement,_T("select * from Authorize_User where UserName = '%s'"),lpszUserName); - if (!DataBase_SQLite_GetTable(xhData,tszSQLStatement,&ppszResult,&nRow,&nColumn)) + _stprintf_s(tszSQLStatement, _T("select * from Authorize_User where UserName = '%s'"), lpszUserName); + if (!DataBase_SQLite_GetTable(xhData, tszSQLStatement, &ppszResult, &nRow, &nColumn)) { SQLPacket_IsErrorOccur = TRUE; SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_GETTABLE; @@ -205,12 +205,12 @@ BOOL CDatabase_SQLite::Database_SQLite_UserQuery(LPCTSTR lpszUserName, AUTHREG_U //身份证ID nFliedValue++; pSt_UserInfo->st_UserInfo.nIDNumber = _tcstoi64(ppszResult[nFliedValue], NULL, 10); - //用户级别 -1表示封禁 - nFliedValue++; - pSt_UserInfo->st_UserInfo.nUserLevel = _ttoi(ppszResult[nFliedValue]); - //注册日期 - nFliedValue++; - _tcscpy(pSt_UserInfo->st_UserInfo.tszCreateTime, ppszResult[nFliedValue]); + //用户级别 -1表示封禁 + nFliedValue++; + pSt_UserInfo->st_UserInfo.nUserLevel = _ttoi(ppszResult[nFliedValue]); + //注册日期 + nFliedValue++; + _tcscpy(pSt_UserInfo->st_UserInfo.tszCreateTime, ppszResult[nFliedValue]); } DataBase_SQLite_FreeTable(ppszResult); @@ -234,7 +234,7 @@ BOOL CDatabase_SQLite::Database_SQLite_UserQuery(LPCTSTR lpszUserName, AUTHREG_U 意思:是否成功充值 备注: *********************************************************************/ -BOOL CDatabase_SQLite::Database_SQLite_UserPay(LPCTSTR lpszUserName,LPCTSTR lpszSerialName) +BOOL CDatabase_SQLite::Database_SQLite_UserPay(LPCTSTR lpszUserName, LPCTSTR lpszSerialName) { SQLPacket_IsErrorOccur = FALSE; @@ -242,9 +242,9 @@ BOOL CDatabase_SQLite::Database_SQLite_UserPay(LPCTSTR lpszUserName,LPCTSTR lpsz AUTHREG_USERTABLE st_UserTable; TCHAR tszSQLStatement[1024]; //SQL语句 - memset(tszSQLStatement,'\0',1024); - memset(&st_SerialTable,'\0',sizeof(st_SerialTable)); - memset(&st_UserTable,'\0',sizeof(st_UserTable)); + memset(tszSQLStatement, '\0', 1024); + memset(&st_SerialTable, '\0', sizeof(st_SerialTable)); + memset(&st_UserTable, '\0', sizeof(st_UserTable)); //参数检查 if ((NULL == lpszUserName) || (NULL == lpszSerialName)) { @@ -253,7 +253,7 @@ BOOL CDatabase_SQLite::Database_SQLite_UserPay(LPCTSTR lpszUserName,LPCTSTR lpsz return FALSE; } //查询充值卡是否存在 - if (!Database_SQLite_SerialQuery(lpszSerialName,&st_SerialTable)) + if (!Database_SQLite_SerialQuery(lpszSerialName, &st_SerialTable)) { return FALSE; } @@ -265,7 +265,7 @@ BOOL CDatabase_SQLite::Database_SQLite_UserPay(LPCTSTR lpszUserName,LPCTSTR lpsz return FALSE; } //查询用户信息 - if (!Database_SQLite_UserQuery(lpszUserName,&st_UserTable)) + if (!Database_SQLite_UserQuery(lpszUserName, &st_UserTable)) { return FALSE; } @@ -427,67 +427,67 @@ BOOL CDatabase_SQLite::Database_SQLite_UserSet(AUTHREG_USERTABLE* pSt_UserTable) *********************************************************************/ BOOL CDatabase_SQLite::Database_SQLite_UserList(AUTHREG_USERTABLE*** pppSt_UserInfo, int* pInt_ListCount, int nPosStart, int nPosEnd) { - SQLPacket_IsErrorOccur = FALSE; + SQLPacket_IsErrorOccur = FALSE; - int nRow = 0; - int nColumn = 0; + int nRow = 0; + int nColumn = 0; char** ppszResult = NULL; TCHAR tszSQLStatement[1024]; //SQL语句 - memset(tszSQLStatement, '\0', 1024); + memset(tszSQLStatement, '\0', 1024); _stprintf_s(tszSQLStatement, _T("SELECT * FROM Authorize_User LIMIT %d,%d"), nPosStart, nPosEnd - nPosStart); - if (!DataBase_SQLite_GetTable(xhData, tszSQLStatement, &ppszResult, &nRow, &nColumn)) - { - SQLPacket_IsErrorOccur = TRUE; - SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_GETTABLE; - return FALSE; - } - if ((0 == nRow) || (0 == nColumn)) - { - SQLPacket_IsErrorOccur = TRUE; - SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_NOTUSER; - return FALSE; - } + if (!DataBase_SQLite_GetTable(xhData, tszSQLStatement, &ppszResult, &nRow, &nColumn)) + { + SQLPacket_IsErrorOccur = TRUE; + SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_GETTABLE; + return FALSE; + } + if ((0 == nRow) || (0 == nColumn)) + { + SQLPacket_IsErrorOccur = TRUE; + SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_NOTUSER; + return FALSE; + } *pInt_ListCount = nRow; BaseLib_OperatorMemory_Malloc((XPPPMEM)pppSt_UserInfo, nRow, sizeof(AUTHREG_USERTABLE)); - //ID - int nFliedValue = nColumn; + //ID + int nFliedValue = nColumn; for (int i = 0; i < nRow; i++) { nFliedValue++; //ID //用户名 _tcscpy((*pppSt_UserInfo)[i]->st_UserInfo.tszUserName, ppszResult[nFliedValue]); - //密码 - nFliedValue++; - _tcscpy((*pppSt_UserInfo)[i]->st_UserInfo.tszUserPass, ppszResult[nFliedValue]); - //过期时间 - nFliedValue++; - _tcscpy((*pppSt_UserInfo)[i]->tszLeftTime, ppszResult[nFliedValue]); - //电子邮件 - nFliedValue++; - _tcscpy((*pppSt_UserInfo)[i]->st_UserInfo.tszEMailAddr, ppszResult[nFliedValue]); - //硬件码 - nFliedValue++; - _tcscpy((*pppSt_UserInfo)[i]->tszHardCode, ppszResult[nFliedValue]); - //充值卡类型 - nFliedValue++; + //密码 + nFliedValue++; + _tcscpy((*pppSt_UserInfo)[i]->st_UserInfo.tszUserPass, ppszResult[nFliedValue]); + //过期时间 + nFliedValue++; + _tcscpy((*pppSt_UserInfo)[i]->tszLeftTime, ppszResult[nFliedValue]); + //电子邮件 + nFliedValue++; + _tcscpy((*pppSt_UserInfo)[i]->st_UserInfo.tszEMailAddr, ppszResult[nFliedValue]); + //硬件码 + nFliedValue++; + _tcscpy((*pppSt_UserInfo)[i]->tszHardCode, ppszResult[nFliedValue]); + //充值卡类型 + nFliedValue++; (*pppSt_UserInfo)[i]->enSerialType = (ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE)_ttoi(ppszResult[nFliedValue]); - //QQ号 - nFliedValue++; + //QQ号 + nFliedValue++; (*pppSt_UserInfo)[i]->st_UserInfo.nPhoneNumber = _tcstoi64(ppszResult[nFliedValue], NULL, 10); - //身份证ID - nFliedValue++; + //身份证ID + nFliedValue++; (*pppSt_UserInfo)[i]->st_UserInfo.nIDNumber = _tcstoi64(ppszResult[nFliedValue], NULL, 10); - //用户级别 -1表示封禁 - nFliedValue++; + //用户级别 -1表示封禁 + nFliedValue++; (*pppSt_UserInfo)[i]->st_UserInfo.nUserLevel = _ttoi(ppszResult[nFliedValue]); - //注册日期 - nFliedValue++; - _tcscpy((*pppSt_UserInfo)[i]->st_UserInfo.tszCreateTime, ppszResult[nFliedValue]); + //注册日期 + nFliedValue++; + _tcscpy((*pppSt_UserInfo)[i]->st_UserInfo.tszCreateTime, ppszResult[nFliedValue]); nFliedValue++; } - DataBase_SQLite_FreeTable(ppszResult); - return TRUE; + DataBase_SQLite_FreeTable(ppszResult); + return TRUE; } /******************************************************************** 函数名称:Database_SQLite_SerialInsert @@ -507,7 +507,7 @@ BOOL CDatabase_SQLite::Database_SQLite_SerialInsert(LPCTSTR lpszSerialNumber) SQLPacket_IsErrorOccur = FALSE; TCHAR tszSQLStatement[1024]; //SQL语句 - memset(tszSQLStatement,'\0',1024); + memset(tszSQLStatement, '\0', 1024); if (Database_SQLite_SerialQuery(lpszSerialNumber)) { @@ -517,7 +517,7 @@ BOOL CDatabase_SQLite::Database_SQLite_SerialInsert(LPCTSTR lpszSerialNumber) } ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE enAuthSerialType; XENGINE_LIBTIMER st_AuthTimer; - memset(&st_AuthTimer,'\0',sizeof(st_AuthTimer)); + memset(&st_AuthTimer, '\0', sizeof(st_AuthTimer)); if (!Authorize_Serial_GetType(lpszSerialNumber, &enAuthSerialType, &st_AuthTimer)) { @@ -547,7 +547,7 @@ BOOL CDatabase_SQLite::Database_SQLite_SerialInsert(LPCTSTR lpszSerialNumber) _stprintf_s(tszSQLStatement, _T("INSERT INTO Authorize_Serial values(NULL,'NOT','%s',0,'%d',0,datetime('now', 'localtime'))"), lpszSerialNumber, enAuthSerialType); } - if (!DataBase_SQLite_Exec(xhData,tszSQLStatement)) + if (!DataBase_SQLite_Exec(xhData, tszSQLStatement)) { SQLPacket_IsErrorOccur = TRUE; SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_ISFAILED; @@ -573,10 +573,10 @@ BOOL CDatabase_SQLite::Database_SQLite_SerialDelete(LPCTSTR lpszSerialNumber) SQLPacket_IsErrorOccur = FALSE; TCHAR tszSQLStatement[1024]; //SQL语句 - memset(tszSQLStatement,'\0',1024); - _stprintf_s(tszSQLStatement,_T("delete from Authorize_Serial where SerialNumber = '%s'"),lpszSerialNumber); + memset(tszSQLStatement, '\0', 1024); + _stprintf_s(tszSQLStatement, _T("delete from Authorize_Serial where SerialNumber = '%s'"), lpszSerialNumber); //执行 - if (!DataBase_SQLite_Exec(xhData,tszSQLStatement)) + if (!DataBase_SQLite_Exec(xhData, tszSQLStatement)) { SQLPacket_IsErrorOccur = TRUE; SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_ISFAILED; @@ -602,17 +602,17 @@ BOOL CDatabase_SQLite::Database_SQLite_SerialDelete(LPCTSTR lpszSerialNumber) 意思:是否查询成功,如果第二个参数为NULL,那么将只返回是否有这个序列号 备注: *********************************************************************/ -BOOL CDatabase_SQLite::Database_SQLite_SerialQuery(LPCTSTR lpszSerialNumber,LPAUTHREG_SERIALTABLE pSt_SerialTable /* = NULL */) +BOOL CDatabase_SQLite::Database_SQLite_SerialQuery(LPCTSTR lpszSerialNumber, LPAUTHREG_SERIALTABLE pSt_SerialTable /* = NULL */) { SQLPacket_IsErrorOccur = FALSE; TCHAR tszSQLStatement[1024]; //SQL语句 - char **ppszResult = NULL; + char** ppszResult = NULL; int nRow = 0; int nColumn = 0; - memset(tszSQLStatement,'\0',1024); + memset(tszSQLStatement, '\0', 1024); - _stprintf_s(tszSQLStatement,_T("select * from Authorize_Serial where SerialNumber = '%s'"),lpszSerialNumber); - if (!DataBase_SQLite_GetTable(xhData,tszSQLStatement,&ppszResult,&nRow,&nColumn)) + _stprintf_s(tszSQLStatement, _T("select * from Authorize_Serial where SerialNumber = '%s'"), lpszSerialNumber); + if (!DataBase_SQLite_GetTable(xhData, tszSQLStatement, &ppszResult, &nRow, &nColumn)) { SQLPacket_IsErrorOccur = TRUE; SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_GETTABLE; @@ -631,22 +631,22 @@ BOOL CDatabase_SQLite::Database_SQLite_SerialQuery(LPCTSTR lpszSerialNumber,LPAU int nFliedValue = nColumn; //使用者 nFliedValue++; - _tcscpy(pSt_SerialTable->tszUserName,ppszResult[nFliedValue]); + _tcscpy(pSt_SerialTable->tszUserName, ppszResult[nFliedValue]); //序列号 nFliedValue++; - _tcscpy(pSt_SerialTable->tszSerialNumber,ppszResult[nFliedValue]); + _tcscpy(pSt_SerialTable->tszSerialNumber, ppszResult[nFliedValue]); //超时时间 nFliedValue++; - _tcscpy(pSt_SerialTable->tszMaxTime,ppszResult[nFliedValue]); + _tcscpy(pSt_SerialTable->tszMaxTime, ppszResult[nFliedValue]); //序列卡类型 nFliedValue++; pSt_SerialTable->enSerialType = (ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE)_ttoi(ppszResult[nFliedValue]); //是否已经使用 nFliedValue++; pSt_SerialTable->bIsUsed = _ttoi(ppszResult[nFliedValue]); - //超时时间 - nFliedValue++; - _tcscpy(pSt_SerialTable->tszCreateTime, ppszResult[nFliedValue]); + //超时时间 + nFliedValue++; + _tcscpy(pSt_SerialTable->tszCreateTime, ppszResult[nFliedValue]); } DataBase_SQLite_FreeTable(ppszResult); @@ -683,16 +683,16 @@ BOOL CDatabase_SQLite::Database_SQLite_SerialQuery(LPCTSTR lpszSerialNumber,LPAU BOOL CDatabase_SQLite::Database_SQLite_SerialQueryAll(AUTHREG_SERIALTABLE*** pppSt_SerialTable, int* pInt_ListCount, int nPosStart, int nPosEnd) { SQLPacket_IsErrorOccur = FALSE; - - int nRow = 0; - int nColumn = 0; + + int nRow = 0; + int nColumn = 0; char** ppszResult = NULL; TCHAR tszSQLStatement[1024]; //SQL语句 - - memset(tszSQLStatement,'\0',1024); - + + memset(tszSQLStatement, '\0', 1024); + _stprintf_s(tszSQLStatement, _T("SELECT * FROM Authorize_Serial LIMIT %d,%d"), nPosStart, nPosEnd - nPosStart); - if (!DataBase_SQLite_GetTable(xhData,tszSQLStatement,&ppszResult,&nRow,&nColumn)) + if (!DataBase_SQLite_GetTable(xhData, tszSQLStatement, &ppszResult, &nRow, &nColumn)) { SQLPacket_IsErrorOccur = TRUE; SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_GETTABLE; @@ -708,18 +708,18 @@ BOOL CDatabase_SQLite::Database_SQLite_SerialQueryAll(AUTHREG_SERIALTABLE*** ppp *pInt_ListCount = nRow; int nFliedValue = nColumn; - for (int i = 0;i < nRow;i++) + for (int i = 0; i < nRow; i++) { //ID nFliedValue++; //使用者 - _tcscpy((*pppSt_SerialTable)[i]->tszUserName,ppszResult[nFliedValue]); + _tcscpy((*pppSt_SerialTable)[i]->tszUserName, ppszResult[nFliedValue]); nFliedValue++; //序列号 - _tcscpy((*pppSt_SerialTable)[i]->tszSerialNumber,ppszResult[nFliedValue]); + _tcscpy((*pppSt_SerialTable)[i]->tszSerialNumber, ppszResult[nFliedValue]); nFliedValue++; //超时时间 - _tcscpy((*pppSt_SerialTable)[i]->tszMaxTime,ppszResult[nFliedValue]); + _tcscpy((*pppSt_SerialTable)[i]->tszMaxTime, ppszResult[nFliedValue]); nFliedValue++; //序列卡类型 (*pppSt_SerialTable)[i]->enSerialType = (ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE)_ttoi(ppszResult[nFliedValue]); @@ -727,9 +727,9 @@ BOOL CDatabase_SQLite::Database_SQLite_SerialQueryAll(AUTHREG_SERIALTABLE*** ppp //是否已经使用 (*pppSt_SerialTable)[i]->bIsUsed = _ttoi(ppszResult[nFliedValue]); nFliedValue++; - //创建时间 + //创建时间 _tcscpy((*pppSt_SerialTable)[i]->tszCreateTime, ppszResult[nFliedValue]); - nFliedValue++; + nFliedValue++; } DataBase_SQLite_FreeTable(ppszResult); return TRUE; @@ -749,26 +749,26 @@ BOOL CDatabase_SQLite::Database_SQLite_SerialQueryAll(AUTHREG_SERIALTABLE*** ppp *********************************************************************/ BOOL CDatabase_SQLite::Database_SQLite_SerialPush(AUTHREG_SERIALTABLE* pSt_SerialTable) { - SQLPacket_IsErrorOccur = FALSE; + SQLPacket_IsErrorOccur = FALSE; - TCHAR tszSQLStatement[1024]; //SQL语句 - memset(tszSQLStatement, '\0', 1024); + TCHAR tszSQLStatement[1024]; //SQL语句 + memset(tszSQLStatement, '\0', 1024); - if (Database_SQLite_SerialQuery(pSt_SerialTable->tszSerialNumber)) - { - SQLPacket_IsErrorOccur = TRUE; - SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_EXIST; - return FALSE; - } + if (Database_SQLite_SerialQuery(pSt_SerialTable->tszSerialNumber)) + { + SQLPacket_IsErrorOccur = TRUE; + SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_EXIST; + return FALSE; + } _stprintf_s(tszSQLStatement, _T("INSERT INTO Authorize_Serial values(NULL,'%s','%s','%s',%d,%d,'%s')"), pSt_SerialTable->tszUserName, pSt_SerialTable->tszSerialNumber, pSt_SerialTable->tszMaxTime, pSt_SerialTable->enSerialType, pSt_SerialTable->bIsUsed, pSt_SerialTable->tszCreateTime); - if (!DataBase_SQLite_Exec(xhData, tszSQLStatement)) - { - SQLPacket_IsErrorOccur = TRUE; - SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_ISFAILED; - return FALSE; - } - return TRUE; + if (!DataBase_SQLite_Exec(xhData, tszSQLStatement)) + { + SQLPacket_IsErrorOccur = TRUE; + SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_ISFAILED; + return FALSE; + } + return TRUE; } /******************************************************************** 函数名称:Database_SQLite_TryInsert @@ -1056,38 +1056,38 @@ BOOL CDatabase_SQLite::Database_SQLite_TrySet(AUTHREG_NETVER* pSt_AuthVer) *********************************************************************/ BOOL CDatabase_SQLite::Database_SQLite_BannedInsert(AUTHREG_BANNED* pSt_Banned) { - SQLPacket_IsErrorOccur = FALSE; - - if (NULL == pSt_Banned) - { - SQLPacket_IsErrorOccur = TRUE; - SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_PARAMENT; - return FALSE; - } + SQLPacket_IsErrorOccur = FALSE; + + if (NULL == pSt_Banned) + { + SQLPacket_IsErrorOccur = TRUE; + SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_PARAMENT; + return FALSE; + } //存在直接返回 if (Database_SQLite_BannedExist(pSt_Banned)) { return TRUE; } - TCHAR tszSQLStatement[1024]; - memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); + TCHAR tszSQLStatement[1024]; + memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); //处理的类型 if (_tcslen(pSt_Banned->tszUserName) > 0) { - _stprintf_s(tszSQLStatement, _T("INSERT INTO Authorize_BannedUser(tszUserName,tszLeftTime,tszCreateTime) VALUES('%s','%s',datetime('now', 'localtime'))"), pSt_Banned->tszUserName, pSt_Banned->tszLeftTime); + _stprintf_s(tszSQLStatement, _T("INSERT INTO Authorize_BannedUser(bEnable,tszUserName,tszLeftTime,tszCreateTime) VALUES(%d,'%s','%s',datetime('now', 'localtime'))"), pSt_Banned->bEnable, pSt_Banned->tszUserName, pSt_Banned->tszLeftTime); } else { - _stprintf_s(tszSQLStatement, _T("INSERT INTO Authorize_BannedAddr(tszIPStart,tszIPEnd,tszLeftTime,tszCreateTime) VALUES('%s','%s','%s',datetime('now', 'localtime'))"), pSt_Banned->tszIPStart, pSt_Banned->tszIPEnd, pSt_Banned->tszLeftTime); + _stprintf_s(tszSQLStatement, _T("INSERT INTO Authorize_BannedAddr(bEnable,tszIPAddr,tszLeftTime,tszCreateTime) VALUES(%d,'%s','%s',datetime('now', 'localtime'))"), pSt_Banned->bEnable, pSt_Banned->tszIPAddr, pSt_Banned->tszLeftTime); } //插入数据库 - if (!DataBase_SQLite_Exec(xhData, tszSQLStatement)) - { - SQLPacket_IsErrorOccur = TRUE; - SQLPacket_dwErrorCode = DataBase_GetLastError(); - return FALSE; - } - return TRUE; + if (!DataBase_SQLite_Exec(xhData, tszSQLStatement)) + { + SQLPacket_IsErrorOccur = TRUE; + SQLPacket_dwErrorCode = DataBase_GetLastError(); + return FALSE; + } + return TRUE; } /******************************************************************** 函数名称:Database_SQLite_BannedDelete @@ -1104,40 +1104,33 @@ BOOL CDatabase_SQLite::Database_SQLite_BannedInsert(AUTHREG_BANNED* pSt_Banned) *********************************************************************/ BOOL CDatabase_SQLite::Database_SQLite_BannedDelete(AUTHREG_BANNED* pSt_Banned) { - SQLPacket_IsErrorOccur = FALSE; - - if (NULL == pSt_Banned) - { - SQLPacket_IsErrorOccur = TRUE; - SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_PARAMENT; - return FALSE; - } - TCHAR tszSQLStatement[1024]; - memset(tszSQLStatement, '\0', 1024); - //处理的类型 - if (_tcslen(pSt_Banned->tszUserName) > 0) - { + SQLPacket_IsErrorOccur = FALSE; + + if (NULL == pSt_Banned) + { + SQLPacket_IsErrorOccur = TRUE; + SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_PARAMENT; + return FALSE; + } + TCHAR tszSQLStatement[1024]; + memset(tszSQLStatement, '\0', 1024); + //处理的类型 + if (_tcslen(pSt_Banned->tszUserName) > 0) + { _stprintf_s(tszSQLStatement, _T("DELETE FROM Authorize_BannedUser WHERE tszUserName = '%s'"), pSt_Banned->tszUserName); - } - else - { - if (_tcslen(pSt_Banned->tszIPEnd) > 0) - { - _stprintf_s(tszSQLStatement, _T("DELETE FROM Authorize_BannedAddr WHERE tszIPStart = '%s' AND tszIPEnd = '%s'"), pSt_Banned->tszIPStart, pSt_Banned->tszIPEnd); - } - else - { - _stprintf_s(tszSQLStatement, _T("DELETE FROM Authorize_BannedAddr WHERE tszIPStart = '%s'"), pSt_Banned->tszIPStart); - } - } - //操作数据库 - if (!DataBase_SQLite_Exec(xhData, tszSQLStatement)) - { - SQLPacket_IsErrorOccur = TRUE; - SQLPacket_dwErrorCode = DataBase_GetLastError(); - return FALSE; - } - return TRUE; + } + else + { + _stprintf_s(tszSQLStatement, _T("DELETE FROM Authorize_BannedAddr WHERE tszIPAddr = '%s'"), pSt_Banned->tszIPAddr); + } + //操作数据库 + if (!DataBase_SQLite_Exec(xhData, tszSQLStatement)) + { + SQLPacket_IsErrorOccur = TRUE; + SQLPacket_dwErrorCode = DataBase_GetLastError(); + return FALSE; + } + return TRUE; } /******************************************************************** 函数名称:Database_SQLite_BannedList @@ -1169,110 +1162,114 @@ BOOL CDatabase_SQLite::Database_SQLite_BannedDelete(AUTHREG_BANNED* pSt_Banned) *********************************************************************/ BOOL CDatabase_SQLite::Database_SQLite_BannedList(AUTHREG_BANNED*** pppSt_BannedUser, int* pInt_UserCount, AUTHREG_BANNED*** pppSt_BannedAddr, int* pInt_AddrCount) { - SQLPacket_IsErrorOccur = FALSE; - - int nRow = 0; - int nColumn = 0; - CHAR** ppszResult = NULL; - TCHAR tszSQLStatement[1024]; //SQL语句 - - memset(tszSQLStatement, '\0', 1024); - _stprintf_s(tszSQLStatement, _T("SELECT * FROM Authorize_BannedAddr")); - - if (!DataBase_SQLite_GetTable(xhData, tszSQLStatement, &ppszResult, &nRow, &nColumn)) - { - SQLPacket_IsErrorOccur = TRUE; - SQLPacket_dwErrorCode = DataBase_GetLastError(); - return FALSE; - } - int nFliedValue = nColumn; - list stl_ListAddr; - //轮训所有内容 - for (int i = 0; i < nRow; i++) - { + SQLPacket_IsErrorOccur = FALSE; + + int nRow = 0; + int nColumn = 0; + CHAR** ppszResult = NULL; + TCHAR tszSQLStatement[1024]; //SQL语句 + + memset(tszSQLStatement, '\0', 1024); + _stprintf_s(tszSQLStatement, _T("SELECT * FROM Authorize_BannedAddr")); + + if (!DataBase_SQLite_GetTable(xhData, tszSQLStatement, &ppszResult, &nRow, &nColumn)) + { + SQLPacket_IsErrorOccur = TRUE; + SQLPacket_dwErrorCode = DataBase_GetLastError(); + return FALSE; + } + int nFliedValue = nColumn; + list stl_ListAddr; + //轮训所有内容 + for (int i = 0; i < nRow; i++) + { AUTHREG_BANNED st_Banned; - memset(&st_Banned, '\0', sizeof(AUTHREG_BANNED)); - //ID + memset(&st_Banned, '\0', sizeof(AUTHREG_BANNED)); + //ID st_Banned.nID = _ttoi64(ppszResult[nFliedValue]); + nFliedValue++; + //是否启用 + st_Banned.bEnable = _ttoi(ppszResult[nFliedValue]); nFliedValue++; - //起始地址 - _tcscpy(st_Banned.tszIPStart, ppszResult[nFliedValue]); - nFliedValue++; - //结束地址 - _tcscpy(st_Banned.tszIPEnd, ppszResult[nFliedValue]); - nFliedValue++; - //过期时间 - _tcscpy(st_Banned.tszLeftTime, ppszResult[nFliedValue]); - nFliedValue++; - //注册时间 - _tcscpy(st_Banned.tszCreateTime, ppszResult[nFliedValue]); + //地址 + _tcscpy(st_Banned.tszIPAddr, ppszResult[nFliedValue]); + nFliedValue++; + //过期时间 + _tcscpy(st_Banned.tszLeftTime, ppszResult[nFliedValue]); + nFliedValue++; + //注册时间 + _tcscpy(st_Banned.tszCreateTime, ppszResult[nFliedValue]); nFliedValue++; stl_ListAddr.push_back(st_Banned); - } - DataBase_SQLite_FreeTable(ppszResult); + } + DataBase_SQLite_FreeTable(ppszResult); //用户列表 - nRow = 0; - nColumn = 0; - memset(tszSQLStatement, '\0', 1024); - _stprintf_s(tszSQLStatement, _T("SELECT * FROM Authorize_BannedUser")); - - if (!DataBase_SQLite_GetTable(xhData, tszSQLStatement, &ppszResult, &nRow, &nColumn)) - { - SQLPacket_IsErrorOccur = TRUE; - SQLPacket_dwErrorCode = DataBase_GetLastError(); - return FALSE; - } - nFliedValue = nColumn; - list stl_ListUser; - //轮训所有内容 - for (int i = 0; i < nRow; i++) - { - AUTHREG_BANNED st_Banned; - memset(&st_Banned, '\0', sizeof(AUTHREG_BANNED)); - //ID - st_Banned.nID = _ttoi64(ppszResult[nFliedValue]); - nFliedValue++; - //用户名 - _tcscpy(st_Banned.tszUserName, ppszResult[nFliedValue]); - nFliedValue++; - //过期时间 - _tcscpy(st_Banned.tszLeftTime, ppszResult[nFliedValue]); + nRow = 0; + nColumn = 0; + memset(tszSQLStatement, '\0', 1024); + _stprintf_s(tszSQLStatement, _T("SELECT * FROM Authorize_BannedUser")); + + if (!DataBase_SQLite_GetTable(xhData, tszSQLStatement, &ppszResult, &nRow, &nColumn)) + { + SQLPacket_IsErrorOccur = TRUE; + SQLPacket_dwErrorCode = DataBase_GetLastError(); + return FALSE; + } + nFliedValue = nColumn; + list stl_ListUser; + //轮训所有内容 + for (int i = 0; i < nRow; i++) + { + AUTHREG_BANNED st_Banned; + memset(&st_Banned, '\0', sizeof(AUTHREG_BANNED)); + //ID + st_Banned.nID = _ttoi64(ppszResult[nFliedValue]); + nFliedValue++; + //是否启用 + st_Banned.bEnable = _ttoi(ppszResult[nFliedValue]); nFliedValue++; - //注册时间 - _tcscpy(st_Banned.tszCreateTime, ppszResult[nFliedValue]); + //用户名 + _tcscpy(st_Banned.tszUserName, ppszResult[nFliedValue]); + nFliedValue++; + //过期时间 + _tcscpy(st_Banned.tszLeftTime, ppszResult[nFliedValue]); + nFliedValue++; + //注册时间 + _tcscpy(st_Banned.tszCreateTime, ppszResult[nFliedValue]); nFliedValue++; stl_ListUser.push_back(st_Banned); - } - DataBase_SQLite_FreeTable(ppszResult); + } + DataBase_SQLite_FreeTable(ppszResult); //导出 *pInt_AddrCount = stl_ListAddr.size(); *pInt_UserCount = stl_ListUser.size(); BaseLib_OperatorMemory_Malloc((XPPPMEM)pppSt_BannedAddr, stl_ListAddr.size(), sizeof(AUTHREG_BANNED)); BaseLib_OperatorMemory_Malloc((XPPPMEM)pppSt_BannedUser, stl_ListUser.size(), sizeof(AUTHREG_BANNED)); - list::const_iterator stl_ListIterator = stl_ListAddr.begin(); + list::const_iterator stl_ListIterator = stl_ListAddr.begin(); for (int i = 0; stl_ListIterator != stl_ListAddr.end(); stl_ListIterator++, i++) - { + { (*pppSt_BannedAddr)[i]->nID = stl_ListIterator->nID; - _tcscpy((*pppSt_BannedAddr)[i]->tszIPStart, stl_ListIterator->tszIPStart); - _tcscpy((*pppSt_BannedAddr)[i]->tszIPEnd, stl_ListIterator->tszIPEnd); + (*pppSt_BannedAddr)[i]->bEnable = stl_ListIterator->bEnable; + _tcscpy((*pppSt_BannedAddr)[i]->tszIPAddr, stl_ListIterator->tszIPAddr); _tcscpy((*pppSt_BannedAddr)[i]->tszLeftTime, stl_ListIterator->tszLeftTime); _tcscpy((*pppSt_BannedAddr)[i]->tszCreateTime, stl_ListIterator->tszCreateTime); - } - stl_ListIterator = stl_ListUser.begin(); - for (int i = 0; stl_ListIterator != stl_ListUser.end(); stl_ListIterator++, i++) - { - (*pppSt_BannedUser)[i]->nID = stl_ListIterator->nID; - _tcscpy((*pppSt_BannedUser)[i]->tszUserName, stl_ListIterator->tszUserName); + } + stl_ListIterator = stl_ListUser.begin(); + for (int i = 0; stl_ListIterator != stl_ListUser.end(); stl_ListIterator++, i++) + { + (*pppSt_BannedUser)[i]->nID = stl_ListIterator->nID; + (*pppSt_BannedAddr)[i]->bEnable = stl_ListIterator->bEnable; + _tcscpy((*pppSt_BannedUser)[i]->tszUserName, stl_ListIterator->tszUserName); _tcscpy((*pppSt_BannedAddr)[i]->tszLeftTime, stl_ListIterator->tszLeftTime); - _tcscpy((*pppSt_BannedUser)[i]->tszCreateTime, stl_ListIterator->tszCreateTime); - } + _tcscpy((*pppSt_BannedUser)[i]->tszCreateTime, stl_ListIterator->tszCreateTime); + } stl_ListAddr.clear(); stl_ListUser.clear(); - return TRUE; + return TRUE; } /******************************************************************** 函数名称:Database_SQLite_BannedExist @@ -1289,59 +1286,59 @@ BOOL CDatabase_SQLite::Database_SQLite_BannedList(AUTHREG_BANNED*** pppSt_Banned *********************************************************************/ BOOL CDatabase_SQLite::Database_SQLite_BannedExist(AUTHREG_BANNED* pSt_Banned) { - SQLPacket_IsErrorOccur = FALSE; + SQLPacket_IsErrorOccur = FALSE; //判断用域名是否存在 if (_tcslen(pSt_Banned->tszUserName) > 0) - { - int nRow = 0; - int nColumn = 0; - CHAR** ppszResult = NULL; - TCHAR tszSQLStatement[1024]; + { + int nRow = 0; + int nColumn = 0; + CHAR** ppszResult = NULL; + TCHAR tszSQLStatement[1024]; memset(tszSQLStatement, '\0', 1024); _stprintf_s(tszSQLStatement, _T("SELECT * FROM Authorize_BannedUser WHERE tszUserName = '%s'"), pSt_Banned->tszUserName); - if (!DataBase_SQLite_GetTable(xhData, tszSQLStatement, &ppszResult, &nRow, &nColumn)) - { - SQLPacket_IsErrorOccur = TRUE; - SQLPacket_dwErrorCode = DataBase_GetLastError(); - return FALSE; - } - DataBase_SQLite_FreeTable(ppszResult); - - if (nRow <= 0) - { - SQLPacket_IsErrorOccur = TRUE; - SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_NOTMATCH; - return FALSE; - } + if (!DataBase_SQLite_GetTable(xhData, tszSQLStatement, &ppszResult, &nRow, &nColumn)) + { + SQLPacket_IsErrorOccur = TRUE; + SQLPacket_dwErrorCode = DataBase_GetLastError(); + return FALSE; + } + DataBase_SQLite_FreeTable(ppszResult); + + if (nRow <= 0) + { + SQLPacket_IsErrorOccur = TRUE; + SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_NOTMATCH; + return FALSE; + } } //判断IP地址是否存在 - if (_tcslen(pSt_Banned->tszIPStart) > 0) - { - int nRow = 0; - int nColumn = 0; - CHAR** ppszResult = NULL; - TCHAR tszSQLStatement[1024]; - memset(tszSQLStatement, '\0', 1024); - - _stprintf_s(tszSQLStatement, _T("SELECT * FROM Authorize_BannedAddr WHERE tszIPStart = '%s'"), pSt_Banned->tszIPStart); - if (!DataBase_SQLite_GetTable(xhData, tszSQLStatement, &ppszResult, &nRow, &nColumn)) - { - SQLPacket_IsErrorOccur = TRUE; - SQLPacket_dwErrorCode = DataBase_GetLastError(); - return FALSE; - } - DataBase_SQLite_FreeTable(ppszResult); - - if (nRow <= 0) - { - SQLPacket_IsErrorOccur = TRUE; - SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_NOTMATCH; - return FALSE; - } - } - return TRUE; + if (_tcslen(pSt_Banned->tszIPAddr) > 0) + { + int nRow = 0; + int nColumn = 0; + CHAR** ppszResult = NULL; + TCHAR tszSQLStatement[1024]; + memset(tszSQLStatement, '\0', 1024); + + _stprintf_s(tszSQLStatement, _T("SELECT * FROM Authorize_BannedAddr WHERE tszIPAddr = '%s'"), pSt_Banned->tszIPAddr); + if (!DataBase_SQLite_GetTable(xhData, tszSQLStatement, &ppszResult, &nRow, &nColumn)) + { + SQLPacket_IsErrorOccur = TRUE; + SQLPacket_dwErrorCode = DataBase_GetLastError(); + return FALSE; + } + DataBase_SQLite_FreeTable(ppszResult); + + if (nRow <= 0) + { + SQLPacket_IsErrorOccur = TRUE; + SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_NOTMATCH; + return FALSE; + } + } + return TRUE; } ////////////////////////////////////////////////////////////////////////// // 保护函数 diff --git a/XEngine_Source/AuthorizeModule_Protocol/Protocol_Packet/Protocol_Packet.cpp b/XEngine_Source/AuthorizeModule_Protocol/Protocol_Packet/Protocol_Packet.cpp index c6eab5c..3127650 100644 --- a/XEngine_Source/AuthorizeModule_Protocol/Protocol_Packet/Protocol_Packet.cpp +++ b/XEngine_Source/AuthorizeModule_Protocol/Protocol_Packet/Protocol_Packet.cpp @@ -646,6 +646,7 @@ BOOL CProtocol_Packet::Protocol_Packet_HttpBanned(TCHAR* ptszMsgBuffer, int* pIn { Json::Value st_JsonObject; st_JsonObject["nID"] = (Json::Value::Int64)(*pppSt_BannedUser)[i]->nID; + st_JsonObject["bEnable"] = (*pppSt_BannedAddr)[i]->bEnable; st_JsonObject["tszLeftTime"] = (*pppSt_BannedUser)[i]->tszLeftTime; st_JsonObject["tszCreateTime"] = (*pppSt_BannedUser)[i]->tszCreateTime; st_JsonObject["tszUserName"] = (*pppSt_BannedUser)[i]->tszUserName; @@ -655,8 +656,8 @@ BOOL CProtocol_Packet::Protocol_Packet_HttpBanned(TCHAR* ptszMsgBuffer, int* pIn { Json::Value st_JsonObject; st_JsonObject["nID"] = (Json::Value::Int64)(*pppSt_BannedAddr)[i]->nID; - st_JsonObject["tszIPEnd"] = (*pppSt_BannedAddr)[i]->tszIPEnd; - st_JsonObject["tszIPStart"] = (*pppSt_BannedAddr)[i]->tszIPStart; + st_JsonObject["bEnable"] = (*pppSt_BannedAddr)[i]->bEnable; + st_JsonObject["tszIPAddr"] = (*pppSt_BannedAddr)[i]->tszIPAddr; st_JsonObject["tszLeftTime"] = (*pppSt_BannedAddr)[i]->tszLeftTime; st_JsonObject["tszCreateTime"] = (*pppSt_BannedAddr)[i]->tszCreateTime; st_JsonAddr.append(st_JsonObject); diff --git a/XEngine_Source/AuthorizeModule_Protocol/Protocol_Parse/Protocol_Parse.cpp b/XEngine_Source/AuthorizeModule_Protocol/Protocol_Parse/Protocol_Parse.cpp index 94b5437..d17dbb9 100644 --- a/XEngine_Source/AuthorizeModule_Protocol/Protocol_Parse/Protocol_Parse.cpp +++ b/XEngine_Source/AuthorizeModule_Protocol/Protocol_Parse/Protocol_Parse.cpp @@ -917,13 +917,13 @@ BOOL CProtocol_Parse::Protocol_Parse_HttpParseBanned(LPCTSTR lpszMsgBuffer, int { pSt_AuthBanned->nID = st_JsonObject["nID"].asInt64(); } - if (!st_JsonObject["tszIPEnd"].isNull()) + if (!st_JsonObject["bEnable"].isNull()) { - _tcscpy(pSt_AuthBanned->tszIPEnd, st_JsonObject["tszIPEnd"].asCString()); + pSt_AuthBanned->bEnable = st_JsonObject["bEnable"].asBool(); } - if (!st_JsonObject["tszIPStart"].isNull()) + if (!st_JsonObject["tszIPAddr"].isNull()) { - _tcscpy(pSt_AuthBanned->tszIPStart, st_JsonObject["tszIPStart"].asCString()); + _tcscpy(pSt_AuthBanned->tszIPAddr, st_JsonObject["tszIPAddr"].asCString()); } if (!st_JsonObject["tszLeftTime"].isNull()) { diff --git a/XEngine_Source/XAuth_Protocol.h b/XEngine_Source/XAuth_Protocol.h index 2be50c1..7f326af 100644 --- a/XEngine_Source/XAuth_Protocol.h +++ b/XEngine_Source/XAuth_Protocol.h @@ -82,8 +82,8 @@ typedef struct { __int64x nID; //ID CHAR tszUserName[MAX_PATH]; //用户名 - CHAR tszIPStart[128]; //起始IP - CHAR tszIPEnd[128]; //结束IP + CHAR tszIPAddr[128]; //IP CHAR tszLeftTime[64]; //过期时间 CHAR tszCreateTime[64]; //创建时间 + BOOL bEnable; //是否启用 }AUTHREG_BANNED, * LPAUTHREG_BANNED; \ No newline at end of file diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Banned.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Banned.cpp index 21fc1d5..be249f5 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Banned.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Banned.cpp @@ -19,7 +19,7 @@ BOOL XEngine_AuthorizeHTTP_Banned(LPCTSTR lpszClientAddr, LPCTSTR lpszAPIName, L Database_SQLite_BannedInsert(&st_Banned); Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,插入禁用列表成功,禁用的用户:%s,禁用的IP地址:%s - %s"), lpszClientAddr, st_Banned.tszUserName, st_Banned.tszIPStart, st_Banned.tszIPEnd); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,插入禁用列表成功,禁用的用户:%s,禁用的IP地址:%s"), lpszClientAddr, st_Banned.tszUserName, st_Banned.tszIPAddr); } else if (0 == _tcsnicmp(lpszAPIDelete, lpszAPIName, _tcslen(lpszAPIDelete))) { @@ -30,7 +30,7 @@ BOOL XEngine_AuthorizeHTTP_Banned(LPCTSTR lpszClientAddr, LPCTSTR lpszAPIName, L Database_SQLite_BannedDelete(&st_Banned); Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,删除禁用列表成功,删除禁用的用户:%s,删除禁用的IP地址:%s - %s"), lpszClientAddr, st_Banned.tszUserName, st_Banned.tszIPStart, st_Banned.tszIPEnd); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,删除禁用列表成功,删除禁用的用户:%s,删除禁用的IP地址:%s"), lpszClientAddr, st_Banned.tszUserName, st_Banned.tszIPAddr); } else if (0 == _tcsnicmp(lpszAPIList, lpszAPIName, _tcslen(lpszAPIList))) { diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_HttpTask.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_HttpTask.cpp index a189aba..85c9d49 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_HttpTask.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_HttpTask.cpp @@ -60,8 +60,8 @@ BOOL XEngine_Client_HttpTask(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int AUTHREG_BANNED st_Banned; memset(&st_Banned, '\0', sizeof(AUTHREG_BANNED)); - _tcscpy(st_Banned.tszIPStart, lpszClientAddr); - BaseLib_OperatorIPAddr_SegAddr(st_Banned.tszIPStart); + _tcscpy(st_Banned.tszIPAddr, lpszClientAddr); + BaseLib_OperatorIPAddr_SegAddr(st_Banned.tszIPAddr); //是否在黑名单 if (Database_SQLite_BannedExist(&st_Banned)) { diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_TCPTask.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_TCPTask.cpp index 30c40a0..51f36b1 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_TCPTask.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_TCPTask.cpp @@ -58,8 +58,8 @@ BOOL XEngine_Client_TCPTask(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int n AUTHREG_BANNED st_Banned; memset(&st_Banned, '\0', sizeof(AUTHREG_BANNED)); - _tcscpy(st_Banned.tszIPStart, lpszClientAddr); - BaseLib_OperatorIPAddr_SegAddr(st_Banned.tszIPStart); + _tcscpy(st_Banned.tszIPAddr, lpszClientAddr); + BaseLib_OperatorIPAddr_SegAddr(st_Banned.tszIPAddr); //是否在黑名单 if (Database_SQLite_BannedExist(&st_Banned)) { From 0aef124cadeb11368bf95110707410d7e5c0087d Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Thu, 2 Feb 2023 15:13:08 +0800 Subject: [PATCH 13/24] fixed:banned is incorrent --- .../Database_SQLite/Database_SQLite.cpp | 4 ++-- .../Protocol_Packet/Protocol_Packet.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/XEngine_Source/AuthorizeModule_Database/Database_SQLite/Database_SQLite.cpp b/XEngine_Source/AuthorizeModule_Database/Database_SQLite/Database_SQLite.cpp index de18cff..431ec6a 100644 --- a/XEngine_Source/AuthorizeModule_Database/Database_SQLite/Database_SQLite.cpp +++ b/XEngine_Source/AuthorizeModule_Database/Database_SQLite/Database_SQLite.cpp @@ -1261,9 +1261,9 @@ BOOL CDatabase_SQLite::Database_SQLite_BannedList(AUTHREG_BANNED*** pppSt_Banned for (int i = 0; stl_ListIterator != stl_ListUser.end(); stl_ListIterator++, i++) { (*pppSt_BannedUser)[i]->nID = stl_ListIterator->nID; - (*pppSt_BannedAddr)[i]->bEnable = stl_ListIterator->bEnable; + (*pppSt_BannedUser)[i]->bEnable = stl_ListIterator->bEnable; _tcscpy((*pppSt_BannedUser)[i]->tszUserName, stl_ListIterator->tszUserName); - _tcscpy((*pppSt_BannedAddr)[i]->tszLeftTime, stl_ListIterator->tszLeftTime); + _tcscpy((*pppSt_BannedUser)[i]->tszLeftTime, stl_ListIterator->tszLeftTime); _tcscpy((*pppSt_BannedUser)[i]->tszCreateTime, stl_ListIterator->tszCreateTime); } diff --git a/XEngine_Source/AuthorizeModule_Protocol/Protocol_Packet/Protocol_Packet.cpp b/XEngine_Source/AuthorizeModule_Protocol/Protocol_Packet/Protocol_Packet.cpp index 3127650..e5634e9 100644 --- a/XEngine_Source/AuthorizeModule_Protocol/Protocol_Packet/Protocol_Packet.cpp +++ b/XEngine_Source/AuthorizeModule_Protocol/Protocol_Packet/Protocol_Packet.cpp @@ -646,7 +646,7 @@ BOOL CProtocol_Packet::Protocol_Packet_HttpBanned(TCHAR* ptszMsgBuffer, int* pIn { Json::Value st_JsonObject; st_JsonObject["nID"] = (Json::Value::Int64)(*pppSt_BannedUser)[i]->nID; - st_JsonObject["bEnable"] = (*pppSt_BannedAddr)[i]->bEnable; + st_JsonObject["bEnable"] = (*pppSt_BannedUser)[i]->bEnable; st_JsonObject["tszLeftTime"] = (*pppSt_BannedUser)[i]->tszLeftTime; st_JsonObject["tszCreateTime"] = (*pppSt_BannedUser)[i]->tszCreateTime; st_JsonObject["tszUserName"] = (*pppSt_BannedUser)[i]->tszUserName; From 675ac4e439101d1d7cfedf9d59897afe75457b4a Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Thu, 2 Feb 2023 15:16:02 +0800 Subject: [PATCH 14/24] modify:banned window for match new protocol --- .../Authorize_Dialog/Dialog_Banned.cpp | 68 +++++++++++------- .../Authorize_Dialog/Dialog_Banned.h | 4 +- .../XEngineAuthorizeApp.aps | Bin 121012 -> 121044 bytes .../XEngineAuthorizeApp.rc | Bin 30170 -> 30370 bytes .../XEngine_AuthorizeApp/resource.h | 1 - 5 files changed, 44 insertions(+), 29 deletions(-) diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.cpp index e59327e..db25199 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.cpp @@ -27,13 +27,13 @@ void CDialog_Banned::DoDataExchange(CDataExchange* pDX) DDX_Control(pDX, IDC_RADIO1, m_RadioIPAddr); DDX_Control(pDX, IDC_RADIO2, m_RadioUser); DDX_Control(pDX, IDC_STATIC_TIPS, m_StaticTips); - DDX_Control(pDX, IDC_STATIC_TIPS2, m_StaticIPEnd); - DDX_Control(pDX, IDC_EDIT2, m_EditIPEnd); DDX_Control(pDX, IDC_LIST1, m_ListAddr); DDX_Control(pDX, IDC_LIST2, m_ListUser); DDX_Control(pDX, IDC_EDIT1, m_EditUser); DDX_Control(pDX, IDC_DATETIMEPICKER1, m_DataTime); DDX_Control(pDX, IDC_CHECK1, m_BtnCheckTime); + DDX_Control(pDX, IDC_RADIO4, m_RadioEnable); + DDX_Control(pDX, IDC_RADIO6, m_RadioDisable); } @@ -54,9 +54,6 @@ void CDialog_Banned::OnBnClickedRadio1() { // TODO: 在此添加控件通知处理程序代码 m_StaticTips.SetWindowText(_T("要禁用的IP地址:")); - m_StaticIPEnd.SetWindowText(_T("禁用的结束IP地址:")); - m_StaticIPEnd.ShowWindow(SW_SHOW); - m_EditIPEnd.ShowWindow(SW_SHOW); } @@ -64,9 +61,6 @@ void CDialog_Banned::OnBnClickedRadio2() { // TODO: 在此添加控件通知处理程序代码 m_StaticTips.SetWindowText(_T("要禁用的用户名:")); - - m_StaticIPEnd.ShowWindow(SW_HIDE); - m_EditIPEnd.ShowWindow(SW_HIDE); } @@ -78,21 +72,22 @@ BOOL CDialog_Banned::OnInitDialog() m_StaticTips.SetWindowText(_T("要禁用的用户名:")); m_RadioUser.SetCheck(BST_CHECKED); - m_StaticIPEnd.ShowWindow(SW_HIDE); - m_EditIPEnd.ShowWindow(SW_HIDE); - m_ListAddr.InsertColumn(0, _T("序号"), LVCFMT_LEFT, 80); - m_ListAddr.InsertColumn(1, _T("起始IP地址"), LVCFMT_LEFT, 120); - m_ListAddr.InsertColumn(2, _T("结束IP地址"), LVCFMT_LEFT, 120); - m_ListAddr.InsertColumn(3, _T("创建日期"), LVCFMT_LEFT, 120); + m_ListAddr.InsertColumn(1, _T("是否启用"), LVCFMT_LEFT, 60); + m_ListAddr.InsertColumn(2, _T("IP地址"), LVCFMT_LEFT, 120); + m_ListAddr.InsertColumn(3, _T("过期日期"), LVCFMT_LEFT, 120); + m_ListAddr.InsertColumn(4, _T("创建日期"), LVCFMT_LEFT, 120); m_ListAddr.SetExtendedStyle(LVS_EX_FULLROWSELECT); m_ListUser.InsertColumn(0, _T("序号"), LVCFMT_LEFT, 80); - m_ListUser.InsertColumn(1, _T("用户名"), LVCFMT_LEFT, 120); - m_ListUser.InsertColumn(2, _T("创建日期"), LVCFMT_LEFT, 120); + m_ListUser.InsertColumn(1, _T("是否启用"), LVCFMT_LEFT, 60); + m_ListUser.InsertColumn(2, _T("用户名"), LVCFMT_LEFT, 120); + m_ListUser.InsertColumn(3, _T("过期日期"), LVCFMT_LEFT, 120); + m_ListUser.InsertColumn(4, _T("创建日期"), LVCFMT_LEFT, 120); m_ListUser.SetExtendedStyle(LVS_EX_FULLROWSELECT); m_DataTime.EnableWindow(FALSE); + m_RadioEnable.SetCheck(BST_CHECKED); m_DataTime.SetFormat(_T("yyyy-mm-dd hh:mm:ss")); return TRUE; // return TRUE unless you set the focus to a control // 异常: OCX 属性页应返回 FALSE @@ -106,7 +101,6 @@ void CDialog_Banned::OnBnClickedButton2() CString m_StrIPPort; CString m_StrToken; CString m_StrUser; - CString m_StrIPEnd; CString m_StrTime; CDialog_Config* pWnd = (CDialog_Config*)CDialog_Config::FromHandle(hConfigWnd); @@ -114,7 +108,6 @@ void CDialog_Banned::OnBnClickedButton2() pWnd->m_EditIPPort.GetWindowText(m_StrIPPort); pWnd->m_EditToken.GetWindowText(m_StrToken); m_EditUser.GetWindowText(m_StrUser); - m_EditIPEnd.GetWindowText(m_StrIPEnd); m_DataTime.GetWindowText(m_StrTime); TCHAR tszUrlAddr[MAX_PATH]; @@ -132,14 +125,20 @@ void CDialog_Banned::OnBnClickedButton2() } else { - st_JsonObject["tszIPStart"] = m_StrUser.GetBuffer(); - st_JsonObject["tszIPEnd"] = m_StrIPEnd.GetBuffer(); + st_JsonObject["tszIPAddr"] = m_StrUser.GetBuffer(); + } + if (BST_CHECKED == m_RadioEnable.GetCheck()) + { + st_JsonObject["bEnable"] = true; + } + else + { + st_JsonObject["bEnable"] = false; } if (BST_CHECKED == m_BtnCheckTime.GetCheck()) { st_JsonObject["tszLeftTime"] = m_StrTime.GetBuffer(); } - st_JsonRoot["st_Banned"] = st_JsonObject; //是否加密 TCHAR tszPassBuffer[64]; @@ -271,9 +270,17 @@ void CDialog_Banned::OnBnClickedButton4() m_ListAddr.InsertItem(i, _T("")); m_ListAddr.SetItemText(i, 0, tszIndex); - m_ListAddr.SetItemText(i, 1, st_JsonArray["tszIPStart"].asCString()); - m_ListAddr.SetItemText(i, 2, st_JsonArray["tszIPEnd"].asCString()); - m_ListAddr.SetItemText(i, 3, st_JsonArray["tszTime"].asCString()); + if (st_JsonArray["bEnable"].asBool()) + { + m_ListAddr.SetItemText(i, 1, "启用"); + } + else + { + m_ListAddr.SetItemText(i, 1, "禁用"); + } + m_ListAddr.SetItemText(i, 2, st_JsonArray["tszIPAddr"].asCString()); + m_ListAddr.SetItemText(i, 3, st_JsonArray["tszLeftTime"].asCString()); + m_ListAddr.SetItemText(i, 4, st_JsonArray["tszCreateTime"].asCString()); } for (unsigned int i = 0; i < st_JsonRoot["ArrayUser"].size(); i++) { @@ -285,8 +292,17 @@ void CDialog_Banned::OnBnClickedButton4() m_ListUser.InsertItem(i, _T("")); m_ListUser.SetItemText(i, 0, tszIndex); - m_ListUser.SetItemText(i, 1, st_JsonArray["tszUserName"].asCString()); - m_ListUser.SetItemText(i, 2, st_JsonArray["tszTime"].asCString()); + if (st_JsonArray["bEnable"].asBool()) + { + m_ListUser.SetItemText(i, 1, "启用"); + } + else + { + m_ListUser.SetItemText(i, 1, "禁用"); + } + m_ListUser.SetItemText(i, 2, st_JsonArray["tszUserName"].asCString()); + m_ListUser.SetItemText(i, 3, st_JsonArray["tszLeftTime"].asCString()); + m_ListUser.SetItemText(i, 4, st_JsonArray["tszCreateTime"].asCString()); } BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer); } diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.h b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.h index d593ca2..f9fbefe 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.h +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.h @@ -28,8 +28,6 @@ class CDialog_Banned : public CDialogEx CStatic m_StaticTips; afx_msg void OnBnClickedRadio2(); virtual BOOL OnInitDialog(); - CStatic m_StaticIPEnd; - CEdit m_EditIPEnd; afx_msg void OnBnClickedButton2(); afx_msg void OnBnClickedButton4(); afx_msg void OnBnClickedButton3(); @@ -39,4 +37,6 @@ class CDialog_Banned : public CDialogEx CDateTimeCtrl m_DataTime; afx_msg void OnBnClickedCheck1(); CButton m_BtnCheckTime; + CButton m_RadioEnable; + CButton m_RadioDisable; }; diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngineAuthorizeApp.aps b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngineAuthorizeApp.aps index cca290164d0511de4b62bfa0567d9b725dd41fb2..eaa7e81dcd459807a75426b16c3fa1a79ab61212 100644 GIT binary patch delta 420 zcmX|+yGw#$6vof_zRb)n6b_1%SrRVcB`FPpM5BZT!w+%@gf6x<<&ZdN&5|K$8HzY_S7C@;vBK{A1Z>(6)lIQ&l>r zO5>v*H>grT6OI!WF)p|Rlqg~Z?`gP%t0<7Kgs#yAj_Do28>Xug>VKC*tdCAQ>&fqqM z>Zrq8O4ZRN`m0E~Dr#f`=SAqN^L0s@2HO)k*u-}xZkXur5JNQzH*gZobkRWVFBvj$ AJpcdz delta 362 zcmX|*F-Ssj5Qp#gUS=g)fe;cUmSdoXgN9TuZFmv%K!<`rGP5m+8XMGRNf0?`E*v64 zEJSEepFw1S4n@w<7!57IFdB|15j7Z%s9JcQJZ_JV1Ol0InS^TSX{C>ZcNqhx)5>5 zO^Y-{zkIF3ru28kAZb9GoC0<_BsxtGXZHP{z3==&PjkEfZ6`r<;f;1^l#lB0%MxmQ zQ^!;}@CdI-Jbu{3ECQTw!j3H8H4&734e(L}HiIP2Y_qK;P?G)KxZo`ja#a{l!Wirt PUkyHQVH#sxX<_mY6x3%t diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngineAuthorizeApp.rc b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngineAuthorizeApp.rc index 8d198b08660c4d165424e733cd529b1663a2584a..e8fb415785e13b670bcd5645d1a766688f157ce9 100644 GIT binary patch delta 222 zcmcchnsL!v#tkCD%oYr$o5h0_87K4j$Zd8A5nyCBWH4ed+8i7j$~ZYsOlk6-a1~y# z5Q7d#g27_)+wk|oh73TBP!VGwZOC9a`J%q)WItV{$tsaWyv7U$Kot-jW|P;dTXX2A zsfFl=Xp~OgAR{Gi2G(rIU9BHd2t9Ea7RxZ4R^yWPkyK=74h?0TywA))(1<~Y!H@x{07x4F zq2XltV9UuLtdu63gc?YKWP!?|awcFNNX%k#qL}{V6gid22RvEW%^~uWC(21q4lrPu zyg@;3a)B<-=RKmd4W0$zXe!@0Z<%dpULLJ HC_@ Date: Fri, 3 Feb 2023 09:26:11 +0800 Subject: [PATCH 15/24] modify:could be enable and disable the blacklist function --- .../AuthorizeHTTP_Post/AuthorizeHTTP_User.cpp | 11 +++++++---- .../XEngine_AuthorizeService/Authorize_HttpTask.cpp | 11 +++++++---- .../XEngine_AuthorizeService/Authorize_TCPTask.cpp | 13 ++++++++----- 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_User.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_User.cpp index 8fabbbb..5716185 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_User.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_User.cpp @@ -58,10 +58,13 @@ BOOL XEngine_AuthorizeHTTP_User(LPCTSTR lpszClientAddr, LPCTSTR lpszAPIName, LPC _tcscpy(st_Banned.tszUserName, st_UserTable.st_UserInfo.tszUserName); if (Database_SQLite_BannedExist(&st_Banned)) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 423, "user name is banned"); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,用户名:%s,注册失败,用户名已经被禁用!"), lpszClientAddr, st_Banned.tszUserName); - return FALSE; + if (st_Banned.bEnable) + { + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 423, "user name is banned"); + XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,用户名:%s,注册失败,用户名已经被禁用!"), lpszClientAddr, st_Banned.tszUserName); + return FALSE; + } } //填充写入数据 _stprintf(st_UserTable.tszLeftTime, _T("%d"), st_AuthConfig.st_XVerification.nTryTime); diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_HttpTask.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_HttpTask.cpp index 85c9d49..1ef3ec8 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_HttpTask.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_HttpTask.cpp @@ -65,10 +65,13 @@ BOOL XEngine_Client_HttpTask(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int //是否在黑名单 if (Database_SQLite_BannedExist(&st_Banned)) { - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 423, "ip address is banned"); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("客户端:%s,登录连接被阻止,IP地址被禁用!"), lpszClientAddr); - return FALSE; + if (st_Banned.bEnable) + { + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 423, "ip address is banned"); + XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("客户端:%s,登录连接被阻止,IP地址被禁用!"), lpszClientAddr); + return FALSE; + } } if (0 == _tcsnicmp(lpszMethodPost, pSt_HTTPParament->tszHttpMethod, _tcslen(lpszMethodPost))) { diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_TCPTask.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_TCPTask.cpp index 51f36b1..e0d0228 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_TCPTask.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_TCPTask.cpp @@ -63,11 +63,14 @@ BOOL XEngine_Client_TCPTask(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int n //是否在黑名单 if (Database_SQLite_BannedExist(&st_Banned)) { - pSt_ProtocolHdr->wReserve = 423; - Protocol_Packet_HDRComm(tszSDBuffer, &nSDLen, pSt_ProtocolHdr, nNetType); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, nNetType); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("客户端:%s,登录连接被阻止,IP地址被禁用!"), lpszClientAddr); - return FALSE; + if (st_Banned.bEnable) + { + pSt_ProtocolHdr->wReserve = 423; + Protocol_Packet_HDRComm(tszSDBuffer, &nSDLen, pSt_ProtocolHdr, nNetType); + XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, nNetType); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("客户端:%s,登录连接被阻止,IP地址被禁用!"), lpszClientAddr); + return FALSE; + } } if (XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_AUTH_REQLOGIN == pSt_ProtocolHdr->unOperatorCode) { From 90f494078758e24f934ff790808e2f6bba97f3d6 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Fri, 3 Feb 2023 11:10:21 +0800 Subject: [PATCH 16/24] fixed:delete banned list is incorrent --- .../Authorize_Dialog/Dialog_Banned.cpp | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.cpp index db25199..bbdae31 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.cpp @@ -311,8 +311,6 @@ void CDialog_Banned::OnBnClickedButton4() void CDialog_Banned::OnBnClickedButton3() { CString m_StrUser; - CString m_StrIPStart; - CString m_StrIPEnd; Json::Value st_JsonRoot; Json::Value st_JsonObject; // TODO: 在此添加控件通知处理程序代码 @@ -320,18 +318,15 @@ void CDialog_Banned::OnBnClickedButton3() int nSelect = m_ListUser.GetNextSelectedItem(pSt_Sition); if (nSelect >= 0) { - m_StrUser = m_ListUser.GetItemText(nSelect, 1); + m_StrUser = m_ListUser.GetItemText(nSelect, 2); st_JsonObject["tszUserName"] = m_StrUser.GetBuffer(); } pSt_Sition = m_ListAddr.GetFirstSelectedItemPosition(); nSelect = m_ListAddr.GetNextSelectedItem(pSt_Sition); if (nSelect >= 0) { - m_StrIPStart = m_ListAddr.GetItemText(nSelect, 1); - m_StrIPEnd = m_ListAddr.GetItemText(nSelect, 2); - - st_JsonObject["tszIPStart"] = m_StrIPStart.GetBuffer(); - st_JsonObject["tszIPEnd"] = m_StrIPEnd.GetBuffer(); + m_StrUser = m_ListAddr.GetItemText(nSelect, 2); + st_JsonObject["tszIPAddr"] = m_StrUser.GetBuffer(); } CString m_StrIPAddr; CString m_StrIPPort; From 77100b5449ccd4b0b5bc35733ccb8112657d9b75 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Fri, 3 Feb 2023 11:33:02 +0800 Subject: [PATCH 17/24] added:banned window support click show info in add window --- .../Authorize_Dialog/Dialog_Banned.cpp | 126 ++++++++++++++++++ .../Authorize_Dialog/Dialog_Banned.h | 3 + .../XEngineAuthorizeApp.aps | Bin 121044 -> 121084 bytes .../XEngineAuthorizeApp.rc | Bin 30370 -> 30474 bytes .../XEngine_AuthorizeApp/resource.h | 1 + 5 files changed, 130 insertions(+) diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.cpp index bbdae31..a9a341a 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.cpp @@ -44,6 +44,9 @@ BEGIN_MESSAGE_MAP(CDialog_Banned, CDialogEx) ON_BN_CLICKED(IDC_BUTTON4, &CDialog_Banned::OnBnClickedButton4) ON_BN_CLICKED(IDC_BUTTON3, &CDialog_Banned::OnBnClickedButton3) ON_BN_CLICKED(IDC_CHECK1, &CDialog_Banned::OnBnClickedCheck1) + ON_BN_CLICKED(IDC_BUTTON5, &CDialog_Banned::OnBnClickedButton5) + ON_NOTIFY(NM_CLICK, IDC_LIST2, &CDialog_Banned::OnNMClickList2) + ON_NOTIFY(NM_CLICK, IDC_LIST1, &CDialog_Banned::OnNMClickList1) END_MESSAGE_MAP() @@ -415,3 +418,126 @@ void CDialog_Banned::OnBnClickedCheck1() m_BtnCheckTime.SetCheck(BST_UNCHECKED); } } + + +void CDialog_Banned::OnBnClickedButton5() +{ + // TODO: 在此添加控件通知处理程序代码 +} + + +void CDialog_Banned::OnNMClickList2(NMHDR* pNMHDR, LRESULT* pResult) +{ + LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast(pNMHDR); + // TODO: 在此添加控件通知处理程序代码 + POSITION pSt_Sition = m_ListUser.GetFirstSelectedItemPosition(); + int nItemCount = m_ListUser.GetNextSelectedItem(pSt_Sition); + if (nItemCount < 0) + { + return; + } + CString m_StrEnable = m_ListUser.GetItemText(nItemCount, 1); + CString m_StrUser = m_ListUser.GetItemText(nItemCount, 2); + CString m_StrTime = m_ListUser.GetItemText(nItemCount, 3); + + if (0 == _tcsnicmp(m_StrEnable.GetBuffer(), _T("启用"), m_StrEnable.GetLength())) + { + m_RadioEnable.SetCheck(BST_CHECKED); + m_RadioDisable.SetCheck(BST_UNCHECKED); + } + else + { + m_RadioEnable.SetCheck(BST_UNCHECKED); + m_RadioDisable.SetCheck(BST_CHECKED); + } + m_RadioIPAddr.SetCheck(BST_UNCHECKED); + m_RadioUser.SetCheck(BST_CHECKED); + + m_EditUser.SetWindowText(m_StrUser.GetBuffer()); + if (m_StrTime.GetLength() > 0) + { + SYSTEMTIME st_SysTime; + XENGINE_LIBTIMER st_LibTime; + + memset(&st_SysTime, '\0', sizeof(SYSTEMTIME)); + memset(&st_LibTime, '\0', sizeof(XENGINE_LIBTIMER)); + + BaseLib_OperatorTime_StrToTime(m_StrTime.GetBuffer(), &st_LibTime); + + st_SysTime.wYear = st_LibTime.wYear; + st_SysTime.wMonth = st_LibTime.wMonth; + st_SysTime.wDay = st_LibTime.wDay; + st_SysTime.wHour = st_LibTime.wHour; + st_SysTime.wMinute = st_LibTime.wMinute; + st_SysTime.wSecond = st_LibTime.wSecond; + + m_BtnCheckTime.SetCheck(BST_CHECKED); + m_DataTime.EnableWindow(TRUE); + m_DataTime.SetTime(&st_SysTime); + } + else + { + m_BtnCheckTime.SetCheck(BST_UNCHECKED); + m_DataTime.EnableWindow(FALSE); + } + *pResult = 0; +} + + +void CDialog_Banned::OnNMClickList1(NMHDR* pNMHDR, LRESULT* pResult) +{ + LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast(pNMHDR); + // TODO: 在此添加控件通知处理程序代码 + POSITION pSt_Sition = m_ListAddr.GetFirstSelectedItemPosition(); + int nItemCount = m_ListAddr.GetNextSelectedItem(pSt_Sition); + if (nItemCount < 0) + { + return; + } + CString m_StrEnable = m_ListAddr.GetItemText(nItemCount, 1); + CString m_StrUser = m_ListAddr.GetItemText(nItemCount, 2); + CString m_StrTime = m_ListAddr.GetItemText(nItemCount, 3); + + if (0 == _tcsnicmp(m_StrEnable.GetBuffer(), _T("启用"), m_StrEnable.GetLength())) + { + m_RadioEnable.SetCheck(BST_CHECKED); + m_RadioDisable.SetCheck(BST_UNCHECKED); + } + else + { + m_RadioEnable.SetCheck(BST_UNCHECKED); + m_RadioDisable.SetCheck(BST_CHECKED); + } + m_RadioIPAddr.SetCheck(BST_UNCHECKED); + m_RadioUser.SetCheck(BST_CHECKED); + + m_EditUser.SetWindowText(m_StrUser.GetBuffer()); + if (m_StrTime.GetLength() > 0) + { + SYSTEMTIME st_SysTime; + XENGINE_LIBTIMER st_LibTime; + + memset(&st_SysTime, '\0', sizeof(SYSTEMTIME)); + memset(&st_LibTime, '\0', sizeof(XENGINE_LIBTIMER)); + + BaseLib_OperatorTime_StrToTime(m_StrTime.GetBuffer(), &st_LibTime); + + st_SysTime.wYear = st_LibTime.wYear; + st_SysTime.wMonth = st_LibTime.wMonth; + st_SysTime.wDay = st_LibTime.wDay; + st_SysTime.wHour = st_LibTime.wHour; + st_SysTime.wMinute = st_LibTime.wMinute; + st_SysTime.wSecond = st_LibTime.wSecond; + + m_BtnCheckTime.SetCheck(BST_CHECKED); + m_DataTime.EnableWindow(TRUE); + m_DataTime.SetTime(&st_SysTime); + } + else + { + m_BtnCheckTime.SetCheck(BST_UNCHECKED); + m_DataTime.EnableWindow(FALSE); + } + + *pResult = 0; +} diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.h b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.h index f9fbefe..ae7b1e1 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.h +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.h @@ -39,4 +39,7 @@ class CDialog_Banned : public CDialogEx CButton m_BtnCheckTime; CButton m_RadioEnable; CButton m_RadioDisable; + afx_msg void OnBnClickedButton5(); + afx_msg void OnNMClickList2(NMHDR* pNMHDR, LRESULT* pResult); + afx_msg void OnNMClickList1(NMHDR* pNMHDR, LRESULT* pResult); }; diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngineAuthorizeApp.aps b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngineAuthorizeApp.aps index eaa7e81dcd459807a75426b16c3fa1a79ab61212..5176036667913fbb47b47cd5cc073807f0e41b77 100644 GIT binary patch delta 470 zcmXw#Pe_w-7{{OQ`#L9xA#`yQw__cu&3}+}=%BX*M|dz07Stj-*e<(xQtS|wF?f@2 z;#D!+!Hqd)4n~6pa|xC1bqhK~XAuRBBEy~^+Tr2L_w#%X4^J)QJ;`{JL-zO%oaxaA znbg%Ng4wUpo1QjXAk8{noz|JISiUQU?0v-frGgMH5}TN{MDoc^Gy@T`ijZ|D%1RYs zyyEXFV%Cory!R2`_2`8grc+uAc{I*0CacYXV%IfREu_^v+`uL#41AddpJWxL721#1 zz}suuJ{#o&U84*az)(S9dtH^wMX?iO20H%%Q0k@u delta 416 zcmXBQze_?<6bJD8eb##g4dPUY)`OsyN-|o)Au?!?CWnGVB87(jgnl43G&BST-yx)i zz@nkVz#xo*iZZ9NEYP8?v7s@0-D4Nd{hY%&oZ4!cI4kxoSux#NL2y!rR| zSZlkXpiCXsx}7Z8N#qx-h)by+rMOo`7b6#Nw|kVlb98e25<_&~p^f1OOdH{NVdnuR zFv{H$hK%4a%OwO*WTS+n5uIe>5w$|1jBg8G&Q{Qe2vZdVu_gG@t67hkhf@8A>EG<2 zxo9f&b433O{McaV1>JfuChTxUs4*iPuqZ6CE=1Y*@A+PJbYI+$G&KT3UZf?PoTXeO`Ilh>Y)*Oq%DeF~C=*{+~mhYVM=3v gK0!Io@0#OmHg6YDEp5$2e};|@UdwcVA8+vf0p4DXga7~l diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngineAuthorizeApp.rc b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngineAuthorizeApp.rc index e8fb415785e13b670bcd5645d1a766688f157ce9..09573abcb6079b568083109c6b1319bd11811597 100644 GIT binary patch delta 61 zcmZ4Vma*#{;|7y3W)lXZ$>&3zH&=x*u}pSQpWPfus$at)ere0eqbkZU6uP delta 35 rcmeBr$GGS%;|7y3W(x+($>&3zH&=x*u}t>J=bPM2p diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/resource.h b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/resource.h index 5c89578..f0fc68e 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/resource.h +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/resource.h @@ -39,6 +39,7 @@ #define IDC_RADIO3 1017 #define IDC_STATIC_TIPS 1017 #define IDC_RADIO4 1018 +#define IDC_STATIC_TIPS2 1018 #define IDC_RADIO5 1019 #define IDC_DATETIMEPICKER1 1019 #define IDC_RADIO6 1020 From 91c0215e845be447fb0151cef43cbf07ddc90a42 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Fri, 3 Feb 2023 11:47:45 +0800 Subject: [PATCH 18/24] added:banned function to modify support --- .../AuthorizeModule_Database.def | 7 +- .../Database_Define.h | 16 ++- .../Database_SQLite/Database_SQLite.cpp | 43 ++++++++ .../Database_SQLite/Database_SQLite.h | 1 + .../AuthorizeModule_Database/pch.cpp | 4 + .../Authorize_Dialog/Dialog_Banned.cpp | 99 ++++++++++++++++++- .../AuthorizeHTTP_Banned.cpp | 12 +++ 7 files changed, 178 insertions(+), 4 deletions(-) diff --git a/XEngine_Source/AuthorizeModule_Database/AuthorizeModule_Database.def b/XEngine_Source/AuthorizeModule_Database/AuthorizeModule_Database.def index f24c916..6ccd03f 100644 --- a/XEngine_Source/AuthorizeModule_Database/AuthorizeModule_Database.def +++ b/XEngine_Source/AuthorizeModule_Database/AuthorizeModule_Database.def @@ -5,6 +5,7 @@ EXPORTS Database_SQLite_Init Database_SQLite_Destroy + Database_SQLite_UserDelete Database_SQLite_UserRegister Database_SQLite_UserQuery @@ -12,17 +13,21 @@ EXPORTS Database_SQLite_UserLeave Database_SQLite_UserSet Database_SQLite_UserList + Database_SQLite_SerialInsert Database_SQLite_SerialDelete Database_SQLite_SerialQuery Database_SQLite_SerialQueryAll Database_SQLite_SerialPush + Database_SQLite_TryInsert Database_SQLite_TryQuery Database_SQLite_TryDelete Database_SQLite_TryClear Database_SQLite_TrySet + Database_SQLite_BannedInsert Database_SQLite_BannedDelete Database_SQLite_BannedList - Database_SQLite_BannedExist \ No newline at end of file + Database_SQLite_BannedExist + Database_SQLite_BannedUPDate \ No newline at end of file diff --git a/XEngine_Source/AuthorizeModule_Database/Database_Define.h b/XEngine_Source/AuthorizeModule_Database/Database_Define.h index 79973e6..bbdd41f 100644 --- a/XEngine_Source/AuthorizeModule_Database/Database_Define.h +++ b/XEngine_Source/AuthorizeModule_Database/Database_Define.h @@ -403,4 +403,18 @@ extern "C" BOOL Database_SQLite_BannedList(AUTHREG_BANNED*** pppSt_BannedUser, i 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL Database_SQLite_BannedExist(AUTHREG_BANNED* pSt_Banned); \ No newline at end of file +extern "C" BOOL Database_SQLite_BannedExist(AUTHREG_BANNED* pSt_Banned); +/******************************************************************** +函数名称:Database_SQLite_BannedUPDate +函数功能:更新名单列表信息 + 参数.一:pSt_Banned + In/Out:In + 类型:数据结构指针 + 可空:N + 意思:要操作的数据 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +extern "C" BOOL Database_SQLite_BannedUPDate(AUTHREG_BANNED* pSt_Banned); \ No newline at end of file diff --git a/XEngine_Source/AuthorizeModule_Database/Database_SQLite/Database_SQLite.cpp b/XEngine_Source/AuthorizeModule_Database/Database_SQLite/Database_SQLite.cpp index 431ec6a..1745499 100644 --- a/XEngine_Source/AuthorizeModule_Database/Database_SQLite/Database_SQLite.cpp +++ b/XEngine_Source/AuthorizeModule_Database/Database_SQLite/Database_SQLite.cpp @@ -1340,6 +1340,49 @@ BOOL CDatabase_SQLite::Database_SQLite_BannedExist(AUTHREG_BANNED* pSt_Banned) } return TRUE; } +/******************************************************************** +函数名称:Database_SQLite_BannedUPDate +函数功能:更新名单列表信息 + 参数.一:pSt_Banned + In/Out:In + 类型:数据结构指针 + 可空:N + 意思:要操作的数据 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +BOOL CDatabase_SQLite::Database_SQLite_BannedUPDate(AUTHREG_BANNED* pSt_Banned) +{ + SQLPacket_IsErrorOccur = FALSE; + + if (NULL == pSt_Banned) + { + SQLPacket_IsErrorOccur = TRUE; + SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_PARAMENT; + return FALSE; + } + TCHAR tszSQLStatement[1024]; + memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); + //处理的类型 + if (_tcslen(pSt_Banned->tszUserName) > 0) + { + _stprintf_s(tszSQLStatement, _T("UPDATE Authorize_BannedUser SET bEnable = %d,tszLeftTime = '%s' WHERE tszUserName = '%s'"), pSt_Banned->bEnable, pSt_Banned->tszLeftTime, pSt_Banned->tszUserName); + } + else + { + _stprintf_s(tszSQLStatement, _T("UPDATE Authorize_BannedAddr SET bEnable = %d,tszLeftTime = '%s' WHERE tszIPAddr = '%s'"), pSt_Banned->bEnable, pSt_Banned->tszLeftTime, pSt_Banned->tszIPAddr); + } + //插入数据库 + if (!DataBase_SQLite_Exec(xhData, tszSQLStatement)) + { + SQLPacket_IsErrorOccur = TRUE; + SQLPacket_dwErrorCode = DataBase_GetLastError(); + return FALSE; + } + return TRUE; +} ////////////////////////////////////////////////////////////////////////// // 保护函数 ////////////////////////////////////////////////////////////////////////// diff --git a/XEngine_Source/AuthorizeModule_Database/Database_SQLite/Database_SQLite.h b/XEngine_Source/AuthorizeModule_Database/Database_SQLite/Database_SQLite.h index 16af14e..180945a 100644 --- a/XEngine_Source/AuthorizeModule_Database/Database_SQLite/Database_SQLite.h +++ b/XEngine_Source/AuthorizeModule_Database/Database_SQLite/Database_SQLite.h @@ -47,6 +47,7 @@ class CDatabase_SQLite BOOL Database_SQLite_BannedDelete(AUTHREG_BANNED* pSt_Banned); BOOL Database_SQLite_BannedList(AUTHREG_BANNED*** pppSt_BannedUser, int* pInt_UserCount, AUTHREG_BANNED*** pppSt_BannedAddr, int* pInt_AddrCount); BOOL Database_SQLite_BannedExist(AUTHREG_BANNED* pSt_Banned); + BOOL Database_SQLite_BannedUPDate(AUTHREG_BANNED* pSt_Banned); protected: BOOL Database_SQLite_UserPayTime(LPCTSTR lpszUserName, LPCTSTR lpszUserTime, LPCTSTR lpszCardTime, ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE en_AuthSerialType, ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE en_AuthUserType); private: diff --git a/XEngine_Source/AuthorizeModule_Database/pch.cpp b/XEngine_Source/AuthorizeModule_Database/pch.cpp index 2df7b11..ec2b9f8 100644 --- a/XEngine_Source/AuthorizeModule_Database/pch.cpp +++ b/XEngine_Source/AuthorizeModule_Database/pch.cpp @@ -120,4 +120,8 @@ extern "C" BOOL Database_SQLite_BannedList(AUTHREG_BANNED * **pppSt_BannedUser, extern "C" BOOL Database_SQLite_BannedExist(AUTHREG_BANNED * pSt_Banned) { return m_SQLAuth.Database_SQLite_BannedExist(pSt_Banned); +} +extern "C" BOOL Database_SQLite_BannedUPDate(AUTHREG_BANNED * pSt_Banned) +{ + return m_SQLAuth.Database_SQLite_BannedUPDate(pSt_Banned); } \ No newline at end of file diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.cpp index a9a341a..f2d1b97 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Banned.cpp @@ -423,6 +423,101 @@ void CDialog_Banned::OnBnClickedCheck1() void CDialog_Banned::OnBnClickedButton5() { // TODO: 在此添加控件通知处理程序代码 + CString m_StrIPAddr; + CString m_StrIPPort; + CString m_StrToken; + CString m_StrUser; + CString m_StrTime; + + CDialog_Config* pWnd = (CDialog_Config*)CDialog_Config::FromHandle(hConfigWnd); + pWnd->m_EditIPAddr.GetWindowText(m_StrIPAddr); + pWnd->m_EditIPPort.GetWindowText(m_StrIPPort); + pWnd->m_EditToken.GetWindowText(m_StrToken); + m_EditUser.GetWindowText(m_StrUser); + m_DataTime.GetWindowText(m_StrTime); + + TCHAR tszUrlAddr[MAX_PATH]; + memset(tszUrlAddr, '\0', MAX_PATH); + + _stprintf(tszUrlAddr, _T("http://%s:%s/auth/banned/modify"), m_StrIPAddr.GetBuffer(), m_StrIPPort.GetBuffer()); + int nMsgLen = 0; + CHAR* ptszMsgBuffer = NULL; + Json::Value st_JsonRoot; + Json::Value st_JsonObject; + st_JsonRoot["xhToken"] = _ttoi64(m_StrToken.GetBuffer()); + if (BST_CHECKED == m_RadioUser.GetCheck()) + { + st_JsonObject["tszUserName"] = m_StrUser.GetBuffer(); + } + else + { + st_JsonObject["tszIPAddr"] = m_StrUser.GetBuffer(); + } + if (BST_CHECKED == m_RadioEnable.GetCheck()) + { + st_JsonObject["bEnable"] = true; + } + else + { + st_JsonObject["bEnable"] = false; + } + if (BST_CHECKED == m_BtnCheckTime.GetCheck()) + { + st_JsonObject["tszLeftTime"] = m_StrTime.GetBuffer(); + } + st_JsonRoot["st_Banned"] = st_JsonObject; + //是否加密 + TCHAR tszPassBuffer[64]; + memset(tszPassBuffer, '\0', sizeof(tszPassBuffer)); + ::GetDlgItemText(hConfigWnd, IDC_EDIT6, tszPassBuffer, sizeof(tszPassBuffer)); + if (bCrypto) + { + TCHAR tszMsgBuffer[2048]; + memset(tszMsgBuffer, '\0', sizeof(tszMsgBuffer)); + + nMsgLen = st_JsonRoot.toStyledString().length(); + OPenSsl_XCrypto_Encoder(st_JsonRoot.toStyledString().c_str(), &nMsgLen, (UCHAR*)tszMsgBuffer, tszPassBuffer); + APIClient_Http_Request(_T("POST"), tszUrlAddr, tszMsgBuffer, NULL, &ptszMsgBuffer, &nMsgLen); + } + else + { + APIClient_Http_Request(_T("POST"), tszUrlAddr, st_JsonRoot.toStyledString().c_str(), NULL, &ptszMsgBuffer, &nMsgLen); + } + JSONCPP_STRING st_JsonError; + Json::CharReaderBuilder st_ReaderBuilder; + st_JsonRoot.clear(); + std::unique_ptr const pSt_JsonReader(st_ReaderBuilder.newCharReader()); + if (bCrypto) + { + TCHAR tszMsgBuffer[2048]; + memset(tszMsgBuffer, '\0', sizeof(tszMsgBuffer)); + + OPenSsl_XCrypto_Decoder(ptszMsgBuffer, &nMsgLen, tszMsgBuffer, tszPassBuffer); + if (!pSt_JsonReader->parse(tszMsgBuffer, tszMsgBuffer + nMsgLen, &st_JsonRoot, &st_JsonError)) + { + Authorize_Help_LogPrint(_T("解析客户列表接口数据错误,无法继续")); + return; + } + } + else + { + if (!pSt_JsonReader->parse(ptszMsgBuffer, ptszMsgBuffer + nMsgLen, &st_JsonRoot, &st_JsonError)) + { + Authorize_Help_LogPrint(_T("解析客户列表接口数据错误,无法继续")); + return; + } + } + + if (0 == st_JsonRoot["code"].asInt()) + { + Authorize_Help_LogPrint(_T("更新黑名单信息成功")); + } + else + { + Authorize_Help_LogPrint(_T("更新黑名单信息成功")); + } + BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer); + OnBnClickedButton4(); } @@ -508,8 +603,8 @@ void CDialog_Banned::OnNMClickList1(NMHDR* pNMHDR, LRESULT* pResult) m_RadioEnable.SetCheck(BST_UNCHECKED); m_RadioDisable.SetCheck(BST_CHECKED); } - m_RadioIPAddr.SetCheck(BST_UNCHECKED); - m_RadioUser.SetCheck(BST_CHECKED); + m_RadioIPAddr.SetCheck(BST_CHECKED); + m_RadioUser.SetCheck(BST_UNCHECKED); m_EditUser.SetWindowText(m_StrUser.GetBuffer()); if (m_StrTime.GetLength() > 0) diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Banned.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Banned.cpp index be249f5..723fab0 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Banned.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Banned.cpp @@ -7,6 +7,7 @@ BOOL XEngine_AuthorizeHTTP_Banned(LPCTSTR lpszClientAddr, LPCTSTR lpszAPIName, L LPCTSTR lpszAPIInsert = _T("insert"); LPCTSTR lpszAPIDelete = _T("delete"); LPCTSTR lpszAPIList = _T("list"); + LPCTSTR lpszAPIModify = _T("modify"); memset(tszSDBuffer, '\0', sizeof(tszSDBuffer)); @@ -46,5 +47,16 @@ BOOL XEngine_AuthorizeHTTP_Banned(LPCTSTR lpszClientAddr, LPCTSTR lpszAPIName, L BaseLib_OperatorMemory_Free((XPPPMEM)&ppSt_BannedUser, nCountUser); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,查询禁用列表成功,禁用的用户个数:%d,禁用的IP地址个数:%d"), lpszClientAddr, nCountUser, nCountAddr); } + else if (0 == _tcsnicmp(lpszAPIModify, lpszAPIName, _tcslen(lpszAPIModify))) + { + AUTHREG_BANNED st_Banned; + memset(&st_Banned, '\0', sizeof(AUTHREG_BANNED)); + + Protocol_Parse_HttpParseBanned(lpszMsgBuffer, nMsgLen, &st_Banned); + Database_SQLite_BannedUPDate(&st_Banned); + Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen); + XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,修改禁用列表成功,修改的用户:%s,修改的IP地址:%s"), lpszClientAddr, st_Banned.tszUserName, st_Banned.tszIPAddr); + } return TRUE; } \ No newline at end of file From 308012644737b2c3503c2d726fc69e22c83f04d0 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Fri, 3 Feb 2023 13:42:38 +0800 Subject: [PATCH 19/24] fixed:cdkey password is incorrent --- .../AuthorizeHTTP_CDKey.cpp | 12 +++++----- .../Authorize_HttpTask.cpp | 22 +++++++++++++++++-- 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_CDKey.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_CDKey.cpp index 1c8fa1a..8c651f1 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_CDKey.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_CDKey.cpp @@ -25,8 +25,7 @@ BOOL XEngine_AuthorizeHTTP_CDKey(LPCTSTR lpszClientAddr, LPCTSTR lpszAPIName, LP XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("HTTP客户端:%s,请求创建CDKEY协议失败,服务器内部错误:%lX"), lpszClientAddr, Authorize_GetLastError()); return FALSE; } - Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + XEngine_Client_TaskSend(lpszClientAddr, tszRVBuffer, nRVLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("HTTP客户端:%s,请求创建CDKEY成功,APP名:%s,APP版本:%s"), lpszClientAddr, st_Authorize.st_AuthAppInfo.tszAppName, st_Authorize.st_AuthAppInfo.tszAppVer); } else if (0 == _tcsnicmp(lpszAPIAuth, lpszAPIName, _tcslen(lpszAPIAuth))) @@ -50,12 +49,15 @@ BOOL XEngine_AuthorizeHTTP_CDKey(LPCTSTR lpszClientAddr, LPCTSTR lpszAPIName, LP } Authorize_Local_WriteMemory(tszRVBuffer, &nRVLen, &st_Authorize); //加密 - if (NULL != lpszPass) + if (NULL == lpszPass) + { + XEngine_Client_TaskSend(lpszClientAddr, tszRVBuffer, nRVLen, XENGINE_AUTH_APP_NETTYPE_HTTP); + } + else { OPenSsl_XCrypto_Encoder(tszRVBuffer, &nRVLen, (UCHAR*)tszSDBuffer, lpszPass); - nSDLen = nRVLen; + XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nRVLen, XENGINE_AUTH_APP_NETTYPE_HTTP); } - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("HTTP客户端:%s,请求授权CDKEY成功,APP名:%s,APP版本:%s,授权期限:%s"), lpszClientAddr, st_Authorize.st_AuthAppInfo.tszAppName, st_Authorize.st_AuthAppInfo.tszAppVer, st_Authorize.st_AuthRegInfo.tszLeftTime); } else diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_HttpTask.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_HttpTask.cpp index 1ef3ec8..256c389 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_HttpTask.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_HttpTask.cpp @@ -199,7 +199,25 @@ BOOL XEngine_Client_HttpTask(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int } else if (0 == _tcsnicmp(lpszAPIVerCDKey, tszAPIVer, _tcslen(lpszAPIVerCDKey))) { - XEngine_AuthorizeHTTP_CDKey(lpszClientAddr, tszAPIName, lpszMsgBuffer, nMsgLen); + int nListCount = 0; + TCHAR** pptszList; + RfcComponents_HttpHelp_GetParament(pSt_HTTPParament->tszHttpUri, &pptszList, &nListCount); + if (nListCount > 0) + { + TCHAR tszKeyBuffer[64]; + TCHAR tszValueBuffer[64]; + + memset(tszKeyBuffer, '\0', sizeof(tszKeyBuffer)); + memset(tszValueBuffer, '\0', sizeof(tszValueBuffer)); + + BaseLib_OperatorString_GetKeyValue(pptszList[0], "=", tszKeyBuffer, tszValueBuffer); + XEngine_AuthorizeHTTP_CDKey(lpszClientAddr, tszAPIName, lpszMsgBuffer, nMsgLen, tszValueBuffer); + } + else + { + XEngine_AuthorizeHTTP_CDKey(lpszClientAddr, tszAPIName, lpszMsgBuffer, nMsgLen); + } + BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); } } else if (0 == _tcsnicmp(lpszMethodGet, pSt_HTTPParament->tszHttpMethod, _tcslen(lpszMethodGet))) @@ -216,7 +234,7 @@ BOOL XEngine_Client_HttpTask(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 400, "request is failed"); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParament->tszHttpUri); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParament->tszHttpUri); return FALSE; } XEngine_AuthorizeHTTP_Token(lpszClientAddr, pptszList, nListCount); From dff58e25ac582272f5bce0b6bee15691be707533 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Fri, 3 Feb 2023 14:36:50 +0800 Subject: [PATCH 20/24] modify:Whether to disable the list is now handled in the database function --- .../AuthorizeModule_Database/Database_Error.h | 4 +- .../Database_SQLite/Database_SQLite.cpp | 72 +++++++++++++++--- .../XEngineAuthorizeApp.aps | Bin 121084 -> 121084 bytes .../XEngineAuthorizeApp.rc | Bin 30474 -> 30618 bytes .../AuthorizeHTTP_Post/AuthorizeHTTP_User.cpp | 11 +-- .../Authorize_HttpTask.cpp | 11 +-- .../Authorize_TCPTask.cpp | 13 ++-- 7 files changed, 77 insertions(+), 34 deletions(-) diff --git a/XEngine_Source/AuthorizeModule_Database/Database_Error.h b/XEngine_Source/AuthorizeModule_Database/Database_Error.h index 8dd1e1f..def1314 100644 --- a/XEngine_Source/AuthorizeModule_Database/Database_Error.h +++ b/XEngine_Source/AuthorizeModule_Database/Database_Error.h @@ -33,4 +33,6 @@ #define ERROR_AUTHORIZE_MODULE_DATABASE_GETTIME 0x0030015 //获取时间结构失败 #define ERROR_AUTHORIZE_MODULE_DATABASE_UPDATA 0x0030016 //更新数据库失败 #define ERROR_AUTHORIZE_MODULE_DATABASE_UNKNOWTYPE 0x0030017 //无法识别的卡的类型,无法正确处理离开消息 -#define ERROR_AUTHORIZE_MODULE_DATABASE_NONE 0x0030018 //获取失败,没有任何记录 \ No newline at end of file +#define ERROR_AUTHORIZE_MODULE_DATABASE_NONE 0x0030018 //获取失败,没有任何记录 +#define ERROR_AUTHORIZE_MODULE_DATABASE_NOTENABLE 0x0030019 //没有启用.不禁用 +#define ERROR_AUTHORIZE_MODULE_DATABASE_TIMELEFT 0x0030020 //超过禁用时间 \ No newline at end of file diff --git a/XEngine_Source/AuthorizeModule_Database/Database_SQLite/Database_SQLite.cpp b/XEngine_Source/AuthorizeModule_Database/Database_SQLite/Database_SQLite.cpp index 1745499..6c09b94 100644 --- a/XEngine_Source/AuthorizeModule_Database/Database_SQLite/Database_SQLite.cpp +++ b/XEngine_Source/AuthorizeModule_Database/Database_SQLite/Database_SQLite.cpp @@ -1287,7 +1287,6 @@ BOOL CDatabase_SQLite::Database_SQLite_BannedList(AUTHREG_BANNED*** pppSt_Banned BOOL CDatabase_SQLite::Database_SQLite_BannedExist(AUTHREG_BANNED* pSt_Banned) { SQLPacket_IsErrorOccur = FALSE; - //判断用域名是否存在 if (_tcslen(pSt_Banned->tszUserName) > 0) { @@ -1304,14 +1303,28 @@ BOOL CDatabase_SQLite::Database_SQLite_BannedExist(AUTHREG_BANNED* pSt_Banned) SQLPacket_dwErrorCode = DataBase_GetLastError(); return FALSE; } - DataBase_SQLite_FreeTable(ppszResult); - - if (nRow <= 0) - { - SQLPacket_IsErrorOccur = TRUE; - SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_NOTMATCH; - return FALSE; - } + if (nRow <= 0) + { + SQLPacket_IsErrorOccur = TRUE; + SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_NOTMATCH; + DataBase_SQLite_FreeTable(ppszResult); + return FALSE; + } + int nFliedValue = nColumn; + //ID + pSt_Banned->nID = _ttoi64(ppszResult[nFliedValue]); + nFliedValue++; + //是否启用 + pSt_Banned->bEnable = _ttoi(ppszResult[nFliedValue]); + nFliedValue++; + //地址 + nFliedValue++; + //过期时间 + _tcscpy(pSt_Banned->tszLeftTime, ppszResult[nFliedValue]); + nFliedValue++; + //注册时间 + _tcscpy(pSt_Banned->tszCreateTime, ppszResult[nFliedValue]); + DataBase_SQLite_FreeTable(ppszResult); } //判断IP地址是否存在 if (_tcslen(pSt_Banned->tszIPAddr) > 0) @@ -1329,15 +1342,52 @@ BOOL CDatabase_SQLite::Database_SQLite_BannedExist(AUTHREG_BANNED* pSt_Banned) SQLPacket_dwErrorCode = DataBase_GetLastError(); return FALSE; } - DataBase_SQLite_FreeTable(ppszResult); - if (nRow <= 0) { SQLPacket_IsErrorOccur = TRUE; SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_NOTMATCH; + DataBase_SQLite_FreeTable(ppszResult); return FALSE; } + int nFliedValue = nColumn; + //ID + pSt_Banned->nID = _ttoi64(ppszResult[nFliedValue]); + nFliedValue++; + //是否启用 + pSt_Banned->bEnable = _ttoi(ppszResult[nFliedValue]); + nFliedValue++; + //地址 + nFliedValue++; + //过期时间 + _tcscpy(pSt_Banned->tszLeftTime, ppszResult[nFliedValue]); + nFliedValue++; + //注册时间 + _tcscpy(pSt_Banned->tszCreateTime, ppszResult[nFliedValue]); + DataBase_SQLite_FreeTable(ppszResult); } + //处理是否被禁用 + if (!pSt_Banned->bEnable) + { + SQLPacket_IsErrorOccur = TRUE; + SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_NOTENABLE; + return FALSE; + } + if (_tcslen(pSt_Banned->tszLeftTime) > 0) + { + __int64x nTimer = 0; + TCHAR tszStrTime[128]; + memset(tszStrTime, '\0', sizeof(tszStrTime)); + + BaseLib_OperatorTime_TimeToStr(tszStrTime); + BaseLib_OperatorTimeSpan_GetForStr(pSt_Banned->tszLeftTime, tszStrTime, &nTimer, 3); + if (nTimer > 0) + { + SQLPacket_IsErrorOccur = TRUE; + SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_TIMELEFT; + return FALSE; + } + } + return TRUE; } /******************************************************************** diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngineAuthorizeApp.aps b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngineAuthorizeApp.aps index 5176036667913fbb47b47cd5cc073807f0e41b77..59cec6af1d3f78b0afd9f87df8df97fc077b8948 100644 GIT binary patch delta 59 zcmeyfk^Rp`_J%EtlTLEGcrri%@ASDR8O<4ar(ZqEc$CRMX!@K}jCza_(@&pboX!*x LzdhwN;|yK^amy7A delta 59 zcmeyfk^Rp`_J%EtlTLCozyag*xhEOT85yTvJ;`{KDS%=6oKuW?j6u^+pJJTO^r(A# J%4xtszHttpMethod, _tcslen(lpszMethodPost))) { diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_TCPTask.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_TCPTask.cpp index e0d0228..51f36b1 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_TCPTask.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_TCPTask.cpp @@ -63,14 +63,11 @@ BOOL XEngine_Client_TCPTask(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int n //是否在黑名单 if (Database_SQLite_BannedExist(&st_Banned)) { - if (st_Banned.bEnable) - { - pSt_ProtocolHdr->wReserve = 423; - Protocol_Packet_HDRComm(tszSDBuffer, &nSDLen, pSt_ProtocolHdr, nNetType); - XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, nNetType); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("客户端:%s,登录连接被阻止,IP地址被禁用!"), lpszClientAddr); - return FALSE; - } + pSt_ProtocolHdr->wReserve = 423; + Protocol_Packet_HDRComm(tszSDBuffer, &nSDLen, pSt_ProtocolHdr, nNetType); + XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, nNetType); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("客户端:%s,登录连接被阻止,IP地址被禁用!"), lpszClientAddr); + return FALSE; } if (XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_AUTH_REQLOGIN == pSt_ProtocolHdr->unOperatorCode) { From 5d1c5c936d1b456a7ac3be7c579ae7fdeb112767 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Fri, 3 Feb 2023 14:57:07 +0800 Subject: [PATCH 21/24] fixed:linux build error --- .../XEngine_APPService/XEngine_AuthorizeService/Makefile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Makefile b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Makefile index 086dde9..249db4f 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Makefile +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Makefile @@ -10,7 +10,7 @@ LIB = -lXEngine_BaseLib -lXEngine_Algorithm -lXEngine_Core -lXEngine_ManagePool LIBEX = -ldl -lpthread LOADSO = -Wl,-rpath=./,--disable-new-dtags LIBINCLUDE = Authorize_Config.o Authorize_Net.o Authorize_Task.o Authorize_TCPTask.o Authorize_WSTask.o Authorize_HttpTask.o XEngine_AuthorizeService.o \ - AuthorizeHTTP_Client.o AuthorizeHTTP_Serial.o AuthorizeHTTP_User.o AuthorizeHTTP_Pass.o AuthorizeHTTP_Switch.o AuthorizeHTTP_Banned.o \ + AuthorizeHTTP_Client.o AuthorizeHTTP_Serial.o AuthorizeHTTP_User.o AuthorizeHTTP_Pass.o AuthorizeHTTP_Switch.o AuthorizeHTTP_Banned.o AuthorizeHTTP_CDKey.o\ AuthorizeHTTP_Token.o ifeq ($(OS),Windows_NT) @@ -67,6 +67,8 @@ AuthorizeHTTP_Switch.o:./AuthorizeHTTP_Post/AuthorizeHTTP_Switch.cpp $(CC) $(DEBUG) $(FLAGS) $(UNICODE) ./AuthorizeHTTP_Post/AuthorizeHTTP_Switch.cpp AuthorizeHTTP_Banned.o:./AuthorizeHTTP_Post/AuthorizeHTTP_Banned.cpp $(CC) $(DEBUG) $(FLAGS) $(UNICODE) ./AuthorizeHTTP_Post/AuthorizeHTTP_Banned.cpp +AuthorizeHTTP_CDKey.o:./AuthorizeHTTP_Post/AuthorizeHTTP_CDKey.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) ./AuthorizeHTTP_Post/AuthorizeHTTP_CDKey.cpp AuthorizeHTTP_Token.o:./AuthorizeHTTP_Get/AuthorizeHTTP_Token.cpp $(CC) $(DEBUG) $(FLAGS) $(UNICODE) ./AuthorizeHTTP_Get/AuthorizeHTTP_Token.cpp From bc355e00357c9d143743d2a2142abbcd3dbeb1f5 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Fri, 3 Feb 2023 15:04:03 +0800 Subject: [PATCH 22/24] update:configure and db file --- .../XEngine_Config/XEngine_Config.json | 1 + XEngine_Release/XEngine_DataBase/SQL_User.db | Bin 28672 -> 40960 bytes 2 files changed, 1 insertion(+) diff --git a/XEngine_Release/XEngine_Config/XEngine_Config.json b/XEngine_Release/XEngine_Config/XEngine_Config.json index 23dfa80..e7cd54b 100644 --- a/XEngine_Release/XEngine_Config/XEngine_Config.json +++ b/XEngine_Release/XEngine_Config/XEngine_Config.json @@ -45,6 +45,7 @@ "LogLeave":32 }, "XVer":[ + "V3.5.0.1001 Build20230203", "V3.4.0.1001 Build20221230", "V3.3.0.1001 Build20221101", "V3.2.0.1001 Build20220923", diff --git a/XEngine_Release/XEngine_DataBase/SQL_User.db b/XEngine_Release/XEngine_DataBase/SQL_User.db index fb3d51a5b3cfc7e77a2b5f2a6f860858507c63b9..244d4aaf9dd2324bb244ff32a067af806c4526f6 100644 GIT binary patch delta 541 zcmZp8z}RqrX@az%83O|Y7Z9@nF*6V=Ow=)!H)GKAujS>?VPIodW8k~X*Uh_#=P+j( zyBZi8ZERe@#?{2k&n|9i%Gj(qnVUzKpVK+W)iK0XA;i(i$5laTvH*_=w~~SeFPDOX zlBbK(!z0{ROGHnux3@;9;aK%A{x0&>RW ziQFQS^SPB6l|U@ATpU`QTI81qaue0u%)r3p3U+a;Ez{=1Ja)pu{IeOD`O_Kr-}0yP zH$vcMK>=-k7NCU2#6}fX2~K8HMvx!a*d%yBOkf1CvH}eWn%L;K`K`XN!o&b}P9~rL e2M}{@7BqOzzxlsCqrhebg9rQ*Cnzj(fHMKx3WJLP delta 284 zcmZoTz|`=7ae}lUI|Bm)2*UvDL>*&Eb_PBFT3( Date: Fri, 3 Feb 2023 15:05:36 +0800 Subject: [PATCH 23/24] added:local cdkey example --- XEngine_Apps/Authorize_APPClient.sln | 10 ++ .../Authorize_APPLocal/Authorize_APPLocal.cpp | 110 ++++++++++++++ .../Authorize_APPLocal.vcxproj | 139 ++++++++++++++++++ .../Authorize_APPLocal.vcxproj.filters | 22 +++ .../Authorize_APPLocal.vcxproj.user | 4 + XEngine_Apps/VSCopy_x86.bat | 2 +- 6 files changed, 286 insertions(+), 1 deletion(-) create mode 100644 XEngine_Apps/Authorize_APPLocal/Authorize_APPLocal.cpp create mode 100644 XEngine_Apps/Authorize_APPLocal/Authorize_APPLocal.vcxproj create mode 100644 XEngine_Apps/Authorize_APPLocal/Authorize_APPLocal.vcxproj.filters create mode 100644 XEngine_Apps/Authorize_APPLocal/Authorize_APPLocal.vcxproj.user diff --git a/XEngine_Apps/Authorize_APPClient.sln b/XEngine_Apps/Authorize_APPClient.sln index e8cd427..c8b5017 100644 --- a/XEngine_Apps/Authorize_APPClient.sln +++ b/XEngine_Apps/Authorize_APPClient.sln @@ -5,6 +5,8 @@ VisualStudioVersion = 17.3.32804.467 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Authorize_APPClient", "Authorize_APPClient\Authorize_APPClient.vcxproj", "{4F263EAF-A748-46AF-A10E-8A25626E0571}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Authorize_APPLocal", "Authorize_APPLocal\Authorize_APPLocal.vcxproj", "{767151F7-230E-431B-AC6D-683F19F43C13}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|x64 = Debug|x64 @@ -21,6 +23,14 @@ Global {4F263EAF-A748-46AF-A10E-8A25626E0571}.Release|x64.Build.0 = Release|x64 {4F263EAF-A748-46AF-A10E-8A25626E0571}.Release|x86.ActiveCfg = Release|Win32 {4F263EAF-A748-46AF-A10E-8A25626E0571}.Release|x86.Build.0 = Release|Win32 + {767151F7-230E-431B-AC6D-683F19F43C13}.Debug|x64.ActiveCfg = Debug|x64 + {767151F7-230E-431B-AC6D-683F19F43C13}.Debug|x64.Build.0 = Debug|x64 + {767151F7-230E-431B-AC6D-683F19F43C13}.Debug|x86.ActiveCfg = Debug|Win32 + {767151F7-230E-431B-AC6D-683F19F43C13}.Debug|x86.Build.0 = Debug|Win32 + {767151F7-230E-431B-AC6D-683F19F43C13}.Release|x64.ActiveCfg = Release|x64 + {767151F7-230E-431B-AC6D-683F19F43C13}.Release|x64.Build.0 = Release|x64 + {767151F7-230E-431B-AC6D-683F19F43C13}.Release|x86.ActiveCfg = Release|Win32 + {767151F7-230E-431B-AC6D-683F19F43C13}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/XEngine_Apps/Authorize_APPLocal/Authorize_APPLocal.cpp b/XEngine_Apps/Authorize_APPLocal/Authorize_APPLocal.cpp new file mode 100644 index 0000000..9543430 --- /dev/null +++ b/XEngine_Apps/Authorize_APPLocal/Authorize_APPLocal.cpp @@ -0,0 +1,110 @@ +#ifdef _MSC_BUILD +#include +#include +#pragma comment(lib,"Ws2_32") +#pragma comment(lib,"jsoncpp") +#pragma comment(lib,"XEngine_BaseLib/XEngine_BaseLib") +#pragma comment(lib,"XEngine_Core/XEngine_OPenSsl") +#pragma comment(lib,"XEngine_NetHelp/NetHelp_APIClient") +#pragma comment(lib,"XEngine_HelpComponents/HelpComponents_Authorize") +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +//需要优先配置XEngine +//WINDOWS支持VS2022 x64 debug 编译调试 +//linux::g++ -std=c++17 -Wall -g Authorize_APPLocal.cpp -o Authorize_APPLocal.exe -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L /usr/local/lib/XEngine_Release/XEngine_Core -L /usr/local/lib/XEngine_Release/XEngine_NetHelp -L /usr/local/lib/XEngine_Release/XEngine_HelpComponents -lXEngine_BaseLib -lXEngine_OPenSsl -lNetHelp_APIClient -lHelpComponents_Authorize +//macos::g++ -std=c++17 -Wall -g Authorize_APPLocal.cpp -o Authorize_APPLocal.exe -lXEngine_BaseLib -lXEngine_OPenSsl -lNetHelp_APIClient -lHelpComponents_Authorize + +int main() +{ +#ifdef _MSC_BUILD + WSADATA st_WSAData; + WSAStartup(MAKEWORD(2, 2), &st_WSAData); +#endif + int nLen = 0; + int nCode = 0; + LPCTSTR lpszCreateUrl = _T("http://127.0.0.1:5302/auth/cdkey/create"); + + Json::Value st_JsonRoot; + Json::Value st_JsonAPPInfo; + Json::Value st_JsonREGInfo; + Json::Value st_JsonUserInfo; + st_JsonRoot["tszAddr"] = "http://app.xyry.org"; + st_JsonRoot["nPort"] = 5501; + + st_JsonAPPInfo["tszAppName"] = "XEngine"; + st_JsonAPPInfo["tszAppVer"] = "1.0.0.1001"; + + st_JsonREGInfo["tszHardware"] = "5501012NE21N"; + st_JsonREGInfo["enSerialType"] = ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE_TIME; + st_JsonREGInfo["enRegType"] = ENUM_HELPCOMPONENTS_AUTHORIZE_REG_TYPE_TRY; + st_JsonREGInfo["enHWType"] = ENUM_HELPCOMPONENTS_AUTHORIZE_HW_TYPE_CPU; + + st_JsonUserInfo["tszUserName"] = "qyt"; + st_JsonUserInfo["tszUserContact"] = "486179@qq.com"; + + st_JsonRoot["st_AuthAppInfo"] = st_JsonAPPInfo; + st_JsonRoot["st_AuthRegInfo"] = st_JsonREGInfo; + st_JsonRoot["st_AuthUserInfo"] = st_JsonUserInfo; + + TCHAR* ptszCreateBuffer = NULL; + TCHAR* ptszAuthBuffer = NULL; + if (!APIClient_Http_Request(_T("POST"), lpszCreateUrl, st_JsonRoot.toStyledString().c_str(), &nCode, &ptszCreateBuffer, &nLen)) + { + printf("发送投递失败!\n"); + return 0; + } + printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszCreateBuffer); + + TCHAR tszMsgBuffer[4096]; + memset(tszMsgBuffer, '\0', sizeof(tszMsgBuffer)); + //你也可以通过授权模块的API函数来读内存,都一回事,这里为了方便直接写了,请求分钟卡,拥有10分钟,也可以写自定义时间格式 + BaseLib_OperatorFile_WriteProfileFromMemory(ptszCreateBuffer, nLen, "AuthReg", "tszLeftTime", "10", tszMsgBuffer, &nLen); + BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszCreateBuffer); + + LPCTSTR lpszAuthUrl = _T("http://127.0.0.1:5302/auth/cdkey/auth?pass=123123"); + if (!APIClient_Http_Request(_T("POST"), lpszAuthUrl, tszMsgBuffer, &nCode, &ptszAuthBuffer, &nLen)) + { + printf("发送投递失败!\n"); + return 0; + } + //ptszAuthBuffer 写文件,然后验证即可.如下所示 + //step 1.解密 + CHAR tszCodecBuffer[4096]; + memset(tszCodecBuffer, '\0', sizeof(tszCodecBuffer)); + OPenSsl_XCrypto_Decoder(ptszAuthBuffer, &nLen, tszCodecBuffer, "123123"); + BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszAuthBuffer); + printf("接受到数据,大小:%d,内容:\n%s\n", nLen, tszCodecBuffer); + //step 2.转换格式 + XENGINE_AUTHORIZE_LOCAL st_Authorize; + memset(&st_Authorize, '\0', sizeof(XENGINE_AUTHORIZE_LOCAL)); + + Authorize_Local_ReadMemory(tszCodecBuffer, nLen, &st_Authorize); + //step 3.判断您是否超时 + if (Authorize_Local_GetLeftTimer(&st_Authorize)) + { + printf("ok\n"); + } + else + { + printf("timeout\n"); + } +#ifdef _MSC_BUILD + WSACleanup(); +#endif + return 0; +} \ No newline at end of file diff --git a/XEngine_Apps/Authorize_APPLocal/Authorize_APPLocal.vcxproj b/XEngine_Apps/Authorize_APPLocal/Authorize_APPLocal.vcxproj new file mode 100644 index 0000000..56933eb --- /dev/null +++ b/XEngine_Apps/Authorize_APPLocal/Authorize_APPLocal.vcxproj @@ -0,0 +1,139 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {767151f7-230e-431b-ac6d-683f19f43c13} + AuthorizeAPPLocal + 10.0 + + + + Application + true + v143 + MultiByte + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + $(XEngine_Include);../../XEngine_Source/XEngine_ThirdPart/jsoncpp;$(IncludePath) + $(XEngine_Lib32);../../XEngine_Source/Debug;$(LibraryPath) + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/XEngine_Apps/Authorize_APPLocal/Authorize_APPLocal.vcxproj.filters b/XEngine_Apps/Authorize_APPLocal/Authorize_APPLocal.vcxproj.filters new file mode 100644 index 0000000..8ab0c7a --- /dev/null +++ b/XEngine_Apps/Authorize_APPLocal/Authorize_APPLocal.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + 源文件 + + + \ No newline at end of file diff --git a/XEngine_Apps/Authorize_APPLocal/Authorize_APPLocal.vcxproj.user b/XEngine_Apps/Authorize_APPLocal/Authorize_APPLocal.vcxproj.user new file mode 100644 index 0000000..88a5509 --- /dev/null +++ b/XEngine_Apps/Authorize_APPLocal/Authorize_APPLocal.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/XEngine_Apps/VSCopy_x86.bat b/XEngine_Apps/VSCopy_x86.bat index ab7876b..a3158bc 100644 --- a/XEngine_Apps/VSCopy_x86.bat +++ b/XEngine_Apps/VSCopy_x86.bat @@ -4,7 +4,7 @@ copy /y "%XEngine_Lib32%\XEngine_Core\XEngine_OPenSsl.dll" "./" copy /y "%XEngine_Lib32%\XEngine_Client\XClient_Socket.dll" "./" -copy /y "%XEngine_Lib32%\XEngine_NetHelp\NetHelp_APIHelp.dll" "./" +copy /y "%XEngine_Lib32%\XEngine_NetHelp\NetHelp_APIClient.dll" "./" copy /y "%XEngine_Lib32%\XEngine_SystemSdk\XEngine_SystemApi.dll" "./" copy /y "%XEngine_Lib32%\XEngine_HelpComponents\zlib1.dll" "./" From 7429316c75baeff040efe222ab7f19284d9f458f Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Fri, 3 Feb 2023 15:06:07 +0800 Subject: [PATCH 24/24] update:readme and docment --- CHANGELOG | 24 ++++++++++++++++++++++++ README.en.md | 4 ++++ README.md | 6 ++++-- XEngine_Docment/Docment_en.docx | Bin 133692 -> 136111 bytes XEngine_Docment/Docment_zh.docx | Bin 135611 -> 138630 bytes 5 files changed, 32 insertions(+), 2 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index f45edd8..46ec2e9 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,27 @@ +XEngine_Authorize V3.5.0.1001 + +添加:禁用列表功能支持修改信息了 +添加:禁用功能支持启用和禁用 +添加:禁用功能支持过期时间设置了 +添加:本地CDKEY生成解析支持 +更新:HTTP请求函数 +修改:数据库句柄类型 +修改:管理程序不允许修改ROOT用户 +修改:管理程序可以双击打开用户修改界面了 +修改:IP禁用功能不在使用开始和结束字段了 +修正:管理程序登录的时候没有设置设备类型的问题 + +added:banned function to modify support +added:enable field for banned +added:banned function support left time +added:local cdkey support +update:http request function name +modify:XHDATA to XNETHANDLE +modify:root user is not allowed to modify +modify:open user modify window when double click user list +modify:does not need to start and end for ip address +fixed:management program have not device type when login +====================================================================================== XEngine_Authorize V3.4.0.1001 添加:windows窗口特效类 diff --git a/README.en.md b/README.en.md index 02b39b5..9bef5b5 100644 --- a/README.en.md +++ b/README.en.md @@ -108,6 +108,10 @@ The V1 version is an XEngine component. Most of the code is concentrated in XEng The V2 version comes out separately with all related modules and is developed separately The V3 version is a new version, developed to meet the requirements of many environments +## update guide +Database update Use Navicat and other database software to open the judgment table and the different fields for modification +After modification, directly copy the database to the new version to overwrite, and modify your configuration file + ## Authorization instructions Use this software must be open source and indicate the source,If you want closed source and commercial,Then need to be authorized by the author. diff --git a/README.md b/README.md index a885084..a14383e 100644 --- a/README.md +++ b/README.md @@ -108,6 +108,10 @@ V1版本为XEngine组件.大部分代码集中在XEngine中 V2版本单独出来了所有相关模块,单独开发 V3版本为全新版本,为了适应过多环境要求开发 +## 更新指导 +数据库更新使用Navicat等数据库软件打开判断表和字段不同的地方进行修改 +修改完毕后直接把数据库拷贝到新的版本进行覆盖,修改你的配置文件即可 + ## 授权说明 使用此软件必须开源并且注明出处,如果想闭源商用,那么需要经过作者授权. @@ -134,9 +138,7 @@ http basic和disgt支持 mysql支持 列表数据分割,用于大型服务器 支持用户和硬件绑定同时验证 -支持自定义序列号导入导出 统计用户所有在线时间 -账号封禁与处罚,时间永久 持久层,redis,memcached等支持 支持代理端(序列号分发,权限控制) 支持绑定自定义内容 diff --git a/XEngine_Docment/Docment_en.docx b/XEngine_Docment/Docment_en.docx index 5ccb1b127c1fd397759a0bbf816ec95084861c32..d1f2905e85dc2cf2dde04c2db5c6a48b9036e44d 100644 GIT binary patch delta 118155 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 delta 115760 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⁡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