Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
XEngine
XEngine Authorize
提交
a21e85f2
X
XEngine Authorize
项目概览
XEngine
/
XEngine Authorize
9 个月 前同步成功
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
X
XEngine Authorize
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
a21e85f2
编写于
2月 24, 2023
作者:
xengine-qyt
提交者:
Gitee
2月 24, 2023
浏览文件
操作
浏览文件
下载
差异文件
!21 V3.6.0.1001 Merge
Merge pull request !21 from qyt/develop
上级
27bcba93
6975d911
变更
56
隐藏空白更改
内联
并排
Showing
56 changed file
with
1151 addition
and
93 deletion
+1151
-93
CHANGELOG
CHANGELOG
+14
-0
README.en.md
README.en.md
+1
-0
README.md
README.md
+3
-1
XEngine_Apps/Authorize_APPClient/Authorize_APPClient.cpp
XEngine_Apps/Authorize_APPClient/Authorize_APPClient.cpp
+33
-0
XEngine_Apps/Authorize_APPLocal/Authorize_APPLocal.cpp
XEngine_Apps/Authorize_APPLocal/Authorize_APPLocal.cpp
+78
-14
XEngine_Apps/VSCopy_x86.bat
XEngine_Apps/VSCopy_x86.bat
+2
-2
XEngine_Docment/Docment_en.docx
XEngine_Docment/Docment_en.docx
+0
-0
XEngine_Docment/Docment_zh.docx
XEngine_Docment/Docment_zh.docx
+0
-0
XEngine_Release/XEngine_Config/XEngine_Config.json
XEngine_Release/XEngine_Config/XEngine_Config.json
+1
-0
XEngine_Release/XEngine_Config/XEngine_SwitchConfig.json
XEngine_Release/XEngine_Config/XEngine_SwitchConfig.json
+3
-1
XEngine_Release/XEngine_DataBase/SQL_User.db
XEngine_Release/XEngine_DataBase/SQL_User.db
+0
-0
XEngine_SQL/main.sql
XEngine_SQL/main.sql
+18
-3
XEngine_Source/AuthorizeModule_Configure/Config_Define.h
XEngine_Source/AuthorizeModule_Configure/Config_Define.h
+3
-1
XEngine_Source/AuthorizeModule_Configure/ModuleConfigure_Json/ModuleConfigure_Json.cpp
...e_Configure/ModuleConfigure_Json/ModuleConfigure_Json.cpp
+4
-2
XEngine_Source/AuthorizeModule_Database/AuthorizeModule_Database.def
...rce/AuthorizeModule_Database/AuthorizeModule_Database.def
+5
-1
XEngine_Source/AuthorizeModule_Database/Database_Define.h
XEngine_Source/AuthorizeModule_Database/Database_Define.h
+48
-1
XEngine_Source/AuthorizeModule_Database/Database_SQLite/Database_SQLite.cpp
...horizeModule_Database/Database_SQLite/Database_SQLite.cpp
+125
-0
XEngine_Source/AuthorizeModule_Database/Database_SQLite/Database_SQLite.h
...uthorizeModule_Database/Database_SQLite/Database_SQLite.h
+4
-0
XEngine_Source/AuthorizeModule_Database/pch.cpp
XEngine_Source/AuthorizeModule_Database/pch.cpp
+12
-0
XEngine_Source/AuthorizeModule_Protocol/AuthorizeModule_Protocol.def
...rce/AuthorizeModule_Protocol/AuthorizeModule_Protocol.def
+3
-1
XEngine_Source/AuthorizeModule_Protocol/Protocol_Define.h
XEngine_Source/AuthorizeModule_Protocol/Protocol_Define.h
+54
-1
XEngine_Source/AuthorizeModule_Protocol/Protocol_Packet/Protocol_Packet.cpp
...horizeModule_Protocol/Protocol_Packet/Protocol_Packet.cpp
+60
-0
XEngine_Source/AuthorizeModule_Protocol/Protocol_Packet/Protocol_Packet.h
...uthorizeModule_Protocol/Protocol_Packet/Protocol_Packet.h
+1
-0
XEngine_Source/AuthorizeModule_Protocol/Protocol_Parse/Protocol_Parse.cpp
...uthorizeModule_Protocol/Protocol_Parse/Protocol_Parse.cpp
+63
-0
XEngine_Source/AuthorizeModule_Protocol/Protocol_Parse/Protocol_Parse.h
.../AuthorizeModule_Protocol/Protocol_Parse/Protocol_Parse.h
+1
-0
XEngine_Source/AuthorizeModule_Protocol/pch.cpp
XEngine_Source/AuthorizeModule_Protocol/pch.cpp
+8
-0
XEngine_Source/VSCopy_x64.bat
XEngine_Source/VSCopy_x64.bat
+3
-3
XEngine_Source/VSCopy_x86.bat
XEngine_Source/VSCopy_x86.bat
+3
-3
XEngine_Source/XAuth_Protocol.h
XEngine_Source/XAuth_Protocol.h
+8
-1
XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Announcement.cpp
...ine_AuthorizeApp/Authorize_Dialog/Dialog_Announcement.cpp
+320
-0
XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Announcement.h
...ngine_AuthorizeApp/Authorize_Dialog/Dialog_Announcement.h
+31
-0
XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Switch.cpp
...e/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Switch.cpp
+44
-0
XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Switch.h
...ice/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Switch.h
+4
-0
XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngineAuthorizeApp.aps
...e_APPService/XEngine_AuthorizeApp/XEngineAuthorizeApp.aps
+0
-0
XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngineAuthorizeApp.rc
...ne_APPService/XEngine_AuthorizeApp/XEngineAuthorizeApp.rc
+0
-0
XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngine_AuthorizeApp.vcxproj
...Service/XEngine_AuthorizeApp/XEngine_AuthorizeApp.vcxproj
+2
-0
XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngine_AuthorizeApp.vcxproj.filters
...XEngine_AuthorizeApp/XEngine_AuthorizeApp.vcxproj.filters
+6
-0
XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngine_AuthorizeAppDlg.cpp
...PService/XEngine_AuthorizeApp/XEngine_AuthorizeAppDlg.cpp
+20
-3
XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngine_AuthorizeAppDlg.h
...APPService/XEngine_AuthorizeApp/XEngine_AuthorizeAppDlg.h
+1
-0
XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/pch.h
XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/pch.h
+1
-0
XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/resource.h
...Source/XEngine_APPService/XEngine_AuthorizeApp/resource.h
+7
-2
XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Announcement.cpp
...Service/AuthorizeHTTP_Post/AuthorizeHTTP_Announcement.cpp
+54
-0
XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Announcement.h
...zeService/AuthorizeHTTP_Post/AuthorizeHTTP_Announcement.h
+3
-0
XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_CDKey.cpp
...thorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_CDKey.cpp
+26
-10
XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_CDKey.h
...AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_CDKey.h
+1
-1
XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Switch.cpp
...horizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Switch.cpp
+2
-2
XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Hdr.h
...ngine_APPService/XEngine_AuthorizeService/Authorize_Hdr.h
+1
-0
XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_HttpTask.cpp
...PPService/XEngine_AuthorizeService/Authorize_HttpTask.cpp
+36
-16
XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Net.cpp
...ine_APPService/XEngine_AuthorizeService/Authorize_Net.cpp
+9
-9
XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Net.h
...ngine_APPService/XEngine_AuthorizeService/Authorize_Net.h
+9
-9
XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Task.cpp
...ne_APPService/XEngine_AuthorizeService/Authorize_Task.cpp
+2
-2
XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Task.h
...gine_APPService/XEngine_AuthorizeService/Authorize_Task.h
+2
-2
XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Makefile
...urce/XEngine_APPService/XEngine_AuthorizeService/Makefile
+3
-1
XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.cpp
...ice/XEngine_AuthorizeService/XEngine_AuthorizeService.cpp
+1
-1
XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.vcxproj
...XEngine_AuthorizeService/XEngine_AuthorizeService.vcxproj
+2
-0
XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.vcxproj.filters
...AuthorizeService/XEngine_AuthorizeService.vcxproj.filters
+6
-0
未找到文件。
CHANGELOG
浏览文件 @
a21e85f2
XEngine_Authorize V3.6.0.1001
添加:公告功能支持
添加:公告功能开关支持
添加:cdkey功能开关
添加:cdkey验证支持
删除:cdkey的单独密码支持
added:announcement function
added:switch function for announcement system
added:cdkey switch support
added:verification cdkey support
delete:cdkey password support
======================================================================================
XEngine_Authorize V3.5.0.1001
添加:禁用列表功能支持修改信息了
...
...
README.en.md
浏览文件 @
a21e85f2
...
...
@@ -42,6 +42,7 @@ feature list:
14.
support distributed verification authorize function
15.
black list management
16.
local cdkey support
17.
announecement management
## install
...
...
README.md
浏览文件 @
a21e85f2
...
...
@@ -42,6 +42,7 @@ V2可以直接升级到V3版本,因为数据库并没有修改,直接替换程
14.
分布式验证授权功能支持
15.
黑名单管理
16.
本地cdkey生成验证支持
17.
支持功公告管理
## 安装教程
...
...
@@ -144,4 +145,5 @@ mysql支持
支持代理端(序列号分发,权限控制)
支持绑定自定义内容
自动售卡(支付宝,微信)
MQTT协议支持,让你的嵌入式设备也用上授时验证
\ No newline at end of file
MQTT协议支持,让你的嵌入式设备也用上授时验证
支持三方验证(其他服务也可以发送验证请求给验证服务来做验证)
\ No newline at end of file
XEngine_Apps/Authorize_APPClient/Authorize_APPClient.cpp
浏览文件 @
a21e85f2
...
...
@@ -197,6 +197,38 @@ int AuthClient_Login()
}
return
0
;
}
int
AuthClient_Notice
()
{
int
nHTTPCode
=
0
;
LPCTSTR
lpszUrl
=
_T
(
"http://127.0.0.1:5302/api?function=notice"
);
int
nMsgLen
=
0
;
CHAR
*
ptszMsgBuffer
=
NULL
;
APIClient_Http_Request
(
_T
(
"GET"
),
lpszUrl
,
NULL
,
&
nHTTPCode
,
&
ptszMsgBuffer
,
&
nMsgLen
);
Json
::
Value
st_JsonRoot
;
Json
::
Value
st_JsonObject
;
JSONCPP_STRING
st_JsonError
;
Json
::
CharReaderBuilder
st_ReaderBuilder
;
std
::
unique_ptr
<
Json
::
CharReader
>
const
pSt_JsonReader
(
st_ReaderBuilder
.
newCharReader
());
if
(
!
pSt_JsonReader
->
parse
(
ptszMsgBuffer
,
ptszMsgBuffer
+
nMsgLen
,
&
st_JsonRoot
,
&
st_JsonError
))
{
return
0
;
}
for
(
unsigned
int
i
=
0
;
i
<
st_JsonRoot
[
"Array"
].
size
();
i
++
)
{
TCHAR
tszMsgBuffer
[
2048
];
memset
(
tszMsgBuffer
,
'\0'
,
sizeof
(
tszMsgBuffer
));
Json
::
Value
st_JsonArray
=
st_JsonRoot
[
"Array"
][
i
];
int
nMsgLen
=
st_JsonArray
[
"tszContext"
].
asString
().
length
();
BaseLib_OperatorCharset_UTFToAnsi
(
st_JsonArray
[
"tszContext"
].
asCString
(),
tszMsgBuffer
,
&
nMsgLen
);
printf
(
"AuthClient_Notice:
\n
ID:%lld:%s
\n
"
,
st_JsonArray
[
"nID"
].
asInt64
(),
tszMsgBuffer
);
}
BaseLib_OperatorMemory_FreeCStyle
((
XPPMEM
)
&
ptszMsgBuffer
);
return
0
;
}
int
AuthClient_GetPass
()
{
int
nHTTPCode
=
0
;
...
...
@@ -299,6 +331,7 @@ int main()
AuthClient_Register
();
AuthClient_Pay
();
AuthClient_Login
();
AuthClient_Notice
();
AuthClient_GetPass
();
AuthClient_GetTime
();
AuthClient_Delete
();
...
...
XEngine_Apps/Authorize_APPLocal/Authorize_APPLocal.cpp
浏览文件 @
a21e85f2
...
...
@@ -29,6 +29,10 @@
//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
//#define XENGINE_AUTHORIZE_CDKEY_CRYPTO
LPCTSTR
lpszPasswd
=
_T
(
"123123"
);
int
main
()
{
#ifdef _MSC_BUILD
...
...
@@ -37,8 +41,6 @@ int main()
#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
;
...
...
@@ -62,39 +64,101 @@ int main()
st_JsonRoot
[
"st_AuthUserInfo"
]
=
st_JsonUserInfo
;
TCHAR
*
ptszCreateBuffer
=
NULL
;
TCHAR
*
ptszAuthBuffer
=
NULL
;
LPCTSTR
lpszCreateUrl
=
_T
(
"http://192.168.1.10:5302/auth/cdkey/create"
);
//1. 创建CDKEY
#ifdef XENGINE_AUTHORIZE_CDKEY_CRYPTO
//加密
CHAR
tszCodecBuffer
[
4096
];
memset
(
tszCodecBuffer
,
'\0'
,
sizeof
(
tszCodecBuffer
));
nLen
=
st_JsonRoot
.
toStyledString
().
length
();
OPenSsl_XCrypto_Encoder
(
st_JsonRoot
.
toStyledString
().
c_str
(),
&
nLen
,
(
UCHAR
*
)
tszCodecBuffer
,
lpszPasswd
);
if
(
!
APIClient_Http_Request
(
_T
(
"POST"
),
lpszCreateUrl
,
tszCodecBuffer
,
&
nCode
,
&
ptszCreateBuffer
,
&
nLen
))
#else
if
(
!
APIClient_Http_Request
(
_T
(
"POST"
),
lpszCreateUrl
,
st_JsonRoot
.
toStyledString
().
c_str
(),
&
nCode
,
&
ptszCreateBuffer
,
&
nLen
))
#endif
{
printf
(
"发送投递失败!
\n
"
);
return
0
;
}
printf
(
"接受到数据,大小:%d,内容:%s
\n
"
,
nLen
,
ptszCreateBuffer
);
TCHAR
tszMsgBuffer
[
4096
];
memset
(
tszMsgBuffer
,
'\0'
,
sizeof
(
tszMsgBuffer
));
#ifdef XENGINE_AUTHORIZE_CDKEY_CRYPTO
//解密
memset
(
tszCodecBuffer
,
'\0'
,
sizeof
(
tszCodecBuffer
));
OPenSsl_XCrypto_Decoder
(
ptszCreateBuffer
,
&
nLen
,
tszCodecBuffer
,
lpszPasswd
);
printf
(
"接受到数据,大小:%d,内容:
\n
%s
\n
"
,
nLen
,
tszCodecBuffer
);
//你也可以通过授权模块的API函数来读内存,都一回事,这里为了方便直接写了,请求分钟卡,拥有10分钟,也可以写自定义时间格式
BaseLib_OperatorFile_WriteProfileFromMemory
(
tszCodecBuffer
,
nLen
,
"AuthReg"
,
"tszLeftTime"
,
"10"
,
tszMsgBuffer
,
&
nLen
);
#else
BaseLib_OperatorFile_WriteProfileFromMemory
(
ptszCreateBuffer
,
nLen
,
"AuthReg"
,
"tszLeftTime"
,
"10"
,
tszMsgBuffer
,
&
nLen
);
printf
(
"接受到数据,大小:%d,内容:
\n
%s
\n
"
,
nLen
,
ptszCreateBuffer
);
#endif
BaseLib_OperatorMemory_FreeCStyle
((
XPPMEM
)
&
ptszCreateBuffer
);
LPCTSTR
lpszAuthUrl
=
_T
(
"http://127.0.0.1:5302/auth/cdkey/auth?pass=123123"
);
//2. 授权CDKEY
TCHAR
*
ptszAuthBuffer
=
NULL
;
LPCTSTR
lpszAuthUrl
=
_T
(
"http://192.168.1.10:5302/auth/cdkey/auth"
);
#ifdef XENGINE_AUTHORIZE_CDKEY_CRYPTO
//加密
memset
(
tszCodecBuffer
,
'\0'
,
sizeof
(
tszCodecBuffer
));
nLen
=
nLen
;
OPenSsl_XCrypto_Encoder
(
tszMsgBuffer
,
&
nLen
,
(
UCHAR
*
)
tszCodecBuffer
,
lpszPasswd
);
if
(
!
APIClient_Http_Request
(
_T
(
"POST"
),
lpszAuthUrl
,
tszCodecBuffer
,
&
nCode
,
&
ptszAuthBuffer
,
&
nLen
))
#else
if
(
!
APIClient_Http_Request
(
_T
(
"POST"
),
lpszAuthUrl
,
tszMsgBuffer
,
&
nCode
,
&
ptszAuthBuffer
,
&
nLen
))
#endif
{
printf
(
"发送投递失败!
\n
"
);
return
0
;
}
//ptszAuthBuffer 写文件,然后验证即可.如下所示
//step 1.解密
CHAR
tszCodecBuffer
[
4096
];
#ifdef XENGINE_AUTHORIZE_CDKEY_CRYPTO
//解密
memset
(
tszCodecBuffer
,
'\0'
,
sizeof
(
tszCodecBuffer
));
OPenSsl_XCrypto_Decoder
(
ptszAuthBuffer
,
&
nLen
,
tszCodecBuffer
,
"123123"
);
BaseLib_OperatorMemory_FreeCStyle
((
XPPMEM
)
&
ptszAuthBuffer
);
OPenSsl_XCrypto_Decoder
(
ptszAuthBuffer
,
&
nLen
,
tszCodecBuffer
,
lpszPasswd
);
printf
(
"接受到数据,大小:%d,内容:
\n
%s
\n
"
,
nLen
,
tszCodecBuffer
);
//step 2.转换格式
//你也可以通过授权模块的API函数来读内存,都一回事,这里为了方便直接写了,请求分钟卡,拥有10分钟,也可以写自定义时间格式
BaseLib_OperatorFile_WriteProfileFromMemory
(
tszCodecBuffer
,
nLen
,
"AuthReg"
,
"tszLeftTime"
,
"10"
,
tszMsgBuffer
,
&
nLen
);
#else
printf
(
"接受到数据,大小:%d,内容:
\n
%s
\n
"
,
nLen
,
ptszAuthBuffer
);
BaseLib_OperatorFile_WriteProfileFromMemory
(
ptszAuthBuffer
,
nLen
,
"AuthReg"
,
"tszLeftTime"
,
"10"
,
tszMsgBuffer
,
&
nLen
);
#endif
BaseLib_OperatorMemory_FreeCStyle
((
XPPMEM
)
&
ptszAuthBuffer
);
//3. 验证CDKEY
TCHAR
*
ptszVerBuffer
=
NULL
;
LPCTSTR
lpszVerUrl
=
_T
(
"http://192.168.1.10:5302/auth/cdkey/ver"
);
XENGINE_AUTHORIZE_LOCAL
st_Authorize
;
memset
(
&
st_Authorize
,
'\0'
,
sizeof
(
XENGINE_AUTHORIZE_LOCAL
));
#ifdef XENGINE_AUTHORIZE_CDKEY_CRYPTO
//加密
memset
(
tszCodecBuffer
,
'\0'
,
sizeof
(
tszCodecBuffer
));
OPenSsl_XCrypto_Encoder
(
tszMsgBuffer
,
&
nLen
,
(
UCHAR
*
)
tszCodecBuffer
,
lpszPasswd
);
if
(
!
APIClient_Http_Request
(
_T
(
"POST"
),
lpszVerUrl
,
tszCodecBuffer
,
&
nCode
,
&
ptszVerBuffer
,
&
nLen
))
#else
if
(
!
APIClient_Http_Request
(
_T
(
"POST"
),
lpszVerUrl
,
tszMsgBuffer
,
&
nCode
,
&
ptszVerBuffer
,
&
nLen
))
#endif
{
printf
(
"发送投递失败!
\n
"
);
return
0
;
}
#ifdef XENGINE_AUTHORIZE_CDKEY_CRYPTO
//解密
memset
(
tszCodecBuffer
,
'\0'
,
sizeof
(
tszCodecBuffer
));
OPenSsl_XCrypto_Decoder
(
ptszVerBuffer
,
&
nLen
,
tszCodecBuffer
,
lpszPasswd
);
printf
(
"接受到数据,大小:%d,内容:
\n
%s
\n
"
,
nLen
,
tszCodecBuffer
);
Authorize_Local_ReadMemory
(
tszCodecBuffer
,
nLen
,
&
st_Authorize
);
//step 3.判断您是否超时
#else
printf
(
"接受到数据,大小:%d,内容:
\n
%s
\n
"
,
nLen
,
ptszVerBuffer
);
Authorize_Local_ReadMemory
(
ptszVerBuffer
,
nLen
,
&
st_Authorize
);
#endif
BaseLib_OperatorMemory_FreeCStyle
((
XPPMEM
)
&
ptszVerBuffer
);
//4. 也可以本地验证
if
(
Authorize_Local_GetLeftTimer
(
&
st_Authorize
))
{
printf
(
"ok
\n
"
);
...
...
XEngine_Apps/VSCopy_x86.bat
浏览文件 @
a21e85f2
...
...
@@ -10,5 +10,5 @@ copy /y "%XEngine_Lib32%\XEngine_SystemSdk\XEngine_SystemApi.dll" "./"
copy
/y
"
%XEngine
_Lib32
%
\XEngine_HelpComponents\zlib1.dll"
"./"
copy
/y
"
%XEngine
_Lib32
%
\XEngine_LibEx\libcrypto-3.dll"
"./"
copy
/y
"
%XEngine
_Lib32
%
\XEngine_LibEx\libssl-3.dll"
"./"
copy
/y
"
%XEngine
_Lib32
%
\XEngine_LibEx\libcurl.dll"
"./"
copy
/y
"
%XEngine
_Lib32
%
\XEngine_LibEx\nghttp2.dll"
"./"
\ No newline at end of file
copy
/y
"
%XEngine
_Lib32
%
\XEngine_NetHelp\libcurl.dll"
"./"
copy
/y
"
%XEngine
_Lib32
%
\XEngine_NetHelp\nghttp2.dll"
"./"
\ No newline at end of file
XEngine_Docment/Docment_en.docx
浏览文件 @
a21e85f2
无法预览此类型文件
XEngine_Docment/Docment_zh.docx
浏览文件 @
a21e85f2
无法预览此类型文件
XEngine_Release/XEngine_Config/XEngine_Config.json
浏览文件 @
a21e85f2
...
...
@@ -45,6 +45,7 @@
"LogLeave"
:
32
},
"XVer"
:[
"V3.6.0.1001 Build20230224"
,
"V3.5.0.1001 Build20230203"
,
"V3.4.0.1001 Build20221230"
,
"V3.3.0.1001 Build20221101"
,
...
...
XEngine_Release/XEngine_Config/XEngine_SwitchConfig.json
浏览文件 @
a21e85f2
...
...
@@ -4,5 +4,7 @@
"bSwitchLogin"
:
true
,
"bSwitchPay"
:
true
,
"bSwitchPass"
:
true
,
"bSwtichTime"
:
true
"bSwitchTime"
:
true
,
"bSwitchCDKey"
:
true
,
"bSwitchNotice"
:
true
}
\ No newline at end of file
XEngine_Release/XEngine_DataBase/SQL_User.db
浏览文件 @
a21e85f2
无法预览此类型文件
XEngine_SQL/main.sql
浏览文件 @
a21e85f2
...
...
@@ -10,11 +10,26 @@
Target Server Version : 3035005 (3.35.5)
File Encoding : 65001
Date:
03/02/2023 15:14:23
Date:
24/02/2023 14:43:17
*/
PRAGMA
foreign_keys
=
false
;
-- ----------------------------
-- Table structure for Authorize_Announcement
-- ----------------------------
DROP
TABLE
IF
EXISTS
"Authorize_Announcement"
;
CREATE
TABLE
"Authorize_Announcement"
(
"ID"
INTEGER
NOT
NULL
,
"tszContext"
TEXT
,
"tszCreateTime"
DATE
,
PRIMARY
KEY
(
"ID"
)
);
-- ----------------------------
-- Records of Authorize_Announcement
-- ----------------------------
-- ----------------------------
-- Table structure for Authorize_BannedAddr
-- ----------------------------
...
...
@@ -116,7 +131,7 @@ CREATE TABLE "sqlite_sequence" (
-- ----------------------------
-- Records of sqlite_sequence
-- ----------------------------
INSERT
INTO
"sqlite_sequence"
VALUES
(
'Authorize_User'
,
1
);
INSERT
INTO
"sqlite_sequence"
VALUES
(
'Authorize_User'
,
2
);
INSERT
INTO
"sqlite_sequence"
VALUES
(
'Authorize_BannedUser'
,
6
);
INSERT
INTO
"sqlite_sequence"
VALUES
(
'Authorize_BannedAddr'
,
5
);
...
...
@@ -133,6 +148,6 @@ UPDATE "sqlite_sequence" SET seq = 6 WHERE name = 'Authorize_BannedUser';
-- ----------------------------
-- Auto increment value for Authorize_User
-- ----------------------------
UPDATE
"sqlite_sequence"
SET
seq
=
1
WHERE
name
=
'Authorize_User'
;
UPDATE
"sqlite_sequence"
SET
seq
=
2
WHERE
name
=
'Authorize_User'
;
PRAGMA
foreign_keys
=
true
;
XEngine_Source/AuthorizeModule_Configure/Config_Define.h
浏览文件 @
a21e85f2
...
...
@@ -80,7 +80,9 @@ typedef struct
BOOL
bSwitchLogin
;
//登录开关
BOOL
bSwitchPay
;
//充值开关
BOOL
bSwitchPass
;
//找回密码开关
BOOL
bSwtichTime
;
//计时开关,关闭后客户端不会消耗时间(仅分钟卡有效)
BOOL
bSwitchTime
;
//计时开关,关闭后客户端不会消耗时间(仅分钟卡有效)
BOOL
bSwitchCDKey
;
//是否允许本地CDKEY创建使用
BOOL
bSwitchNotice
;
//是否开启公告系统
}
XENGINE_FUNCTIONSWITCH
;
//////////////////////////////////////////////////////////////////////////
// 导出的函数
...
...
XEngine_Source/AuthorizeModule_Configure/ModuleConfigure_Json/ModuleConfigure_Json.cpp
浏览文件 @
a21e85f2
...
...
@@ -247,7 +247,9 @@ BOOL CModuleConfigure_Json::ModuleConfigure_Json_Switch(LPCTSTR lpszConfigFile,
pSt_ServerConfig
->
bSwitchLogin
=
st_JsonRoot
[
"bSwitchLogin"
].
asBool
();
pSt_ServerConfig
->
bSwitchPay
=
st_JsonRoot
[
"bSwitchPay"
].
asBool
();
pSt_ServerConfig
->
bSwitchPass
=
st_JsonRoot
[
"bSwitchPass"
].
asBool
();
pSt_ServerConfig
->
bSwtichTime
=
st_JsonRoot
[
"bSwtichTime"
].
asBool
();
pSt_ServerConfig
->
bSwitchTime
=
st_JsonRoot
[
"bSwitchTime"
].
asBool
();
pSt_ServerConfig
->
bSwitchCDKey
=
st_JsonRoot
[
"bSwitchCDKey"
].
asBool
();
pSt_ServerConfig
->
bSwitchNotice
=
st_JsonRoot
[
"bSwitchNotice"
].
asBool
();
return
TRUE
;
}
\ No newline at end of file
XEngine_Source/AuthorizeModule_Database/AuthorizeModule_Database.def
浏览文件 @
a21e85f2
...
...
@@ -30,4 +30,8 @@ EXPORTS
Database_SQLite_BannedDelete
Database_SQLite_BannedList
Database_SQLite_BannedExist
Database_SQLite_BannedUPDate
\ No newline at end of file
Database_SQLite_BannedUPDate
Database_SQLite_AnnouncementInsert
Database_SQLite_AnnouncementDelete
Database_SQLite_AnnouncementList
\ No newline at end of file
XEngine_Source/AuthorizeModule_Database/Database_Define.h
浏览文件 @
a21e85f2
...
...
@@ -417,4 +417,51 @@ extern "C" BOOL Database_SQLite_BannedExist(AUTHREG_BANNED* pSt_Banned);
意思:是否成功
备注:
*********************************************************************/
extern
"C"
BOOL
Database_SQLite_BannedUPDate
(
AUTHREG_BANNED
*
pSt_Banned
);
\ No newline at end of file
extern
"C"
BOOL
Database_SQLite_BannedUPDate
(
AUTHREG_BANNED
*
pSt_Banned
);
/********************************************************************
函数名称:Database_SQLite_AnnouncementInsert
函数功能:公告插入
参数.一:pSt_Announcement
In/Out:In
类型:数据结构指针
可空:N
意思:输入要插入的信息
返回值
类型:逻辑型
意思:是否成功
备注:
*********************************************************************/
extern
"C"
BOOL
Database_SQLite_AnnouncementInsert
(
AUTHREG_ANNOUNCEMENT
*
pSt_Announcement
);
/********************************************************************
函数名称:Database_SQLite_AnnouncementDelete
函数功能:公告删除
参数.一:pSt_Announcement
In/Out:In
类型:数据结构指针
可空:N
意思:输入要删除的信息
返回值
类型:逻辑型
意思:是否成功
备注:
*********************************************************************/
extern
"C"
BOOL
Database_SQLite_AnnouncementDelete
(
AUTHREG_ANNOUNCEMENT
*
pSt_Announcement
);
/********************************************************************
函数名称:Database_SQLite_AnnouncementList
函数功能:列举所有公告
参数.一:ppppSt_Announcement
In/Out:Out
类型:三级指针
可空:N
意思:输出列举数据
参数.二:pInt_ListCount
In/Out:Out
类型:整数型指针
可空:N
意思:导出数据个数
返回值
类型:逻辑型
意思:是否成功
备注:
*********************************************************************/
extern
"C"
BOOL
Database_SQLite_AnnouncementList
(
AUTHREG_ANNOUNCEMENT
***
ppppSt_Announcement
,
int
*
pInt_ListCount
);
\ No newline at end of file
XEngine_Source/AuthorizeModule_Database/Database_SQLite/Database_SQLite.cpp
浏览文件 @
a21e85f2
...
...
@@ -1433,6 +1433,131 @@ BOOL CDatabase_SQLite::Database_SQLite_BannedUPDate(AUTHREG_BANNED* pSt_Banned)
}
return
TRUE
;
}
/********************************************************************
函数名称:Database_SQLite_AnnouncementInsert
函数功能:公告插入
参数.一:pSt_Announcement
In/Out:In
类型:数据结构指针
可空:N
意思:输入要插入的信息
返回值
类型:逻辑型
意思:是否成功
备注:
*********************************************************************/
BOOL
CDatabase_SQLite
::
Database_SQLite_AnnouncementInsert
(
AUTHREG_ANNOUNCEMENT
*
pSt_Announcement
)
{
SQLPacket_IsErrorOccur
=
FALSE
;
if
(
NULL
==
pSt_Announcement
)
{
SQLPacket_IsErrorOccur
=
TRUE
;
SQLPacket_dwErrorCode
=
ERROR_AUTHORIZE_MODULE_DATABASE_PARAMENT
;
return
FALSE
;
}
TCHAR
tszSQLStatement
[
8192
];
memset
(
tszSQLStatement
,
'\0'
,
sizeof
(
tszSQLStatement
));
_stprintf_s
(
tszSQLStatement
,
_T
(
"INSERT INTO Authorize_Announcement(tszContext,tszCreateTime) VALUES('%s',datetime('now', 'localtime'))"
),
pSt_Announcement
->
tszContext
);
//插入数据库
if
(
!
DataBase_SQLite_Exec
(
xhData
,
tszSQLStatement
))
{
SQLPacket_IsErrorOccur
=
TRUE
;
SQLPacket_dwErrorCode
=
DataBase_GetLastError
();
return
FALSE
;
}
return
TRUE
;
}
/********************************************************************
函数名称:Database_SQLite_AnnouncementDelete
函数功能:公告删除
参数.一:pSt_Announcement
In/Out:In
类型:数据结构指针
可空:N
意思:输入要删除的信息
返回值
类型:逻辑型
意思:是否成功
备注:
*********************************************************************/
BOOL
CDatabase_SQLite
::
Database_SQLite_AnnouncementDelete
(
AUTHREG_ANNOUNCEMENT
*
pSt_Announcement
)
{
SQLPacket_IsErrorOccur
=
FALSE
;
if
(
NULL
==
pSt_Announcement
)
{
SQLPacket_IsErrorOccur
=
TRUE
;
SQLPacket_dwErrorCode
=
ERROR_AUTHORIZE_MODULE_DATABASE_PARAMENT
;
return
FALSE
;
}
TCHAR
tszSQLStatement
[
1024
];
memset
(
tszSQLStatement
,
'\0'
,
sizeof
(
tszSQLStatement
));
_stprintf_s
(
tszSQLStatement
,
_T
(
"DELETE FROM Authorize_Announcement WHERE ID = %lld"
),
pSt_Announcement
->
nID
);
//插入数据库
if
(
!
DataBase_SQLite_Exec
(
xhData
,
tszSQLStatement
))
{
SQLPacket_IsErrorOccur
=
TRUE
;
SQLPacket_dwErrorCode
=
DataBase_GetLastError
();
return
FALSE
;
}
return
TRUE
;
}
/********************************************************************
函数名称:Database_SQLite_AnnouncementList
函数功能:列举所有公告
参数.一:ppppSt_Announcement
In/Out:Out
类型:三级指针
可空:N
意思:输出列举数据
参数.二:pInt_ListCount
In/Out:Out
类型:整数型指针
可空:N
意思:导出数据个数
返回值
类型:逻辑型
意思:是否成功
备注:
*********************************************************************/
BOOL
CDatabase_SQLite
::
Database_SQLite_AnnouncementList
(
AUTHREG_ANNOUNCEMENT
***
ppppSt_Announcement
,
int
*
pInt_ListCount
)
{
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_Announcement"
));
if
(
!
DataBase_SQLite_GetTable
(
xhData
,
tszSQLStatement
,
&
ppszResult
,
&
nRow
,
&
nColumn
))
{
SQLPacket_IsErrorOccur
=
TRUE
;
SQLPacket_dwErrorCode
=
DataBase_GetLastError
();
return
FALSE
;
}
*
pInt_ListCount
=
nRow
;
BaseLib_OperatorMemory_Malloc
((
XPPPMEM
)
ppppSt_Announcement
,
nRow
,
sizeof
(
AUTHREG_ANNOUNCEMENT
));
int
nFliedValue
=
nColumn
;
//轮训所有内容
for
(
int
i
=
0
;
i
<
nRow
;
i
++
)
{
(
*
ppppSt_Announcement
)[
i
]
->
nID
=
_ttoi64
(
ppszResult
[
nFliedValue
]);
nFliedValue
++
;
_tcscpy
((
*
ppppSt_Announcement
)[
i
]
->
tszContext
,
ppszResult
[
nFliedValue
]);
nFliedValue
++
;
_tcscpy
((
*
ppppSt_Announcement
)[
i
]
->
tszCreateTime
,
ppszResult
[
nFliedValue
]);
nFliedValue
++
;
}
DataBase_SQLite_FreeTable
(
ppszResult
);
return
TRUE
;
}
//////////////////////////////////////////////////////////////////////////
// 保护函数
//////////////////////////////////////////////////////////////////////////
...
...
XEngine_Source/AuthorizeModule_Database/Database_SQLite/Database_SQLite.h
浏览文件 @
a21e85f2
...
...
@@ -48,6 +48,10 @@ public:
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
);
public:
BOOL
Database_SQLite_AnnouncementInsert
(
AUTHREG_ANNOUNCEMENT
*
pSt_Announcement
);
BOOL
Database_SQLite_AnnouncementDelete
(
AUTHREG_ANNOUNCEMENT
*
pSt_Announcement
);
BOOL
Database_SQLite_AnnouncementList
(
AUTHREG_ANNOUNCEMENT
***
ppppSt_Announcement
,
int
*
pInt_ListCount
);
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:
...
...
XEngine_Source/AuthorizeModule_Database/pch.cpp
浏览文件 @
a21e85f2
...
...
@@ -124,4 +124,16 @@ extern "C" BOOL Database_SQLite_BannedExist(AUTHREG_BANNED * pSt_Banned)
extern
"C"
BOOL
Database_SQLite_BannedUPDate
(
AUTHREG_BANNED
*
pSt_Banned
)
{
return
m_SQLAuth
.
Database_SQLite_BannedUPDate
(
pSt_Banned
);
}
extern
"C"
BOOL
Database_SQLite_AnnouncementInsert
(
AUTHREG_ANNOUNCEMENT
*
pSt_Announcement
)
{
return
m_SQLAuth
.
Database_SQLite_AnnouncementInsert
(
pSt_Announcement
);
}
extern
"C"
BOOL
Database_SQLite_AnnouncementDelete
(
AUTHREG_ANNOUNCEMENT
*
pSt_Announcement
)
{
return
m_SQLAuth
.
Database_SQLite_AnnouncementDelete
(
pSt_Announcement
);
}
extern
"C"
BOOL
Database_SQLite_AnnouncementList
(
AUTHREG_ANNOUNCEMENT
*
**
ppppSt_Announcement
,
int
*
pInt_ListCount
)
{
return
m_SQLAuth
.
Database_SQLite_AnnouncementList
(
ppppSt_Announcement
,
pInt_ListCount
);
}
\ No newline at end of file
XEngine_Source/AuthorizeModule_Protocol/AuthorizeModule_Protocol.def
浏览文件 @
a21e85f2
...
...
@@ -13,6 +13,7 @@ EXPORTS
Protocol_Packet_HttpToken
Protocol_Packet_HttpSwitch
Protocol_Packet_HttpBanned
Protocol_Packet_HttpAnnouncement
Protocol_Parse_WSHdr
Protocol_Parse_HttpParseToken
...
...
@@ -28,4 +29,5 @@ EXPORTS
Protocol_Parse_HttpParseSwitch
Protocol_Parse_HttpParsePos
Protocol_Parse_HttpParseBanned
Protocol_Parse_HttpParseCDKey
\ No newline at end of file
Protocol_Parse_HttpParseCDKey
Protocol_Parse_HttpParseAnnouncement
\ No newline at end of file
XEngine_Source/AuthorizeModule_Protocol/Protocol_Define.h
浏览文件 @
a21e85f2
...
...
@@ -307,6 +307,35 @@ extern "C" BOOL Protocol_Packet_HttpSwitch(TCHAR* ptszMsgBuffer, int* pInt_MsgLe
备注:
*********************************************************************/
extern
"C"
BOOL
Protocol_Packet_HttpBanned
(
TCHAR
*
ptszMsgBuffer
,
int
*
pInt_MsgLen
,
AUTHREG_BANNED
***
pppSt_BannedUser
,
int
nUserCount
,
AUTHREG_BANNED
***
pppSt_BannedAddr
,
int
nAddrCount
);
/********************************************************************
函数名称:Protocol_Packet_HttpAnnouncement
函数功能:打包公告列表
参数.一:ptszMsgBuffer
In/Out:Out
类型:字符指针
可空:N
意思:导出包装好的缓冲区
参数.二:pInt_MsgLen
In/Out:Out
类型:整数型指针
可空:N
意思:输出包装大小
参数.三:pppSt_Announcement
In/Out:In
类型:三级指针
可空:N
意思:输入要处理的列表
参数.四:nListCount
In/Out:In
类型:整数型
可空:N
意思:输入个数
返回值
类型:逻辑型
意思:是否成功
备注:
*********************************************************************/
extern
"C"
BOOL
Protocol_Packet_HttpAnnouncement
(
TCHAR
*
ptszMsgBuffer
,
int
*
pInt_MsgLen
,
AUTHREG_ANNOUNCEMENT
***
pppSt_Announcement
,
int
nListCount
);
/************************************************************************/
/* 解析类协议 */
/************************************************************************/
...
...
@@ -694,4 +723,28 @@ extern "C" BOOL Protocol_Parse_HttpParseBanned(LPCTSTR lpszMsgBuffer, int nMsgLe
意思:是否成功
备注:
*********************************************************************/
extern
"C"
BOOL
Protocol_Parse_HttpParseCDKey
(
LPCTSTR
lpszMsgBuffer
,
int
nMsgLen
,
XENGINE_AUTHORIZE_LOCAL
*
pSt_Authorize
);
\ No newline at end of file
extern
"C"
BOOL
Protocol_Parse_HttpParseCDKey
(
LPCTSTR
lpszMsgBuffer
,
int
nMsgLen
,
XENGINE_AUTHORIZE_LOCAL
*
pSt_Authorize
);
/********************************************************************
函数名称:Protocol_Parse_HttpParseAnnouncement
函数功能:解析公告信息
参数.一:lpszMsgBuffer
In/Out:In
类型:常量字符指针
可空:N
意思:输入要解析的缓冲区
参数.二:nMsgLen
In/Out:In
类型:整数型
可空:N
意思:输入缓冲区大小
参数.三:pSt_Announcement
In/Out:Out
类型:数据结构指针
可空:N
意思:输出解析后的信息
返回值
类型:逻辑型
意思:是否成功
备注:
*********************************************************************/
extern
"C"
BOOL
Protocol_Parse_HttpParseAnnouncement
(
LPCTSTR
lpszMsgBuffer
,
int
nMsgLen
,
AUTHREG_ANNOUNCEMENT
*
pSt_Announcement
);
\ No newline at end of file
XEngine_Source/AuthorizeModule_Protocol/Protocol_Packet/Protocol_Packet.cpp
浏览文件 @
a21e85f2
...
...
@@ -585,6 +585,8 @@ BOOL CProtocol_Packet::Protocol_Packet_HttpSwitch(TCHAR* ptszMsgBuffer, int* pIn
st_JsonRoot
[
"bSwitchPass"
]
=
pSt_FunSwitch
->
bSwitchPass
;
st_JsonRoot
[
"bSwitchPay"
]
=
pSt_FunSwitch
->
bSwitchPay
;
st_JsonRoot
[
"bSwitchRegister"
]
=
pSt_FunSwitch
->
bSwitchRegister
;
st_JsonRoot
[
"bSwitchCDKey"
]
=
pSt_FunSwitch
->
bSwitchCDKey
;
st_JsonRoot
[
"bSwitchNotice"
]
=
pSt_FunSwitch
->
bSwitchNotice
;
*
pInt_MsgLen
=
st_JsonRoot
.
toStyledString
().
length
();
memcpy
(
ptszMsgBuffer
,
st_JsonRoot
.
toStyledString
().
c_str
(),
*
pInt_MsgLen
);
...
...
@@ -669,6 +671,64 @@ BOOL CProtocol_Packet::Protocol_Packet_HttpBanned(TCHAR* ptszMsgBuffer, int* pIn
st_JsonRoot
[
"ArrayUser"
]
=
st_JsonUser
;
st_JsonRoot
[
"ArrayAddr"
]
=
st_JsonAddr
;
*
pInt_MsgLen
=
st_JsonRoot
.
toStyledString
().
length
();
memcpy
(
ptszMsgBuffer
,
st_JsonRoot
.
toStyledString
().
c_str
(),
*
pInt_MsgLen
);
return
TRUE
;
}
/********************************************************************
函数名称:Protocol_Packet_HttpAnnouncement
函数功能:打包公告列表
参数.一:ptszMsgBuffer
In/Out:Out
类型:字符指针
可空:N
意思:导出包装好的缓冲区
参数.二:pInt_MsgLen
In/Out:Out
类型:整数型指针
可空:N
意思:输出包装大小
参数.三:pppSt_Announcement
In/Out:In
类型:三级指针
可空:N
意思:输入要处理的列表
参数.四:nListCount
In/Out:In
类型:整数型
可空:N
意思:输入个数
返回值
类型:逻辑型
意思:是否成功
备注:
*********************************************************************/
BOOL
CProtocol_Packet
::
Protocol_Packet_HttpAnnouncement
(
TCHAR
*
ptszMsgBuffer
,
int
*
pInt_MsgLen
,
AUTHREG_ANNOUNCEMENT
***
pppSt_Announcement
,
int
nListCount
)
{
Protocol_IsErrorOccur
=
FALSE
;
if
((
NULL
==
ptszMsgBuffer
)
||
(
NULL
==
pInt_MsgLen
))
{
Protocol_IsErrorOccur
=
TRUE
;
Protocol_dwErrorCode
=
ERROR_AUTHORIZE_MODULE_PROTOCOL_PARAMENT
;
return
FALSE
;
}
Json
::
Value
st_JsonRoot
;
Json
::
Value
st_JsonArray
;
for
(
int
i
=
0
;
i
<
nListCount
;
i
++
)
{
Json
::
Value
st_JsonObject
;
st_JsonObject
[
"nID"
]
=
(
Json
::
Value
::
Int64
)(
*
pppSt_Announcement
)[
i
]
->
nID
;
st_JsonObject
[
"tszContext"
]
=
(
*
pppSt_Announcement
)[
i
]
->
tszContext
;
st_JsonObject
[
"tszCreateTime"
]
=
(
*
pppSt_Announcement
)[
i
]
->
tszCreateTime
;
st_JsonArray
.
append
(
st_JsonObject
);
}
st_JsonRoot
[
"msg"
]
=
"success"
;
st_JsonRoot
[
"code"
]
=
0
;
st_JsonRoot
[
"Count"
]
=
st_JsonArray
.
size
();
st_JsonRoot
[
"Array"
]
=
st_JsonArray
;
*
pInt_MsgLen
=
st_JsonRoot
.
toStyledString
().
length
();
memcpy
(
ptszMsgBuffer
,
st_JsonRoot
.
toStyledString
().
c_str
(),
*
pInt_MsgLen
);
return
TRUE
;
...
...
XEngine_Source/AuthorizeModule_Protocol/Protocol_Packet/Protocol_Packet.h
浏览文件 @
a21e85f2
...
...
@@ -28,6 +28,7 @@ public:
BOOL
Protocol_Packet_HttpToken
(
TCHAR
*
ptszMsgBuffer
,
int
*
pInt_MsgLen
,
XNETHANDLE
xhToken
,
int
nTimeout
);
BOOL
Protocol_Packet_HttpSwitch
(
TCHAR
*
ptszMsgBuffer
,
int
*
pInt_MsgLen
,
XENGINE_FUNCTIONSWITCH
*
pSt_FunSwitch
);
BOOL
Protocol_Packet_HttpBanned
(
TCHAR
*
ptszMsgBuffer
,
int
*
pInt_MsgLen
,
AUTHREG_BANNED
***
pppSt_BannedUser
,
int
nUserCount
,
AUTHREG_BANNED
***
pppSt_BannedAddr
,
int
nAddrCount
);
BOOL
Protocol_Packet_HttpAnnouncement
(
TCHAR
*
ptszMsgBuffer
,
int
*
pInt_MsgLen
,
AUTHREG_ANNOUNCEMENT
***
pppSt_Announcement
,
int
nListCount
);
protected:
private:
};
\ No newline at end of file
XEngine_Source/AuthorizeModule_Protocol/Protocol_Parse/Protocol_Parse.cpp
浏览文件 @
a21e85f2
...
...
@@ -811,6 +811,9 @@ BOOL CProtocol_Parse::Protocol_Parse_HttpParseSwitch(LPCTSTR lpszMsgBuffer, int
pSt_FunSwitch
->
bSwitchLogin
=
st_JsonObject
[
"bSwitchLogin"
].
asBool
();
pSt_FunSwitch
->
bSwitchPay
=
st_JsonObject
[
"bSwitchPay"
].
asBool
();
pSt_FunSwitch
->
bSwitchPass
=
st_JsonObject
[
"bSwitchPass"
].
asBool
();
pSt_FunSwitch
->
bSwitchCDKey
=
st_JsonObject
[
"bSwitchCDKey"
].
asBool
();
pSt_FunSwitch
->
bSwitchNotice
=
st_JsonObject
[
"bSwitchNotice"
].
asBool
();
return
TRUE
;
}
/********************************************************************
...
...
@@ -1071,4 +1074,64 @@ BOOL CProtocol_Parse::Protocol_Parse_HttpParseCDKey(LPCTSTR lpszMsgBuffer, int n
_tcscpy
(
pSt_Authorize
->
st_AuthUserInfo
.
tszCustom
,
st_JsonUserInfo
[
"tszCustom"
].
asCString
());
}
return
TRUE
;
}
/********************************************************************
函数名称:Protocol_Parse_HttpParseAnnouncement
函数功能:解析公告信息
参数.一:lpszMsgBuffer
In/Out:In
类型:常量字符指针
可空:N
意思:输入要解析的缓冲区
参数.二:nMsgLen
In/Out:In
类型:整数型
可空:N
意思:输入缓冲区大小
参数.三:pSt_Announcement
In/Out:Out
类型:数据结构指针
可空:N
意思:输出解析后的信息
返回值
类型:逻辑型
意思:是否成功
备注:
*********************************************************************/
BOOL
CProtocol_Parse
::
Protocol_Parse_HttpParseAnnouncement
(
LPCTSTR
lpszMsgBuffer
,
int
nMsgLen
,
AUTHREG_ANNOUNCEMENT
*
pSt_Announcement
)
{
Protocol_IsErrorOccur
=
FALSE
;
if
((
NULL
==
lpszMsgBuffer
)
||
(
NULL
==
pSt_Announcement
))
{
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
<
Json
::
CharReader
>
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
;
}
Json
::
Value
st_JsonObject
=
st_JsonRoot
[
"st_Notice"
];
if
(
!
st_JsonObject
[
"tszContext"
].
isNull
())
{
_tcscpy
(
pSt_Announcement
->
tszContext
,
st_JsonObject
[
"tszContext"
].
asCString
());
}
if
(
!
st_JsonObject
[
"tszCreateTime"
].
isNull
())
{
_tcscpy
(
pSt_Announcement
->
tszCreateTime
,
st_JsonObject
[
"tszCreateTime"
].
asCString
());
}
if
(
!
st_JsonObject
[
"nID"
].
isNull
())
{
pSt_Announcement
->
nID
=
st_JsonObject
[
"nID"
].
asInt64
();
}
return
TRUE
;
}
\ No newline at end of file
XEngine_Source/AuthorizeModule_Protocol/Protocol_Parse/Protocol_Parse.h
浏览文件 @
a21e85f2
...
...
@@ -33,6 +33,7 @@ public:
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
);
BOOL
Protocol_Parse_HttpParseAnnouncement
(
LPCTSTR
lpszMsgBuffer
,
int
nMsgLen
,
AUTHREG_ANNOUNCEMENT
*
pSt_Announcement
);
protected:
private:
};
\ No newline at end of file
XEngine_Source/AuthorizeModule_Protocol/pch.cpp
浏览文件 @
a21e85f2
...
...
@@ -71,6 +71,10 @@ extern "C" BOOL Protocol_Packet_HttpBanned(TCHAR * ptszMsgBuffer, int* pInt_MsgL
{
return
m_ProtocolPacket
.
Protocol_Packet_HttpBanned
(
ptszMsgBuffer
,
pInt_MsgLen
,
pppSt_BannedUser
,
nUserCount
,
pppSt_BannedAddr
,
nAddrCount
);
}
extern
"C"
BOOL
Protocol_Packet_HttpAnnouncement
(
TCHAR
*
ptszMsgBuffer
,
int
*
pInt_MsgLen
,
AUTHREG_ANNOUNCEMENT
*
**
pppSt_Announcement
,
int
nListCount
)
{
return
m_ProtocolPacket
.
Protocol_Packet_HttpAnnouncement
(
ptszMsgBuffer
,
pInt_MsgLen
,
pppSt_Announcement
,
nListCount
);
}
/************************************************************************/
/* 解析类协议 */
/************************************************************************/
...
...
@@ -133,4 +137,8 @@ extern "C" BOOL Protocol_Parse_HttpParseBanned(LPCTSTR lpszMsgBuffer, int nMsgLe
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
);
}
extern
"C"
BOOL
Protocol_Parse_HttpParseAnnouncement
(
LPCTSTR
lpszMsgBuffer
,
int
nMsgLen
,
AUTHREG_ANNOUNCEMENT
*
pSt_Announcement
)
{
return
m_ProtocolParse
.
Protocol_Parse_HttpParseAnnouncement
(
lpszMsgBuffer
,
nMsgLen
,
pSt_Announcement
);
}
\ No newline at end of file
XEngine_Source/VSCopy_x64.bat
浏览文件 @
a21e85f2
...
...
@@ -21,7 +21,7 @@ copy /y "%XEngine_Lib64%\XEngine_HelpComponents\libmariadb.dll" "./"
copy
/y
"
%XEngine
_Lib64
%
\XEngine_HelpComponents\libpq.dll"
"./"
copy
/y
"
%XEngine
_Lib64
%
\XEngine_HelpComponents\sqlite3.dll"
"./"
copy
/y
"
%XEngine
_Lib64
%
\XEngine_HelpComponents\zlib1.dll"
"./"
copy
/y
"
%XEngine
_Lib64
%
\XEngine_NetHelp\libcurl.dll"
"./"
copy
/y
"
%XEngine
_Lib64
%
\XEngine_NetHelp\nghttp2.dll"
"./"
copy
/y
"
%XEngine
_Lib64
%
\XEngine_LibEx\libcrypto-3-x64.dll"
"./"
copy
/y
"
%XEngine
_Lib64
%
\XEngine_LibEx\libssl-3-x64.dll"
"./"
copy
/y
"
%XEngine
_Lib64
%
\XEngine_LibEx\libcurl.dll"
"./"
copy
/y
"
%XEngine
_Lib64
%
\XEngine_LibEx\nghttp2.dll"
"./"
\ No newline at end of file
copy
/y
"
%XEngine
_Lib64
%
\XEngine_LibEx\libssl-3-x64.dll"
"./"
\ No newline at end of file
XEngine_Source/VSCopy_x86.bat
浏览文件 @
a21e85f2
...
...
@@ -21,7 +21,7 @@ copy /y "%XEngine_Lib32%\XEngine_HelpComponents\libmariadb.dll" "./"
copy
/y
"
%XEngine
_Lib32
%
\XEngine_HelpComponents\libpq.dll"
"./"
copy
/y
"
%XEngine
_Lib32
%
\XEngine_HelpComponents\sqlite3.dll"
"./"
copy
/y
"
%XEngine
_Lib32
%
\XEngine_HelpComponents\zlib1.dll"
"./"
copy
/y
"
%XEngine
_Lib32
%
\XEngine_NetHelp\libcurl.dll"
"./"
copy
/y
"
%XEngine
_Lib32
%
\XEngine_NetHelp\nghttp2.dll"
"./"
copy
/y
"
%XEngine
_Lib32
%
\XEngine_LibEx\libcrypto-3.dll"
"./"
copy
/y
"
%XEngine
_Lib32
%
\XEngine_LibEx\libssl-3.dll"
"./"
copy
/y
"
%XEngine
_Lib32
%
\XEngine_LibEx\libcurl.dll"
"./"
copy
/y
"
%XEngine
_Lib32
%
\XEngine_LibEx\nghttp2.dll"
"./"
\ No newline at end of file
copy
/y
"
%XEngine
_Lib32
%
\XEngine_LibEx\libssl-3.dll"
"./"
\ No newline at end of file
XEngine_Source/XAuth_Protocol.h
浏览文件 @
a21e85f2
...
...
@@ -86,4 +86,11 @@ typedef struct
CHAR
tszLeftTime
[
64
];
//过期时间
CHAR
tszCreateTime
[
64
];
//创建时间
BOOL
bEnable
;
//是否启用
}
AUTHREG_BANNED
,
*
LPAUTHREG_BANNED
;
\ No newline at end of file
}
AUTHREG_BANNED
,
*
LPAUTHREG_BANNED
;
//公告信息
typedef
struct
{
CHAR
tszContext
[
4096
];
//信息
CHAR
tszCreateTime
[
64
];
//创建时间
__int64x
nID
;
//ID
}
AUTHREG_ANNOUNCEMENT
,
*
LPAUTHREG_ANNOUNCEMENT
;
\ No newline at end of file
XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Announcement.cpp
0 → 100644
浏览文件 @
a21e85f2
// Dialog_Announcement.cpp: 实现文件
//
#include "pch.h"
#include "../XEngine_AuthorizeApp.h"
#include "afxdialogex.h"
#include "Dialog_Announcement.h"
// CDialog_Announcement 对话框
IMPLEMENT_DYNAMIC
(
CDialog_Announcement
,
CDialogEx
)
CDialog_Announcement
::
CDialog_Announcement
(
CWnd
*
pParent
/*=nullptr*/
)
:
CDialogEx
(
IDD_DIALOG_ANNOUNCEMENT
,
pParent
)
{
}
CDialog_Announcement
::~
CDialog_Announcement
()
{
}
void
CDialog_Announcement
::
DoDataExchange
(
CDataExchange
*
pDX
)
{
CDialogEx
::
DoDataExchange
(
pDX
);
DDX_Control
(
pDX
,
IDC_LIST1
,
m_ListAnnouncement
);
DDX_Control
(
pDX
,
IDC_EDIT1
,
m_EditNoticeStr
);
}
BEGIN_MESSAGE_MAP
(
CDialog_Announcement
,
CDialogEx
)
ON_BN_CLICKED
(
IDC_BUTTON1
,
&
CDialog_Announcement
::
OnBnClickedButton1
)
ON_BN_CLICKED
(
IDC_BUTTON2
,
&
CDialog_Announcement
::
OnBnClickedButton2
)
ON_BN_CLICKED
(
IDC_BUTTON3
,
&
CDialog_Announcement
::
OnBnClickedButton3
)
END_MESSAGE_MAP
()
// CDialog_Announcement 消息处理程序
BOOL
CDialog_Announcement
::
OnInitDialog
()
{
CDialogEx
::
OnInitDialog
();
// TODO: 在此添加额外的初始化
m_ListAnnouncement
.
InsertColumn
(
0
,
_T
(
"ID"
),
LVCFMT_LEFT
,
60
);
m_ListAnnouncement
.
InsertColumn
(
1
,
_T
(
"公告内容"
),
LVCFMT_LEFT
,
400
);
m_ListAnnouncement
.
InsertColumn
(
2
,
_T
(
"创建时间"
),
LVCFMT_LEFT
,
150
);
m_ListAnnouncement
.
SetExtendedStyle
(
LVS_EX_FULLROWSELECT
);
return
TRUE
;
// return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}
void
CDialog_Announcement
::
OnBnClickedButton1
()
{
// TODO: 在此添加控件通知处理程序代码
CString
m_StrIPAddr
;
CString
m_StrIPPort
;
CString
m_StrToken
;
CString
m_StrNotice
;
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_EditNoticeStr
.
GetWindowText
(
m_StrNotice
);
TCHAR
tszUrlAddr
[
MAX_PATH
];
memset
(
tszUrlAddr
,
'\0'
,
MAX_PATH
);
_stprintf
(
tszUrlAddr
,
_T
(
"http://%s:%s/auth/notice/insert"
),
m_StrIPAddr
.
GetBuffer
(),
m_StrIPPort
.
GetBuffer
());
int
nMsgLen
=
0
;
CHAR
*
ptszMsgBuffer
=
NULL
;
Json
::
Value
st_JsonRoot
;
Json
::
Value
st_JsonObject
;
Json
::
StreamWriterBuilder
st_JsonBuilder
;
st_JsonBuilder
[
"emitUTF8"
]
=
true
;
st_JsonRoot
[
"xhToken"
]
=
_ttoi64
(
m_StrToken
.
GetBuffer
());
st_JsonObject
[
"tszContext"
]
=
m_StrNotice
.
GetBuffer
();
st_JsonRoot
[
"st_Notice"
]
=
st_JsonObject
;
//是否加密
TCHAR
tszCodecBuffer
[
2048
];
TCHAR
tszPassBuffer
[
64
];
memset
(
tszCodecBuffer
,
'\0'
,
sizeof
(
tszCodecBuffer
));
memset
(
tszPassBuffer
,
'\0'
,
sizeof
(
tszPassBuffer
));
::
GetDlgItemText
(
hConfigWnd
,
IDC_EDIT6
,
tszPassBuffer
,
sizeof
(
tszPassBuffer
));
nMsgLen
=
Json
::
writeString
(
st_JsonBuilder
,
st_JsonRoot
).
length
();
BaseLib_OperatorCharset_AnsiToUTF
(
Json
::
writeString
(
st_JsonBuilder
,
st_JsonRoot
).
c_str
(),
tszCodecBuffer
,
&
nMsgLen
);
if
(
bCrypto
)
{
TCHAR
tszMsgBuffer
[
2048
];
memset
(
tszMsgBuffer
,
'\0'
,
sizeof
(
tszMsgBuffer
));
OPenSsl_XCrypto_Encoder
(
tszCodecBuffer
,
&
nMsgLen
,
(
UCHAR
*
)
tszMsgBuffer
,
tszPassBuffer
);
APIClient_Http_Request
(
_T
(
"POST"
),
tszUrlAddr
,
tszMsgBuffer
,
NULL
,
&
ptszMsgBuffer
,
&
nMsgLen
);
}
else
{
APIClient_Http_Request
(
_T
(
"POST"
),
tszUrlAddr
,
tszCodecBuffer
,
NULL
,
&
ptszMsgBuffer
,
&
nMsgLen
);
}
JSONCPP_STRING
st_JsonError
;
Json
::
CharReaderBuilder
st_ReaderBuilder
;
st_JsonRoot
.
clear
();
std
::
unique_ptr
<
Json
::
CharReader
>
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
);
OnBnClickedButton3
();
}
void
CDialog_Announcement
::
OnBnClickedButton2
()
{
// TODO: 在此添加控件通知处理程序代码
CString
m_StrIPAddr
;
CString
m_StrIPPort
;
CString
m_StrToken
;
CString
m_StrNotice
;
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
);
POSITION
pSt_Sition
=
m_ListAnnouncement
.
GetFirstSelectedItemPosition
();
int
nSelect
=
m_ListAnnouncement
.
GetNextSelectedItem
(
pSt_Sition
);
if
(
nSelect
<
0
)
{
Authorize_Help_LogPrint
(
_T
(
"没有选择公告,无法继续"
));
return
;
}
m_StrNotice
=
m_ListAnnouncement
.
GetItemText
(
nSelect
,
0
);
TCHAR
tszUrlAddr
[
MAX_PATH
];
memset
(
tszUrlAddr
,
'\0'
,
MAX_PATH
);
_stprintf
(
tszUrlAddr
,
_T
(
"http://%s:%s/auth/notice/delete"
),
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
());
st_JsonObject
[
"nID"
]
=
_ttoi64
(
m_StrNotice
.
GetBuffer
());
st_JsonRoot
[
"st_Notice"
]
=
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
<
Json
::
CharReader
>
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
);
OnBnClickedButton3
();
}
void
CDialog_Announcement
::
OnBnClickedButton3
()
{
// TODO: 在此添加控件通知处理程序代码
m_ListAnnouncement
.
DeleteAllItems
();
CString
m_StrIPAddr
;
CString
m_StrIPPort
;
CString
m_StrToken
;
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
);
TCHAR
tszUrlAddr
[
MAX_PATH
];
memset
(
tszUrlAddr
,
'\0'
,
MAX_PATH
);
_stprintf
(
tszUrlAddr
,
_T
(
"http://%s:%s/auth/notice/list"
),
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
());
//是否加密
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
<
Json
::
CharReader
>
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
;
}
}
for
(
unsigned
int
i
=
0
;
i
<
st_JsonRoot
[
"Array"
].
size
();
i
++
)
{
Json
::
Value
st_JsonArray
=
st_JsonRoot
[
"Array"
][
i
];
TCHAR
tszMsgBuffer
[
2048
];
TCHAR
tszIndex
[
64
];
memset
(
tszMsgBuffer
,
'\0'
,
sizeof
(
tszMsgBuffer
));
memset
(
tszIndex
,
'\0'
,
64
);
_i64tot
(
st_JsonArray
[
"nID"
].
asInt64
(),
tszIndex
,
10
);
int
nMsgLen
=
st_JsonArray
[
"tszContext"
].
asString
().
length
();
BaseLib_OperatorCharset_UTFToAnsi
(
st_JsonArray
[
"tszContext"
].
asCString
(),
tszMsgBuffer
,
&
nMsgLen
);
m_ListAnnouncement
.
InsertItem
(
i
,
_T
(
""
));
m_ListAnnouncement
.
SetItemText
(
i
,
0
,
tszIndex
);
m_ListAnnouncement
.
SetItemText
(
i
,
1
,
tszMsgBuffer
);
m_ListAnnouncement
.
SetItemText
(
i
,
2
,
st_JsonArray
[
"tszCreateTime"
].
asCString
());
}
BaseLib_OperatorMemory_FreeCStyle
((
XPPMEM
)
&
ptszMsgBuffer
);
}
XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Announcement.h
0 → 100644
浏览文件 @
a21e85f2
#
pragma
once
#include "afxdialogex.h"
// CDialog_Announcement 对话框
class
CDialog_Announcement
:
public
CDialogEx
{
DECLARE_DYNAMIC
(
CDialog_Announcement
)
public:
CDialog_Announcement
(
CWnd
*
pParent
=
nullptr
);
// 标准构造函数
virtual
~
CDialog_Announcement
();
// 对话框数据
#ifdef AFX_DESIGN_TIME
enum
{
IDD
=
IDD_DIALOG_ANNOUNCEMENT
};
#endif
protected:
virtual
void
DoDataExchange
(
CDataExchange
*
pDX
);
// DDX/DDV 支持
DECLARE_MESSAGE_MAP
()
public:
virtual
BOOL
OnInitDialog
();
CListCtrl
m_ListAnnouncement
;
afx_msg
void
OnBnClickedButton1
();
CEdit
m_EditNoticeStr
;
afx_msg
void
OnBnClickedButton2
();
afx_msg
void
OnBnClickedButton3
();
};
XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Switch.cpp
浏览文件 @
a21e85f2
...
...
@@ -36,6 +36,10 @@ void CDialog_Switch::DoDataExchange(CDataExchange* pDX)
DDX_Control
(
pDX
,
IDC_RADIO10
,
m_RadioPassClose
);
DDX_Control
(
pDX
,
IDC_BUTTON2
,
m_BtnSetConfigure
);
DDX_Control
(
pDX
,
IDC_BUTTON1
,
m_BtnGetConfigure
);
DDX_Control
(
pDX
,
IDC_RADIO11
,
m_RadioCDkeyOPen
);
DDX_Control
(
pDX
,
IDC_RADIO12
,
m_RadioCDKeyClose
);
DDX_Control
(
pDX
,
IDC_RADIO13
,
m_RadioNoticeOPen
);
DDX_Control
(
pDX
,
IDC_RADIO14
,
m_RadioNoticeClose
);
}
...
...
@@ -169,6 +173,28 @@ void CDialog_Switch::OnBnClickedButton1()
m_RadioPassOPen
.
SetCheck
(
BST_UNCHECKED
);
m_RadioPassClose
.
SetCheck
(
BST_CHECKED
);
}
if
(
st_JsonRoot
[
"bSwitchCDKey"
].
asBool
())
{
m_RadioCDkeyOPen
.
SetCheck
(
BST_CHECKED
);
m_RadioCDKeyClose
.
SetCheck
(
BST_UNCHECKED
);
}
else
{
m_RadioCDkeyOPen
.
SetCheck
(
BST_UNCHECKED
);
m_RadioCDKeyClose
.
SetCheck
(
BST_CHECKED
);
}
if
(
st_JsonRoot
[
"bSwitchNotice"
].
asBool
())
{
m_RadioNoticeOPen
.
SetCheck
(
BST_CHECKED
);
m_RadioNoticeClose
.
SetCheck
(
BST_UNCHECKED
);
}
else
{
m_RadioNoticeOPen
.
SetCheck
(
BST_UNCHECKED
);
m_RadioNoticeClose
.
SetCheck
(
BST_CHECKED
);
}
m_BtnSetConfigure
.
EnableWindow
(
TRUE
);
}
else
...
...
@@ -241,6 +267,24 @@ void CDialog_Switch::OnBnClickedButton2()
st_JsonObject
[
"bSwitchPass"
]
=
false
;
}
if
(
BST_CHECKED
==
m_RadioCDkeyOPen
.
GetCheck
())
{
st_JsonObject
[
"bSwitchCDKey"
]
=
true
;
}
else
{
st_JsonObject
[
"bSwitchCDKey"
]
=
false
;
}
if
(
BST_CHECKED
==
m_RadioNoticeOPen
.
GetCheck
())
{
st_JsonObject
[
"bSwitchNotice"
]
=
true
;
}
else
{
st_JsonObject
[
"bSwitchNotice"
]
=
false
;
}
st_JsonRoot
[
"st_SwitchInfo"
]
=
st_JsonObject
;
st_JsonRoot
[
"xhToken"
]
=
_ttoi64
(
m_StrToken
.
GetBuffer
());
...
...
XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Switch.h
浏览文件 @
a21e85f2
...
...
@@ -37,4 +37,8 @@ public:
virtual
BOOL
OnInitDialog
();
CButton
m_BtnSetConfigure
;
CButton
m_BtnGetConfigure
;
CButton
m_RadioCDkeyOPen
;
CButton
m_RadioCDKeyClose
;
CButton
m_RadioNoticeOPen
;
CButton
m_RadioNoticeClose
;
};
XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngineAuthorizeApp.aps
浏览文件 @
a21e85f2
无法预览此类型文件
XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngineAuthorizeApp.rc
浏览文件 @
a21e85f2
B
// Microsoft Visual C++ generated resource script.
...
...
XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngine_AuthorizeApp.vcxproj
浏览文件 @
a21e85f2
...
...
@@ -191,6 +191,7 @@
</ResourceCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude
Include=
"Authorize_Dialog\Dialog_Announcement.h"
/>
<ClInclude
Include=
"Authorize_Dialog\Dialog_Banned.h"
/>
<ClInclude
Include=
"Authorize_Dialog\Dialog_Config.h"
/>
<ClInclude
Include=
"Authorize_Dialog\Dialog_Modify.h"
/>
...
...
@@ -206,6 +207,7 @@
<ClInclude
Include=
"XEngine_AuthorizeAppDlg.h"
/>
</ItemGroup>
<ItemGroup>
<ClCompile
Include=
"Authorize_Dialog\Dialog_Announcement.cpp"
/>
<ClCompile
Include=
"Authorize_Dialog\Dialog_Banned.cpp"
/>
<ClCompile
Include=
"Authorize_Dialog\Dialog_Config.cpp"
/>
<ClCompile
Include=
"Authorize_Dialog\Dialog_Modify.cpp"
/>
...
...
XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngine_AuthorizeApp.vcxproj.filters
浏览文件 @
a21e85f2
...
...
@@ -66,6 +66,9 @@
<ClInclude
Include=
"Authorize_Dialog\Dialog_Banned.h"
>
<Filter>
头文件\Authorize_Dialog
</Filter>
</ClInclude>
<ClInclude
Include=
"Authorize_Dialog\Dialog_Announcement.h"
>
<Filter>
头文件\Authorize_Dialog
</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile
Include=
"XEngine_AuthorizeApp.cpp"
>
...
...
@@ -98,6 +101,9 @@
<ClCompile
Include=
"Authorize_Dialog\Dialog_Banned.cpp"
>
<Filter>
源文件\Authorize_Dialog
</Filter>
</ClCompile>
<ClCompile
Include=
"Authorize_Dialog\Dialog_Announcement.cpp"
>
<Filter>
源文件\Authorize_Dialog
</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ResourceCompile
Include=
"XEngineAuthorizeApp.rc"
>
...
...
XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngine_AuthorizeAppDlg.cpp
浏览文件 @
a21e85f2
...
...
@@ -70,12 +70,14 @@ BOOL CXEngineAuthorizeAppDlg::OnInitDialog()
m_TabWindows
.
InsertItem
(
0
,
_T
(
"服务配置"
));
m_TabWindows
.
InsertItem
(
1
,
_T
(
"功能开关"
));
m_TabWindows
.
InsertItem
(
2
,
_T
(
"用户管理"
));
m_TabWindows
.
InsertItem
(
3
,
_T
(
"序列号管理"
));
m_TabWindows
.
InsertItem
(
4
,
_T
(
"黑名单配置"
));
m_TabWindows
.
InsertItem
(
3
,
_T
(
"公告管理"
));
m_TabWindows
.
InsertItem
(
4
,
_T
(
"序列号管理"
));
m_TabWindows
.
InsertItem
(
5
,
_T
(
"黑名单配置"
));
m_DlgConfig
.
Create
(
IDD_DIALOG_CONFIG
,
&
m_TabWindows
);
m_DlgSwitch
.
Create
(
IDD_DIALOG_SWITCH
,
&
m_TabWindows
);
m_DlgUser
.
Create
(
IDD_DIALOG_USER
,
&
m_TabWindows
);
m_DlgAnnouncement
.
Create
(
IDD_DIALOG_ANNOUNCEMENT
,
&
m_TabWindows
);
m_DlgSerial
.
Create
(
IDD_DIALOG_SERIAL
,
&
m_TabWindows
);
m_DlgBanned
.
Create
(
IDD_DIALOG_BANNED
,
&
m_TabWindows
);
//调整子对话框在父窗口中的位置
...
...
@@ -89,12 +91,14 @@ BOOL CXEngineAuthorizeAppDlg::OnInitDialog()
m_DlgConfig
.
MoveWindow
(
&
st_Rect
);
m_DlgSwitch
.
MoveWindow
(
&
st_Rect
);
m_DlgUser
.
MoveWindow
(
&
st_Rect
);
m_DlgAnnouncement
.
MoveWindow
(
&
st_Rect
);
m_DlgSerial
.
MoveWindow
(
&
st_Rect
);
m_DlgBanned
.
MoveWindow
(
&
st_Rect
);
//分别设置隐藏和显示
m_DlgConfig
.
ShowWindow
(
TRUE
);
m_DlgSwitch
.
ShowWindow
(
FALSE
);
m_DlgUser
.
ShowWindow
(
FALSE
);
m_DlgAnnouncement
.
ShowWindow
(
FALSE
);
m_DlgSerial
.
ShowWindow
(
FALSE
);
m_DlgBanned
.
ShowWindow
(
FALSE
);
m_TabWindows
.
SetCurSel
(
0
);
...
...
@@ -153,6 +157,7 @@ void CXEngineAuthorizeAppDlg::OnTcnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult
m_DlgConfig
.
ShowWindow
(
TRUE
);
m_DlgSwitch
.
ShowWindow
(
FALSE
);
m_DlgUser
.
ShowWindow
(
FALSE
);
m_DlgAnnouncement
.
ShowWindow
(
FALSE
);
m_DlgSerial
.
ShowWindow
(
FALSE
);
m_DlgBanned
.
ShowWindow
(
FALSE
);
break
;
...
...
@@ -160,6 +165,7 @@ void CXEngineAuthorizeAppDlg::OnTcnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult
m_DlgConfig
.
ShowWindow
(
FALSE
);
m_DlgSwitch
.
ShowWindow
(
TRUE
);
m_DlgUser
.
ShowWindow
(
FALSE
);
m_DlgAnnouncement
.
ShowWindow
(
FALSE
);
m_DlgSerial
.
ShowWindow
(
FALSE
);
m_DlgBanned
.
ShowWindow
(
FALSE
);
break
;
...
...
@@ -167,6 +173,7 @@ void CXEngineAuthorizeAppDlg::OnTcnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult
m_DlgConfig
.
ShowWindow
(
FALSE
);
m_DlgSwitch
.
ShowWindow
(
FALSE
);
m_DlgUser
.
ShowWindow
(
TRUE
);
m_DlgAnnouncement
.
ShowWindow
(
FALSE
);
m_DlgSerial
.
ShowWindow
(
FALSE
);
m_DlgBanned
.
ShowWindow
(
FALSE
);
break
;
...
...
@@ -174,13 +181,23 @@ void CXEngineAuthorizeAppDlg::OnTcnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult
m_DlgConfig
.
ShowWindow
(
FALSE
);
m_DlgSwitch
.
ShowWindow
(
FALSE
);
m_DlgUser
.
ShowWindow
(
FALSE
);
m_DlgSerial
.
ShowWindow
(
TRUE
);
m_DlgAnnouncement
.
ShowWindow
(
TRUE
);
m_DlgSerial
.
ShowWindow
(
FALSE
);
m_DlgBanned
.
ShowWindow
(
FALSE
);
break
;
case
4
:
m_DlgConfig
.
ShowWindow
(
FALSE
);
m_DlgSwitch
.
ShowWindow
(
FALSE
);
m_DlgUser
.
ShowWindow
(
FALSE
);
m_DlgAnnouncement
.
ShowWindow
(
FALSE
);
m_DlgSerial
.
ShowWindow
(
TRUE
);
m_DlgBanned
.
ShowWindow
(
FALSE
);
break
;
case
5
:
m_DlgConfig
.
ShowWindow
(
FALSE
);
m_DlgSwitch
.
ShowWindow
(
FALSE
);
m_DlgUser
.
ShowWindow
(
FALSE
);
m_DlgAnnouncement
.
ShowWindow
(
FALSE
);
m_DlgSerial
.
ShowWindow
(
FALSE
);
m_DlgBanned
.
ShowWindow
(
TRUE
);
break
;
...
...
XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/XEngine_AuthorizeAppDlg.h
浏览文件 @
a21e85f2
...
...
@@ -36,6 +36,7 @@ public:
CDialog_User
m_DlgUser
;
CDialog_Serial
m_DlgSerial
;
CDialog_Banned
m_DlgBanned
;
CDialog_Announcement
m_DlgAnnouncement
;
public:
CTabCtrl
m_TabWindows
;
afx_msg
void
OnTcnSelchangeTab1
(
NMHDR
*
pNMHDR
,
LRESULT
*
pResult
);
...
...
XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/pch.h
浏览文件 @
a21e85f2
...
...
@@ -35,6 +35,7 @@ using namespace std;
#include "Authorize_Dialog/Dialog_Modify.h"
#include "Authorize_Dialog/Dialog_Switch.h"
#include "Authorize_Dialog/Dialog_Banned.h"
#include "Authorize_Dialog/Dialog_Announcement.h"
#include "Authorize_Help/Authorize_Help.h"
extern
HWND
hMainWnd
;
...
...
XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/resource.h
浏览文件 @
a21e85f2
...
...
@@ -10,6 +10,7 @@
#define IDD_DIALOG_MODIFY 136
#define IDD_DIALOG_SWITCH 138
#define IDD_DIALOG_BANNED 140
#define IDD_DIALOG_ANNOUNCEMENT 142
#define IDC_TAB1 1000
#define IDC_EDIT1 1001
#define IDC_EDIT2 1002
...
...
@@ -47,14 +48,18 @@
#define IDC_RADIO8 1022
#define IDC_RADIO9 1023
#define IDC_RADIO10 1024
#define IDC_RADIO11 1025
#define IDC_RADIO12 1026
#define IDC_RADIO13 1027
#define IDC_RADIO14 1028
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 14
2
#define _APS_NEXT_RESOURCE_VALUE 14
4
#define _APS_NEXT_COMMAND_VALUE 32771
#define _APS_NEXT_CONTROL_VALUE 102
0
#define _APS_NEXT_CONTROL_VALUE 102
2
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Announcement.cpp
0 → 100644
浏览文件 @
a21e85f2
#
include
"../Authorize_Hdr.h"
BOOL
XEngine_AuthorizeHTTP_Announcement
(
LPCTSTR
lpszClientAddr
,
LPCTSTR
lpszAPIName
,
LPCTSTR
lpszMsgBuffer
,
int
nMsgLen
)
{
int
nSDLen
=
4096
;
TCHAR
tszSDBuffer
[
4096
];
LPCTSTR
lpszAPIInsert
=
_T
(
"insert"
);
LPCTSTR
lpszAPIDelete
=
_T
(
"delete"
);
LPCTSTR
lpszAPIList
=
_T
(
"list"
);
memset
(
tszSDBuffer
,
'\0'
,
sizeof
(
tszSDBuffer
));
if
(
!
st_FunSwitch
.
bSwitchNotice
)
{
Protocol_Packet_HttpComm
(
tszSDBuffer
,
&
nSDLen
,
503
,
"the function is closed"
);
XEngine_Client_TaskSend
(
lpszClientAddr
,
tszSDBuffer
,
nSDLen
,
XENGINE_AUTH_APP_NETTYPE_HTTP
);
XLOG_PRINT
(
xhLog
,
XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR
,
_T
(
"HTTP客户端:%s,公告系统协议处理失败,功能已经被服务器关闭!"
),
lpszClientAddr
);
return
FALSE
;
}
if
(
0
==
_tcsnicmp
(
lpszAPIInsert
,
lpszAPIName
,
_tcslen
(
lpszAPIInsert
)))
{
AUTHREG_ANNOUNCEMENT
st_Announcement
;
memset
(
&
st_Announcement
,
'\0'
,
sizeof
(
AUTHREG_ANNOUNCEMENT
));
Protocol_Parse_HttpParseAnnouncement
(
lpszMsgBuffer
,
nMsgLen
,
&
st_Announcement
);
Database_SQLite_AnnouncementInsert
(
&
st_Announcement
);
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"
),
lpszClientAddr
,
st_Announcement
.
tszContext
);
}
else
if
(
0
==
_tcsnicmp
(
lpszAPIDelete
,
lpszAPIName
,
_tcslen
(
lpszAPIDelete
)))
{
AUTHREG_ANNOUNCEMENT
st_Announcement
;
memset
(
&
st_Announcement
,
'\0'
,
sizeof
(
AUTHREG_ANNOUNCEMENT
));
Protocol_Parse_HttpParseAnnouncement
(
lpszMsgBuffer
,
nMsgLen
,
&
st_Announcement
);
Database_SQLite_AnnouncementDelete
(
&
st_Announcement
);
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,删除公告成功.删除公告ID:%lld"
),
lpszClientAddr
,
st_Announcement
.
nID
);
}
else
if
(
0
==
_tcsnicmp
(
lpszAPIList
,
lpszAPIName
,
_tcslen
(
lpszAPIList
)))
{
int
nListCount
=
0
;
AUTHREG_ANNOUNCEMENT
**
ppSt_Announcement
;
Database_SQLite_AnnouncementList
(
&
ppSt_Announcement
,
&
nListCount
);
Protocol_Packet_HttpAnnouncement
(
tszSDBuffer
,
&
nSDLen
,
&
ppSt_Announcement
,
nListCount
);
XEngine_Client_TaskSend
(
lpszClientAddr
,
tszSDBuffer
,
nSDLen
,
XENGINE_AUTH_APP_NETTYPE_HTTP
);
BaseLib_OperatorMemory_Free
((
XPPPMEM
)
&
ppSt_Announcement
,
nListCount
);
XLOG_PRINT
(
xhLog
,
XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO
,
_T
(
"HTTP客户端:%s,查询公告列表成功,公告个数:%d"
),
lpszClientAddr
,
nListCount
);
}
return
TRUE
;
}
\ No newline at end of file
XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Announcement.h
0 → 100644
浏览文件 @
a21e85f2
#
pragma
once
BOOL
XEngine_AuthorizeHTTP_Announcement
(
LPCTSTR
lpszClientAddr
,
LPCTSTR
lpszAPIName
,
LPCTSTR
lpszMsgBuffer
,
int
nMsgLen
);
\ No newline at end of file
XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_CDKey.cpp
浏览文件 @
a21e85f2
#
include
"../Authorize_Hdr.h"
BOOL
XEngine_AuthorizeHTTP_CDKey
(
LPCTSTR
lpszClientAddr
,
LPCTSTR
lpszAPIName
,
LPCTSTR
lpszMsgBuffer
,
int
nMsgLen
,
LPCTSTR
lpszPass
)
BOOL
XEngine_AuthorizeHTTP_CDKey
(
LPCTSTR
lpszClientAddr
,
LPCTSTR
lpszAPIName
,
LPCTSTR
lpszMsgBuffer
,
int
nMsgLen
)
{
int
nSDLen
=
4096
;
int
nRVLen
=
4096
;
...
...
@@ -8,10 +8,18 @@ BOOL XEngine_AuthorizeHTTP_CDKey(LPCTSTR lpszClientAddr, LPCTSTR lpszAPIName, LP
TCHAR
tszRVBuffer
[
4096
];
LPCTSTR
lpszAPICreate
=
_T
(
"create"
);
LPCTSTR
lpszAPIAuth
=
_T
(
"auth"
);
LPCTSTR
lpszAPIVer
=
_T
(
"ver"
);
memset
(
tszSDBuffer
,
'\0'
,
sizeof
(
tszSDBuffer
));
memset
(
tszRVBuffer
,
'\0'
,
sizeof
(
tszRVBuffer
));
if
(
!
st_FunSwitch
.
bSwitchCDKey
)
{
Protocol_Packet_HttpComm
(
tszSDBuffer
,
&
nSDLen
,
503
,
"the function is closed"
);
XEngine_Client_TaskSend
(
lpszClientAddr
,
tszSDBuffer
,
nSDLen
,
XENGINE_AUTH_APP_NETTYPE_HTTP
);
XLOG_PRINT
(
xhLog
,
XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR
,
_T
(
"HTTP客户端:%s,CDKey验证授权失败,功能已经被服务器关闭!"
),
lpszClientAddr
);
return
FALSE
;
}
if
(
0
==
_tcsnicmp
(
lpszAPICreate
,
lpszAPIName
,
_tcslen
(
lpszAPICreate
)))
{
XENGINE_AUTHORIZE_LOCAL
st_Authorize
;
...
...
@@ -48,17 +56,25 @@ BOOL XEngine_AuthorizeHTTP_CDKey(LPCTSTR lpszClientAddr, LPCTSTR lpszAPIName, LP
Authorize_Local_BuildKeyTime
(
&
st_Authorize
,
_ttoi64
(
st_Authorize
.
st_AuthRegInfo
.
tszLeftTime
));
}
Authorize_Local_WriteMemory
(
tszRVBuffer
,
&
nRVLen
,
&
st_Authorize
);
//加密
if
(
NULL
==
lpszPass
)
{
XEngine_Client_TaskSend
(
lpszClientAddr
,
tszRVBuffer
,
nRVLen
,
XENGINE_AUTH_APP_NETTYPE_HTTP
);
}
else
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,授权期限:%s"
),
lpszClientAddr
,
st_Authorize
.
st_AuthAppInfo
.
tszAppName
,
st_Authorize
.
st_AuthAppInfo
.
tszAppVer
,
st_Authorize
.
st_AuthRegInfo
.
tszLeftTime
);
}
else
if
(
0
==
_tcsnicmp
(
lpszAPIVer
,
lpszAPIName
,
_tcslen
(
lpszAPIVer
)))
{
XENGINE_AUTHORIZE_LOCAL
st_Authorize
;
memset
(
&
st_Authorize
,
'\0'
,
sizeof
(
XENGINE_AUTHORIZE_LOCAL
));
Authorize_Local_ReadMemory
(
lpszMsgBuffer
,
nMsgLen
,
&
st_Authorize
);
if
(
!
Authorize_Local_GetLeftTimer
(
&
st_Authorize
))
{
OPenSsl_XCrypto_Encoder
(
tszRVBuffer
,
&
nRVLen
,
(
UCHAR
*
)
tszSDBuffer
,
lpszPass
);
XEngine_Client_TaskSend
(
lpszClientAddr
,
tszSDBuffer
,
nRVLen
,
XENGINE_AUTH_APP_NETTYPE_HTTP
);
Protocol_Packet_HttpComm
(
tszSDBuffer
,
&
nSDLen
,
401
,
"Unauthorized,cdkey is not authorized"
);
XEngine_Client_TaskSend
(
lpszClientAddr
,
tszSDBuffer
,
nSDLen
,
XENGINE_AUTH_APP_NETTYPE_HTTP
);
XLOG_PRINT
(
xhLog
,
XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN
,
_T
(
"HTTP客户端:%s,请求验证CDKEY失败,cdkey未授权或者已超时,错误:%lX"
),
lpszClientAddr
,
Authorize_GetLastError
());
return
FALSE
;
}
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
);
Authorize_Local_WriteMemory
(
tszRVBuffer
,
&
nRVLen
,
&
st_Authorize
);
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,授权期限:%s"
),
lpszClientAddr
,
st_Authorize
.
st_AuthAppInfo
.
tszAppName
,
st_Authorize
.
st_AuthAppInfo
.
tszAppVer
,
st_Authorize
.
st_AuthRegInfo
.
tszLeftTime
);
}
else
{
...
...
XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_CDKey.h
浏览文件 @
a21e85f2
#
pragma
once
BOOL
XEngine_AuthorizeHTTP_CDKey
(
LPCTSTR
lpszClientAddr
,
LPCTSTR
lpszAPIName
,
LPCTSTR
lpszMsgBuffer
,
int
nMsgLen
,
LPCTSTR
lpszPass
=
NULL
);
\ No newline at end of file
BOOL
XEngine_AuthorizeHTTP_CDKey
(
LPCTSTR
lpszClientAddr
,
LPCTSTR
lpszAPIName
,
LPCTSTR
lpszMsgBuffer
,
int
nMsgLen
);
\ No newline at end of file
XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Switch.cpp
浏览文件 @
a21e85f2
...
...
@@ -13,14 +13,14 @@ BOOL XEngine_AuthorizeHTTP_Switch(LPCTSTR lpszClientAddr, LPCTSTR lpszAPIName, L
{
Protocol_Packet_HttpSwitch
(
tszSDBuffer
,
&
nSDLen
,
&
st_FunSwitch
);
XEngine_Client_TaskSend
(
lpszClientAddr
,
tszSDBuffer
,
nSDLen
,
XENGINE_AUTH_APP_NETTYPE_HTTP
);
XLOG_PRINT
(
xhLog
,
XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO
,
_T
(
"HTTP客户端:%s,请求获取功能开关成功,删除功能:%d,登录功能:%d,找回密码:%d,充值功能:%d,注册功能:%d
"
),
lpszClientAddr
,
st_FunSwitch
.
bSwitchDelete
,
st_FunSwitch
.
bSwitchLogin
,
st_FunSwitch
.
bSwitchPass
,
st_FunSwitch
.
bSwitchPay
,
st_FunSwitch
.
bSwitchRegister
);
XLOG_PRINT
(
xhLog
,
XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO
,
_T
(
"HTTP客户端:%s,请求获取功能开关成功,删除功能:%d,登录功能:%d,找回密码:%d,充值功能:%d,注册功能:%d
,CDKey功能:%d,公告系统:%d"
),
lpszClientAddr
,
st_FunSwitch
.
bSwitchDelete
,
st_FunSwitch
.
bSwitchLogin
,
st_FunSwitch
.
bSwitchPass
,
st_FunSwitch
.
bSwitchPay
,
st_FunSwitch
.
bSwitchRegister
,
st_FunSwitch
.
bSwitchCDKey
,
st_FunSwitch
.
bSwitchNotice
);
}
else
if
(
0
==
_tcsnicmp
(
lpszAPISet
,
lpszAPIName
,
_tcslen
(
lpszAPISet
)))
{
Protocol_Parse_HttpParseSwitch
(
lpszMsgBuffer
,
nMsgLen
,
&
st_FunSwitch
);
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,请求设置功能开关成功,删除功能:%d,登录功能:%d,找回密码:%d,充值功能:%d,注册功能:%d
"
),
lpszClientAddr
,
st_FunSwitch
.
bSwitchDelete
,
st_FunSwitch
.
bSwitchLogin
,
st_FunSwitch
.
bSwitchPass
,
st_FunSwitch
.
bSwitchPay
,
st_FunSwitch
.
bSwitchRegister
);
XLOG_PRINT
(
xhLog
,
XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO
,
_T
(
"HTTP客户端:%s,请求设置功能开关成功,删除功能:%d,登录功能:%d,找回密码:%d,充值功能:%d,注册功能:%d
,CDKey功能:%d,公告系统:%d"
),
lpszClientAddr
,
st_FunSwitch
.
bSwitchDelete
,
st_FunSwitch
.
bSwitchLogin
,
st_FunSwitch
.
bSwitchPass
,
st_FunSwitch
.
bSwitchPay
,
st_FunSwitch
.
bSwitchRegister
,
st_FunSwitch
.
bSwitchCDKey
,
st_FunSwitch
.
bSwitchNotice
);
}
return
TRUE
;
...
...
XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Hdr.h
浏览文件 @
a21e85f2
...
...
@@ -83,6 +83,7 @@ extern XENGINE_FUNCTIONSWITCH st_FunSwitch;
#include "AuthorizeHTTP_Post/AuthorizeHTTP_Switch.h"
#include "AuthorizeHTTP_Post/AuthorizeHTTP_Banned.h"
#include "AuthorizeHTTP_Post/AuthorizeHTTP_CDKey.h"
#include "AuthorizeHTTP_Post/AuthorizeHTTP_Announcement.h"
#include "AuthorizeHTTP_Get/AuthorizeHTTP_Token.h"
#ifdef _WINDOWS
...
...
XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_HttpTask.cpp
浏览文件 @
a21e85f2
...
...
@@ -84,6 +84,7 @@ BOOL XEngine_Client_HttpTask(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int
LPCTSTR
lpszAPIVerSwitch
=
_T
(
"switch"
);
LPCTSTR
lpszAPIVerBanned
=
_T
(
"banned"
);
LPCTSTR
lpszAPIVerCDKey
=
_T
(
"cdkey"
);
LPCTSTR
lpszAPIVerNotice
=
_T
(
"notice"
);
memset
(
tszAPIType
,
'\0'
,
sizeof
(
tszAPIType
));
memset
(
tszAPIVer
,
'\0'
,
sizeof
(
tszAPIVer
));
...
...
@@ -196,25 +197,29 @@ BOOL XEngine_Client_HttpTask(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int
}
else
if
(
0
==
_tcsnicmp
(
lpszAPIVerCDKey
,
tszAPIVer
,
_tcslen
(
lpszAPIVerCDKey
)))
{
int
nListCount
=
0
;
TCHAR
**
pptszList
;
RfcComponents_HttpHelp_GetParament
(
pSt_HTTPParament
->
tszHttpUri
,
&
pptszList
,
&
nListCount
);
if
(
nListCount
>
0
)
XEngine_AuthorizeHTTP_CDKey
(
lpszClientAddr
,
tszAPIName
,
lpszMsgBuffer
,
nMsgLen
);
}
else
if
(
0
==
_tcsnicmp
(
lpszAPIVerNotice
,
tszAPIVer
,
_tcslen
(
lpszAPIVerNotice
)))
{
AUTHREG_USERTABLE
st_UserTable
;
memset
(
&
st_UserTable
,
'\0'
,
sizeof
(
AUTHREG_USERTABLE
));
//验证权限
Protocol_Parse_HttpParseToken
(
lpszMsgBuffer
,
nMsgLen
,
&
xhToken
);
if
(
!
Session_Token_Get
(
xhToken
,
&
st_UserTable
))
{
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
);
Protocol_Packet_HttpComm
(
tszSDBuffer
,
&
nSDLen
,
401
,
"Unauthorized"
);
XEngine_Client_TaskSend
(
lpszClientAddr
,
tszSDBuffer
,
nSDLen
,
XENGINE_AUTH_APP_NETTYPE_HTTP
);
XLOG_PRINT
(
xhLog
,
XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR
,
_T
(
"HTTP客户端:%s,请求的API:%s 失败,因为没有经过验证"
),
lpszClientAddr
,
pSt_HTTPParament
->
tszHttpUri
);
return
FALSE
;
}
else
if
(
0
!=
st_UserTable
.
st_UserInfo
.
nUserLevel
)
{
XEngine_AuthorizeHTTP_CDKey
(
lpszClientAddr
,
tszAPIName
,
lpszMsgBuffer
,
nMsgLen
);
Protocol_Packet_HttpComm
(
tszSDBuffer
,
&
nSDLen
,
401
,
"permission is failed"
);
XEngine_Client_TaskSend
(
lpszClientAddr
,
tszSDBuffer
,
nSDLen
,
XENGINE_AUTH_APP_NETTYPE_HTTP
);
XLOG_PRINT
(
xhLog
,
XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR
,
_T
(
"HTTP客户端:%s,请求的API:%s 失败,因为TOKEN权限不足"
),
lpszClientAddr
,
pSt_HTTPParament
->
tszHttpUri
);
return
FALSE
;
}
BaseLib_OperatorMemory_Free
((
XPPPMEM
)
&
pptszList
,
nListCount
);
XEngine_AuthorizeHTTP_Announcement
(
lpszClientAddr
,
tszAPIName
,
lpszMsgBuffer
,
nMsgLen
);
}
}
else
if
(
0
==
_tcsnicmp
(
lpszMethodGet
,
pSt_HTTPParament
->
tszHttpMethod
,
_tcslen
(
lpszMethodGet
)))
...
...
@@ -223,6 +228,7 @@ BOOL XEngine_Client_HttpTask(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int
TCHAR
**
pptszList
;
TCHAR
tszUrlName
[
128
];
LPCTSTR
lpszFuncName
=
_T
(
"api"
);
LPCTSTR
lpszAPIVerNotice
=
_T
(
"notice"
);
memset
(
tszUrlName
,
'\0'
,
sizeof
(
tszUrlName
));
RfcComponents_HttpHelp_GetParament
(
pSt_HTTPParament
->
tszHttpUri
,
&
pptszList
,
&
nListCount
,
tszUrlName
);
...
...
@@ -234,7 +240,21 @@ BOOL XEngine_Client_HttpTask(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int
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
);
TCHAR
tszURLKey
[
128
];
TCHAR
tszURLValue
[
128
];
memset
(
tszURLKey
,
'\0'
,
sizeof
(
tszURLKey
));
memset
(
tszURLValue
,
'\0'
,
sizeof
(
tszURLValue
));
BaseLib_OperatorString_GetKeyValue
(
pptszList
[
0
],
"="
,
tszURLKey
,
tszURLValue
);
if
(
0
==
_tcsnicmp
(
lpszAPIVerNotice
,
tszURLValue
,
_tcslen
(
lpszAPIVerNotice
)))
{
XEngine_AuthorizeHTTP_Announcement
(
lpszClientAddr
,
"list"
,
lpszMsgBuffer
,
nMsgLen
);
}
else
{
XEngine_AuthorizeHTTP_Token
(
lpszClientAddr
,
pptszList
,
nListCount
);
}
BaseLib_OperatorMemory_Free
((
XPPPMEM
)
&
pptszList
,
nListCount
);
}
else
...
...
XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Net.cpp
浏览文件 @
a21e85f2
#
include
"Authorize_Hdr.h"
//////////////////////////////////////////////////////////////////////////
BOOL
__stdcall
XEngine_Client_TCPAccept
(
LPCTSTR
lpszClientAddr
,
SOCKET
hSocket
,
LPVOID
lParam
)
BOOL
CALLBACK
XEngine_Client_TCPAccept
(
LPCTSTR
lpszClientAddr
,
SOCKET
hSocket
,
LPVOID
lParam
)
{
HelpComponents_Datas_CreateEx
(
xhTCPPacket
,
lpszClientAddr
,
0
);
XLOG_PRINT
(
xhLog
,
XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO
,
_T
(
"TCP客户端:%s,进入服务器"
),
lpszClientAddr
);
return
TRUE
;
}
void
__stdcall
XEngine_Client_TCPRecv
(
LPCTSTR
lpszClientAddr
,
SOCKET
hSocket
,
LPCTSTR
lpszRecvMsg
,
int
nMsgLen
,
LPVOID
lParam
)
void
CALLBACK
XEngine_Client_TCPRecv
(
LPCTSTR
lpszClientAddr
,
SOCKET
hSocket
,
LPCTSTR
lpszRecvMsg
,
int
nMsgLen
,
LPVOID
lParam
)
{
if
(
!
HelpComponents_Datas_PostEx
(
xhTCPPacket
,
lpszClientAddr
,
lpszRecvMsg
,
nMsgLen
))
{
XLOG_PRINT
(
xhLog
,
XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR
,
_T
(
"客户端:%s,投递数据包失败,大小:%d,错误:%lX"
),
lpszClientAddr
,
nMsgLen
,
Packets_GetLastError
());
}
}
void
__stdcall
XEngine_Client_TCPClose
(
LPCTSTR
lpszClientAddr
,
SOCKET
hSocket
,
LPVOID
lParam
)
void
CALLBACK
XEngine_Client_TCPClose
(
LPCTSTR
lpszClientAddr
,
SOCKET
hSocket
,
LPVOID
lParam
)
{
XEngine_CloseClient
(
lpszClientAddr
);
}
//////////////////////////////////////////////////////////////////////////
BOOL
__stdcall
XEngine_Client_WSAccept
(
LPCTSTR
lpszClientAddr
,
SOCKET
hSocket
,
LPVOID
lParam
)
BOOL
CALLBACK
XEngine_Client_WSAccept
(
LPCTSTR
lpszClientAddr
,
SOCKET
hSocket
,
LPVOID
lParam
)
{
RfcComponents_WSPacket_CreateEx
(
xhWSPacket
,
lpszClientAddr
,
0
);
XLOG_PRINT
(
xhLog
,
XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO
,
_T
(
"WS客户端:%s,进入服务器"
),
lpszClientAddr
);
return
TRUE
;
}
void
__stdcall
XEngine_Client_WSRecv
(
LPCTSTR
lpszClientAddr
,
SOCKET
hSocket
,
LPCTSTR
lpszRecvMsg
,
int
nMsgLen
,
LPVOID
lParam
)
void
CALLBACK
XEngine_Client_WSRecv
(
LPCTSTR
lpszClientAddr
,
SOCKET
hSocket
,
LPCTSTR
lpszRecvMsg
,
int
nMsgLen
,
LPVOID
lParam
)
{
BOOL
bLogin
=
FALSE
;
RfcComponents_WSPacket_GetLoginEx
(
xhWSPacket
,
lpszClientAddr
,
&
bLogin
);
...
...
@@ -47,25 +47,25 @@ void __stdcall XEngine_Client_WSRecv(LPCTSTR lpszClientAddr, SOCKET hSocket, LPC
XLOG_PRINT
(
xhLog
,
XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO
,
_T
(
"WS客户端:%s,握手成功"
),
lpszClientAddr
);
}
}
void
__stdcall
XEngine_Client_WSClose
(
LPCTSTR
lpszClientAddr
,
SOCKET
hSocket
,
LPVOID
lParam
)
void
CALLBACK
XEngine_Client_WSClose
(
LPCTSTR
lpszClientAddr
,
SOCKET
hSocket
,
LPVOID
lParam
)
{
XEngine_CloseClient
(
lpszClientAddr
);
}
//////////////////////////////////////////////////////////////////////////
BOOL
__stdcall
XEngine_Client_HttpAccept
(
LPCTSTR
lpszClientAddr
,
SOCKET
hSocket
,
LPVOID
lParam
)
BOOL
CALLBACK
XEngine_Client_HttpAccept
(
LPCTSTR
lpszClientAddr
,
SOCKET
hSocket
,
LPVOID
lParam
)
{
RfcComponents_HttpServer_CreateClientEx
(
xhHttpPacket
,
lpszClientAddr
,
0
);
XLOG_PRINT
(
xhLog
,
XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO
,
_T
(
"HTTP客户端:%s,进入服务器"
),
lpszClientAddr
);
return
TRUE
;
}
void
__stdcall
XEngine_Client_HttpRecv
(
LPCTSTR
lpszClientAddr
,
SOCKET
hSocket
,
LPCTSTR
lpszRecvMsg
,
int
nMsgLen
,
LPVOID
lParam
)
void
CALLBACK
XEngine_Client_HttpRecv
(
LPCTSTR
lpszClientAddr
,
SOCKET
hSocket
,
LPCTSTR
lpszRecvMsg
,
int
nMsgLen
,
LPVOID
lParam
)
{
if
(
!
RfcComponents_HttpServer_InserQueueEx
(
xhHttpPacket
,
lpszClientAddr
,
lpszRecvMsg
,
nMsgLen
))
{
XLOG_PRINT
(
xhLog
,
XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR
,
_T
(
"HTTP客户端:%s,投递数据包失败,大小:%d,错误:%lX"
),
lpszClientAddr
,
nMsgLen
,
Packets_GetLastError
());
}
}
void
__stdcall
XEngine_Client_HttpClose
(
LPCTSTR
lpszClientAddr
,
SOCKET
hSocket
,
LPVOID
lParam
)
void
CALLBACK
XEngine_Client_HttpClose
(
LPCTSTR
lpszClientAddr
,
SOCKET
hSocket
,
LPVOID
lParam
)
{
XEngine_CloseClient
(
lpszClientAddr
);
}
...
...
XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Net.h
浏览文件 @
a21e85f2
#
pragma
once
BOOL
__stdcall
XEngine_Client_TCPAccept
(
LPCTSTR
lpszClientAddr
,
SOCKET
hSocket
,
LPVOID
lParam
);
void
__stdcall
XEngine_Client_TCPRecv
(
LPCTSTR
lpszClientAddr
,
SOCKET
hSocket
,
LPCTSTR
lpszRecvMsg
,
int
nMsgLen
,
LPVOID
lParam
);
void
__stdcall
XEngine_Client_TCPClose
(
LPCTSTR
lpszClientAddr
,
SOCKET
hSocket
,
LPVOID
lParam
);
BOOL
CALLBACK
XEngine_Client_TCPAccept
(
LPCTSTR
lpszClientAddr
,
SOCKET
hSocket
,
LPVOID
lParam
);
void
CALLBACK
XEngine_Client_TCPRecv
(
LPCTSTR
lpszClientAddr
,
SOCKET
hSocket
,
LPCTSTR
lpszRecvMsg
,
int
nMsgLen
,
LPVOID
lParam
);
void
CALLBACK
XEngine_Client_TCPClose
(
LPCTSTR
lpszClientAddr
,
SOCKET
hSocket
,
LPVOID
lParam
);
BOOL
__stdcall
XEngine_Client_WSAccept
(
LPCTSTR
lpszClientAddr
,
SOCKET
hSocket
,
LPVOID
lParam
);
void
__stdcall
XEngine_Client_WSRecv
(
LPCTSTR
lpszClientAddr
,
SOCKET
hSocket
,
LPCTSTR
lpszRecvMsg
,
int
nMsgLen
,
LPVOID
lParam
);
void
__stdcall
XEngine_Client_WSClose
(
LPCTSTR
lpszClientAddr
,
SOCKET
hSocket
,
LPVOID
lParam
);
BOOL
CALLBACK
XEngine_Client_WSAccept
(
LPCTSTR
lpszClientAddr
,
SOCKET
hSocket
,
LPVOID
lParam
);
void
CALLBACK
XEngine_Client_WSRecv
(
LPCTSTR
lpszClientAddr
,
SOCKET
hSocket
,
LPCTSTR
lpszRecvMsg
,
int
nMsgLen
,
LPVOID
lParam
);
void
CALLBACK
XEngine_Client_WSClose
(
LPCTSTR
lpszClientAddr
,
SOCKET
hSocket
,
LPVOID
lParam
);
BOOL
__stdcall
XEngine_Client_HttpAccept
(
LPCTSTR
lpszClientAddr
,
SOCKET
hSocket
,
LPVOID
lParam
);
void
__stdcall
XEngine_Client_HttpRecv
(
LPCTSTR
lpszClientAddr
,
SOCKET
hSocket
,
LPCTSTR
lpszRecvMsg
,
int
nMsgLen
,
LPVOID
lParam
);
void
__stdcall
XEngine_Client_HttpClose
(
LPCTSTR
lpszClientAddr
,
SOCKET
hSocket
,
LPVOID
lParam
);
BOOL
CALLBACK
XEngine_Client_HttpAccept
(
LPCTSTR
lpszClientAddr
,
SOCKET
hSocket
,
LPVOID
lParam
);
void
CALLBACK
XEngine_Client_HttpRecv
(
LPCTSTR
lpszClientAddr
,
SOCKET
hSocket
,
LPCTSTR
lpszRecvMsg
,
int
nMsgLen
,
LPVOID
lParam
);
void
CALLBACK
XEngine_Client_HttpClose
(
LPCTSTR
lpszClientAddr
,
SOCKET
hSocket
,
LPVOID
lParam
);
BOOL
XEngine_CloseClient
(
LPCTSTR
lpszClientAddr
);
...
...
XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Task.cpp
浏览文件 @
a21e85f2
#
include
"Authorize_Hdr.h"
void
__stdcall
XEngine_TaskEvent_Client
(
LPCSTR
lpszUserAddr
,
LPCSTR
lpszUserName
,
__int64x
nOnlineTimer
,
__int64x
nLeftTimer
,
LPCSTR
lpszLeftDate
,
ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE
enSerialType
,
ENUM_PROTOCOLDEVICE_TYPE
enDeviceType
,
int
nNetType
,
LPVOID
lParam
)
void
CALLBACK
XEngine_TaskEvent_Client
(
LPCSTR
lpszUserAddr
,
LPCSTR
lpszUserName
,
__int64x
nOnlineTimer
,
__int64x
nLeftTimer
,
LPCSTR
lpszLeftDate
,
ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE
enSerialType
,
ENUM_PROTOCOLDEVICE_TYPE
enDeviceType
,
int
nNetType
,
LPVOID
lParam
)
{
if
(
nLeftTimer
<=
0
)
{
...
...
@@ -46,7 +46,7 @@ void __stdcall XEngine_TaskEvent_Client(LPCSTR lpszUserAddr, LPCSTR lpszUserName
XLOG_PRINT
(
xhLog
,
XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO
,
_T
(
"地址:%s,用户:%s,网络类型:%d,没有剩余时间,已经通知客户单超时,三方通知设置:%d"
),
lpszUserName
,
lpszUserAddr
,
nNetType
,
st_AuthConfig
.
st_XLogin
.
bPassAuth
);
}
}
void
__stdcall
XEngine_TaskEvent_Token
(
XNETHANDLE
xhToken
,
LPVOID
lParam
)
void
CALLBACK
XEngine_TaskEvent_Token
(
XNETHANDLE
xhToken
,
LPVOID
lParam
)
{
AUTHREG_USERTABLE
st_UserTable
;
memset
(
&
st_UserTable
,
'\0'
,
sizeof
(
AUTHREG_USERTABLE
));
...
...
XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Task.h
浏览文件 @
a21e85f2
#
pragma
once
void
__stdcall
XEngine_TaskEvent_Client
(
LPCSTR
lpszUserAddr
,
LPCSTR
lpszUserName
,
__int64x
nOnlineTimer
,
__int64x
nLeftTimer
,
LPCSTR
lpszLeftDate
,
ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE
enSerialType
,
ENUM_PROTOCOLDEVICE_TYPE
enDeviceType
,
int
nNetType
,
LPVOID
lParam
);
void
__stdcall
XEngine_TaskEvent_Token
(
XNETHANDLE
xhToken
,
LPVOID
lParam
);
\ No newline at end of file
void
CALLBACK
XEngine_TaskEvent_Client
(
LPCSTR
lpszUserAddr
,
LPCSTR
lpszUserName
,
__int64x
nOnlineTimer
,
__int64x
nLeftTimer
,
LPCSTR
lpszLeftDate
,
ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE
enSerialType
,
ENUM_PROTOCOLDEVICE_TYPE
enDeviceType
,
int
nNetType
,
LPVOID
lParam
);
void
CALLBACK
XEngine_TaskEvent_Token
(
XNETHANDLE
xhToken
,
LPVOID
lParam
);
\ No newline at end of file
XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Makefile
浏览文件 @
a21e85f2
...
...
@@ -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_CDKey.o
\
AuthorizeHTTP_Client.o AuthorizeHTTP_Serial.o AuthorizeHTTP_User.o AuthorizeHTTP_Pass.o AuthorizeHTTP_Switch.o AuthorizeHTTP_Banned.o AuthorizeHTTP_CDKey.o
AuthorizeHTTP_Announcement.o
\
AuthorizeHTTP_Token.o
ifeq
($(OS),Windows_NT)
...
...
@@ -69,6 +69,8 @@ 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_Announcement.o
:
./AuthorizeHTTP_Post/AuthorizeHTTP_Announcement.cpp
$(CC)
$(DEBUG)
$(FLAGS)
$(UNICODE)
./AuthorizeHTTP_Post/AuthorizeHTTP_Announcement.cpp
AuthorizeHTTP_Token.o
:
./AuthorizeHTTP_Get/AuthorizeHTTP_Token.cpp
$(CC)
$(DEBUG)
$(FLAGS)
$(UNICODE)
./AuthorizeHTTP_Get/AuthorizeHTTP_Token.cpp
...
...
XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.cpp
浏览文件 @
a21e85f2
...
...
@@ -267,7 +267,7 @@ int main(int argc, char** argv)
XLOG_PRINT
(
xhLog
,
XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO
,
_T
(
"启动服务中,初始化HTTP任务线程池成功,线程个数:%d"
),
st_AuthConfig
.
st_XMax
.
nHTTPThread
);
}
XLOG_PRINT
(
xhLog
,
XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO
,
_T
(
"启动服务中,功能开关选项,删除功能:%d,登录功能:%d,找回密码:%d,充值功能:%d,注册功能:%d
"
),
st_FunSwitch
.
bSwitchDelete
,
st_FunSwitch
.
bSwitchLogin
,
st_FunSwitch
.
bSwitchPass
,
st_FunSwitch
.
bSwitchPay
,
st_FunSwitch
.
bSwitchRegister
);
XLOG_PRINT
(
xhLog
,
XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO
,
_T
(
"启动服务中,功能开关选项,删除功能:%d,登录功能:%d,找回密码:%d,充值功能:%d,注册功能:%d
,CDKey功能:%d,公告系统:%d,密码验证:%d"
),
st_FunSwitch
.
bSwitchDelete
,
st_FunSwitch
.
bSwitchLogin
,
st_FunSwitch
.
bSwitchPass
,
st_FunSwitch
.
bSwitchPay
,
st_FunSwitch
.
bSwitchRegister
,
st_FunSwitch
.
bSwitchCDKey
,
st_FunSwitch
.
bSwitchNotice
,
st_AuthConfig
.
st_XCrypto
.
bEnable
);
XLOG_PRINT
(
xhLog
,
XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO
,
_T
(
"所有服务成功启动,网络验证服务运行中,XEngien版本:%s,发行版本次数:%d,当前运行版本:%s。。。"
),
BaseLib_OperatorVer_XGetStr
(),
st_AuthConfig
.
st_XVer
.
pStl_ListVer
->
size
(),
st_AuthConfig
.
st_XVer
.
pStl_ListVer
->
front
().
c_str
());
while
(
TRUE
)
...
...
XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.vcxproj
浏览文件 @
a21e85f2
...
...
@@ -151,6 +151,7 @@
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile
Include=
"AuthorizeHTTP_Get\AuthorizeHTTP_Token.cpp"
/>
<ClCompile
Include=
"AuthorizeHTTP_Post\AuthorizeHTTP_Announcement.cpp"
/>
<ClCompile
Include=
"AuthorizeHTTP_Post\AuthorizeHTTP_Banned.cpp"
/>
<ClCompile
Include=
"AuthorizeHTTP_Post\AuthorizeHTTP_CDKey.cpp"
/>
<ClCompile
Include=
"AuthorizeHTTP_Post\AuthorizeHTTP_Client.cpp"
/>
...
...
@@ -168,6 +169,7 @@
</ItemGroup>
<ItemGroup>
<ClInclude
Include=
"AuthorizeHTTP_Get\AuthorizeHTTP_Token.h"
/>
<ClInclude
Include=
"AuthorizeHTTP_Post\AuthorizeHTTP_Announcement.h"
/>
<ClInclude
Include=
"AuthorizeHTTP_Post\AuthorizeHTTP_Banned.h"
/>
<ClInclude
Include=
"AuthorizeHTTP_Post\AuthorizeHTTP_CDKey.h"
/>
<ClInclude
Include=
"AuthorizeHTTP_Post\AuthorizeHTTP_Client.h"
/>
...
...
XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.vcxproj.filters
浏览文件 @
a21e85f2
...
...
@@ -72,6 +72,9 @@
<ClCompile
Include=
"AuthorizeHTTP_Post\AuthorizeHTTP_CDKey.cpp"
>
<Filter>
源文件\AuthorizeHTTP_Post
</Filter>
</ClCompile>
<ClCompile
Include=
"AuthorizeHTTP_Post\AuthorizeHTTP_Announcement.cpp"
>
<Filter>
源文件\AuthorizeHTTP_Post
</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude
Include=
"Authorize_Config.h"
>
...
...
@@ -119,5 +122,8 @@
<ClInclude
Include=
"AuthorizeHTTP_Post\AuthorizeHTTP_CDKey.h"
>
<Filter>
头文件\AuthorizeHTTP_Post
</Filter>
</ClInclude>
<ClInclude
Include=
"AuthorizeHTTP_Post\AuthorizeHTTP_Announcement.h"
>
<Filter>
头文件\AuthorizeHTTP_Post
</Filter>
</ClInclude>
</ItemGroup>
</Project>
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录