Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
smart_gov_platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵啸非
smart_gov_platform
Commits
8fdb0447
Commit
8fdb0447
authored
Mar 06, 2023
by
“yiyousong”
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.scsmile.cn/zxf/smart_gov_platform
parents
3ad5b092
97549441
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
278 additions
and
624 deletions
+278
-624
base-manager/doc/api.md
base-manager/doc/api.md
+39
-624
base-manager/src/main/java/com/mortals/xhx/busiz/req/MidReq.java
...nager/src/main/java/com/mortals/xhx/busiz/req/MidReq.java
+17
-0
base-manager/src/main/java/com/mortals/xhx/busiz/rsp/SignResp.java
...ger/src/main/java/com/mortals/xhx/busiz/rsp/SignResp.java
+23
-0
base-manager/src/main/java/com/mortals/xhx/busiz/web/MidSignApiController.java
.../java/com/mortals/xhx/busiz/web/MidSignApiController.java
+127
-0
base-manager/src/main/java/com/mortals/xhx/common/utils/EncryptionUtils.java
...in/java/com/mortals/xhx/common/utils/EncryptionUtils.java
+63
-0
base-manager/src/test/java/com/mortals/httpclient/system/system.http
...r/src/test/java/com/mortals/httpclient/system/system.http
+9
-0
No files found.
base-manager/doc/api.md
View file @
8fdb0447
This diff is collapsed.
Click to expand it.
base-manager/src/main/java/com/mortals/xhx/busiz/req/MidReq.java
0 → 100644
View file @
8fdb0447
package
com.mortals.xhx.busiz.req
;
import
lombok.Data
;
/**
* 微中台请求接口
* @author:
* @date: 2023/3/2 18:08
*/
@Data
public
class
MidReq
{
private
String
method
;
private
String
body
;
}
base-manager/src/main/java/com/mortals/xhx/busiz/rsp/SignResp.java
0 → 100644
View file @
8fdb0447
package
com.mortals.xhx.busiz.rsp
;
import
lombok.Data
;
/**
* @author karlhoo
*/
@Data
public
class
SignResp
{
private
String
appId
;
private
String
appKey
;
private
String
timeStamp
;
private
String
nonce
;
private
String
secretKey
;
private
String
sign
;
}
base-manager/src/main/java/com/mortals/xhx/busiz/web/MidSignApiController.java
0 → 100644
View file @
8fdb0447
package
com.mortals.xhx.busiz.web
;
import
cn.hutool.core.codec.Base64
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.util.NumberUtil
;
import
cn.hutool.core.util.RandomUtil
;
import
cn.hutool.crypto.digest.DigestAlgorithm
;
import
cn.hutool.crypto.digest.Digester
;
import
cn.hutool.http.HttpUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.mortals.framework.annotation.UnAuth
;
import
com.mortals.framework.common.Rest
;
import
com.mortals.xhx.busiz.req.MidReq
;
import
com.mortals.xhx.busiz.rsp.SignResp
;
import
com.mortals.xhx.common.utils.EncryptionUtils
;
import
com.mortals.xhx.module.dept.model.DeptEntity
;
import
com.mortals.xhx.module.dept.model.DeptQuery
;
import
com.mortals.xhx.module.dept.service.DeptService
;
import
com.mortals.xhx.module.matter.model.MatterEntity
;
import
com.mortals.xhx.module.matter.model.MatterQuery
;
import
com.mortals.xhx.module.matter.service.MatterService
;
import
com.mortals.xhx.module.site.model.SiteMatterEntity
;
import
com.mortals.xhx.module.site.model.SiteMatterQuery
;
import
com.mortals.xhx.module.site.service.SiteMatterService
;
import
com.mortals.xhx.module.window.model.WindowEntity
;
import
com.mortals.xhx.module.window.model.WindowMatterEntity
;
import
com.mortals.xhx.module.window.model.WindowMatterQuery
;
import
com.mortals.xhx.module.window.model.WindowQuery
;
import
com.mortals.xhx.module.window.service.WindowMatterService
;
import
com.mortals.xhx.module.window.service.WindowService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.http.HttpResponse
;
import
org.apache.http.client.CookieStore
;
import
org.apache.http.client.HttpClient
;
import
org.apache.http.client.methods.HttpGet
;
import
org.apache.http.impl.client.BasicCookieStore
;
import
org.apache.http.impl.client.HttpClientBuilder
;
import
org.apache.http.util.EntityUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.http.HttpMethod
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
* 微中台签名接口
*
* @author:
* @date: 2023/3/2 18:07
*/
@RestController
@RequestMapping
(
"mid"
)
@Slf4j
public
class
MidSignApiController
{
@Value
(
"${mid.appId:01C67D56D0630517}"
)
private
String
appId
;
@Value
(
"${mid.appKey:a0b946c858aa8d06}"
)
private
String
appKey
;
@Value
(
"${mid.secretKey:ad80c59e575a78ab}"
)
private
String
secretKey
;
@PostMapping
(
value
=
"sign"
)
@UnAuth
public
Rest
<
SignResp
>
midSign
(
@RequestBody
MidReq
midReq
)
{
SignResp
signResp
=
new
SignResp
();
try
{
Map
<
String
,
String
>
headerMap
=
new
HashMap
<>();
if
(
"post"
.
equalsIgnoreCase
(
midReq
.
getMethod
())){
headerMap
.
put
(
"appId"
,
appId
);
headerMap
.
put
(
"appKey"
,
appKey
);
JSONObject
object1
=
JSONObject
.
parseObject
(
midReq
.
getBody
());
headerMap
.
put
(
"body"
,
object1
.
toJSONString
());
String
timeStamp
=
System
.
currentTimeMillis
()
+
""
;
headerMap
.
put
(
"timeStamp"
,
timeStamp
);
String
nonce
=
RandomUtil
.
randomNumbers
(
6
);
headerMap
.
put
(
"nonce"
,
nonce
);
headerMap
.
put
(
"secretKey"
,
secretKey
);
signResp
.
setAppId
(
appId
);
signResp
.
setAppKey
(
appKey
);
signResp
.
setTimeStamp
(
timeStamp
);
signResp
.
setNonce
(
nonce
);
signResp
.
setSecretKey
(
secretKey
);
}
else
if
(
"get"
.
equalsIgnoreCase
(
midReq
.
getMethod
())){
HashMap
<
String
,
String
>
paramsMap
=
JSON
.
parseObject
(
midReq
.
getBody
(),
HashMap
.
class
);
if
(!
paramsMap
.
isEmpty
())
{
for
(
Map
.
Entry
<
String
,
String
>
entry
:
paramsMap
.
entrySet
())
{
headerMap
.
put
(
entry
.
getKey
(),
entry
.
getValue
());
}
}
}
StringBuilder
signSb
=
new
StringBuilder
();
signSb
.
append
(
"appId"
).
append
(
"="
).
append
(
headerMap
.
get
(
"appId"
)).
append
(
"&"
);
signSb
.
append
(
"appKey"
).
append
(
"="
).
append
(
headerMap
.
get
(
"appKey"
)).
append
(
"&"
);
signSb
.
append
(
"body"
).
append
(
"="
).
append
(
headerMap
.
get
(
"body"
)).
append
(
"&"
);
signSb
.
append
(
"nonce"
).
append
(
"="
).
append
(
headerMap
.
get
(
"nonce"
)).
append
(
"&"
);
signSb
.
append
(
"secretKey"
).
append
(
"="
).
append
(
headerMap
.
get
(
"secretKey"
)).
append
(
"&"
);
signSb
.
append
(
"timeStamp"
).
append
(
"="
).
append
(
headerMap
.
get
(
"timeStamp"
)).
append
(
"&"
);
/* for (Map.Entry<String, String> params : headerMap.entrySet()) {
signSb.append(params.getKey()).append("=").append(params.getValue() + "").append("&");
}*/
String
signStr
=
signSb
.
substring
(
0
,
signSb
.
length
()
-
1
);
log
.
info
(
"签名源字符串: "
+
signStr
);
String
sign
=
EncryptionUtils
.
SHA256
(
signStr
);
log
.
info
(
"签名计算结果: "
+
sign
);
signResp
.
setSign
(
sign
);
return
Rest
.
ok
(
signResp
);
}
catch
(
Exception
e
)
{
log
.
error
(
"签名异常"
,
e
);
return
Rest
.
fail
(
"签名异常!"
);
}
}
}
base-manager/src/main/java/com/mortals/xhx/common/utils/EncryptionUtils.java
0 → 100644
View file @
8fdb0447
package
com.mortals.xhx.common.utils
;
import
lombok.extern.slf4j.Slf4j
;
import
java.security.MessageDigest
;
@Slf4j
public
class
EncryptionUtils
{
private
enum
DigestType
{
MD5
(
"MD5"
),
SHA
(
"SHA"
),
SHA256
(
"SHA-256"
);
private
String
name
;
private
DigestType
(
String
name
){
this
.
name
=
name
;
}
public
String
getName
()
{
return
name
;
}
}
private
final
static
String
digest
(
String
sourceStr
,
DigestType
type
)
{
char
hexDigits
[]={
'0'
,
'1'
,
'2'
,
'3'
,
'4'
,
'5'
,
'6'
,
'7'
,
'8'
,
'9'
,
'A'
,
'B'
,
'C'
,
'D'
,
'E'
,
'F'
};
try
{
byte
[]
btInput
=
sourceStr
.
getBytes
();
// 获得摘要算法的 MessageDigest 对象
MessageDigest
mdInst
=
MessageDigest
.
getInstance
(
type
.
name
);
// 使用指定的字节更新摘要
mdInst
.
update
(
btInput
);
// 获得密文
byte
[]
md
=
mdInst
.
digest
();
// 把密文转换成十六进制的字符串形式
int
length
=
md
.
length
;
char
str
[]
=
new
char
[
length
*
2
];
int
k
=
0
;
for
(
int
i
=
0
;
i
<
length
;
i
++)
{
byte
byte0
=
md
[
i
];
str
[
k
++]
=
hexDigits
[
byte0
>>>
4
&
0xf
];
str
[
k
++]
=
hexDigits
[
byte0
&
0xf
];
}
return
new
String
(
str
);
}
catch
(
Exception
e
)
{
log
.
error
(
"签名失败"
,
e
);
return
""
;
}
}
public
final
static
String
MD5
(
String
s
)
{
return
digest
(
s
,
DigestType
.
MD5
);
}
public
final
static
String
SHA
(
String
s
)
{
return
digest
(
s
,
DigestType
.
SHA
);
}
public
final
static
String
SHA256
(
String
s
){
return
digest
(
s
,
DigestType
.
SHA256
);
}
}
base-manager/src/test/java/com/mortals/httpclient/system/system.http
View file @
8fdb0447
...
@@ -84,6 +84,15 @@ Content-Type: application/json
...
@@ -84,6 +84,15 @@ Content-Type: application/json
{}
{}
###midsign
POST {{baseUrl}}/mid/sign
Content-Type: application/json
{
"method":"post",
"body":"{\"test\":\"哈哈哈\"}"
}
###短信设置编辑
###短信设置编辑
GET {{baseUrl}}/sms/set/edit?id={{SmsSet_id}}
GET {{baseUrl}}/sms/set/edit?id={{SmsSet_id}}
Accept: application/json
Accept: application/json
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment