Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
D
device-new-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
赵啸非
device-new-platform
Commits
2adadaf6
Commit
2adadaf6
authored
Jul 14, 2022
by
赵啸非
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
设备列表导出优化
parent
3f4b9d74
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
399 additions
and
64 deletions
+399
-64
common-lib/src/main/java/com/mortals/xhx/queue/rabbitmq/TbRabbitMqConsumerTemplate.java
...ortals/xhx/queue/rabbitmq/TbRabbitMqConsumerTemplate.java
+2
-0
device-manager-ui/admin/yarn.lock
device-manager-ui/admin/yarn.lock
+46
-46
device-manager/src/main/java/com/mortals/xhx/base/framework/interceptor/AuthTokenServiceImpl.java
.../xhx/base/framework/interceptor/AuthTokenServiceImpl.java
+342
-0
device-manager/src/main/java/com/mortals/xhx/busiz/web/DeviceApiController.java
...n/java/com/mortals/xhx/busiz/web/DeviceApiController.java
+6
-1
device-manager/src/main/java/com/mortals/xhx/common/utils/DownMsgTask.java
...c/main/java/com/mortals/xhx/common/utils/DownMsgTask.java
+1
-1
device-manager/src/main/resources/bootstrap.yml
device-manager/src/main/resources/bootstrap.yml
+1
-16
doc/api.md
doc/api.md
+1
-0
No files found.
common-lib/src/main/java/com/mortals/xhx/queue/rabbitmq/TbRabbitMqConsumerTemplate.java
View file @
2adadaf6
...
...
@@ -131,9 +131,11 @@ public class TbRabbitMqConsumerTemplate<T extends TbQueueMsg> extends AbstractTb
log
.
info
(
"message is empty"
);
return
null
;
}
Map
<
String
,
Object
>
map
=
JSON
.
parseObject
(
new
String
(
message
.
getBody
()),
HashMap
.
class
);
msg
.
setKey
((
String
)
map
.
get
(
"key"
));
String
payloadStr
=
(
String
)
map
.
get
(
"data"
);
log
.
info
(
"payloadStr:{}"
,
payloadStr
);
byte
[]
payloadDecodeByte
=
Base64
.
getDecoder
().
decode
(
payloadStr
);
msg
.
setData
(
payloadDecodeByte
);
...
...
device-manager-ui/admin/yarn.lock
View file @
2adadaf6
...
...
@@ -2,9 +2,9 @@
# yarn lockfile v1
"@ampproject/remapping@^2.1.0":
"@ampproject/remapping@^2.1.0"
, "@ampproject/remapping@^2.2.0"
:
version "2.2.0"
resolved "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.2.0.tgz
#56c133824780de3174aed5ab6834f3026790154d
"
resolved "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.2.0.tgz"
integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==
dependencies:
"@jridgewell/gen-mapping" "^0.1.0"
...
...
@@ -30,9 +30,9 @@
integrity sha1-rHmWzqr8+PQQEZyK8NHbTPkUohA=
"@babel/compat-data@^7.18.6":
version "7.18.
6
"
resolved "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.18.
6.tgz#8b37d24e88e8e21c499d4328db80577d8882fa53
"
integrity sha512-
tzulrgDT0QD6U7BJ4TKVk2SDDg7wlP39P9yAx1RfLy7vP/7rsDRlWVfbWxElslu56+r7QOhB2NSDsabYYruoZ
Q==
version "7.18.
8
"
resolved "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.18.
8.tgz#2483f565faca607b8535590e84e7de323f27764d
"
integrity sha512-
HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIH
Q==
"@babel/core@^7.11.0":
version "7.18.6"
...
...
@@ -85,7 +85,7 @@
jsesc "^2.5.1"
source-map "^0.5.0"
"@babel/generator@^7.18.6":
"@babel/generator@^7.18.6"
, "@babel/generator@^7.18.7"
:
version "7.18.7"
resolved "https://registry.npmmirror.com/@babel/generator/-/generator-7.18.7.tgz#2aa78da3c05aadfc82dbac16c99552fc802284bd"
integrity sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A==
...
...
@@ -249,9 +249,9 @@
"@babel/types" "^7.14.8"
"@babel/helper-module-transforms@^7.18.6":
version "7.18.
6
"
resolved "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.
6.tgz#57e3ca669e273d55c3cda55e6ebf552f37f483
c8"
integrity sha512-
L//phhB4al5uucwzlimruukHB3jRd5JGClwRMD/ROrVjXfLqovYnvQrK/JK36WYyVwGGO7OD3kMyVTjx+WVPhw
==
version "7.18.
8
"
resolved "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.
8.tgz#4f8408afead0188cfa48672f9d0e5787b61778
c8"
integrity sha512-
che3jvZwIcZxrwh63VfnFTUzcAM9v/lznYkkRxIBGMPt1SudOKHAEec0SIRCfiuIzTcF7VGj/CaTT6gY4eWxvA
==
dependencies:
"@babel/helper-environment-visitor" "^7.18.6"
"@babel/helper-module-imports" "^7.18.6"
...
...
@@ -259,8 +259,8 @@
"@babel/helper-split-export-declaration" "^7.18.6"
"@babel/helper-validator-identifier" "^7.18.6"
"@babel/template" "^7.18.6"
"@babel/traverse" "^7.18.
6
"
"@babel/types" "^7.18.
6
"
"@babel/traverse" "^7.18.
8
"
"@babel/types" "^7.18.
8
"
"@babel/helper-optimise-call-expression@^7.14.5":
version "7.14.5"
...
...
@@ -399,10 +399,10 @@
resolved "https://registry.nlark.com/@babel/parser/download/@babel/parser-7.14.9.tgz?cache=0&sync_timestamp=1627804468536&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.14.9.tgz"
integrity sha1-WWwa1nYIBwBY6/jfUMHq9l24laQ=
"@babel/parser@^7.18.6":
version "7.18.
6
"
resolved "https://registry.npmmirror.com/@babel/parser/-/parser-7.18.
6.tgz#845338edecad65ebffef058d3be851f1d28a63bc
"
integrity sha512-
uQVSa9jJUe/G/304lXspfWVpKpK4euFLgGiMQFOCpM/bgcAdeoHwi/OQz23O9GK2osz26ZiXRRV9aV+Yl1O8tw
==
"@babel/parser@^7.18.6"
, "@babel/parser@^7.18.8"
:
version "7.18.
8
"
resolved "https://registry.npmmirror.com/@babel/parser/-/parser-7.18.
8.tgz#822146080ac9c62dac0823bb3489622e0bc1cbdf
"
integrity sha512-
RSKRfYX20dyH+elbJK2uqAkVyucL+xXzhqlMD5/ZXx+dAAwpyB7HsvnHe/ZUGOF+xLr5Wx9/JoXVTj6BQE2/oA
==
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.14.5":
version "7.14.5"
...
...
@@ -1059,19 +1059,19 @@
debug "^4.1.0"
globals "^11.1.0"
"@babel/traverse@^7.18.6":
version "7.18.
6
"
resolved "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.18.
6.tgz#a228562d2f46e89258efa4ddd0416942e2fd671d
"
integrity sha512-
zS/OKyqmD7lslOtFqbscH6gMLFYOfG1YPqCKfAW5KrTeolKqvB8UelR49Fpr6y93kYkW2Ik00mT1LOGiAGvizw
==
"@babel/traverse@^7.18.6"
, "@babel/traverse@^7.18.8"
:
version "7.18.
8
"
resolved "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.18.
8.tgz#f095e62ab46abf1da35e5a2011f43aee72d8d5b0
"
integrity sha512-
UNg/AcSySJYR/+mIcJQDCv00T+AqRO7j/ZEJLzpaYtgM48rMg5MnkJgyNqkzo88+p4tfRvZJCEiwwfG6h4jkRg
==
dependencies:
"@babel/code-frame" "^7.18.6"
"@babel/generator" "^7.18.
6
"
"@babel/generator" "^7.18.
7
"
"@babel/helper-environment-visitor" "^7.18.6"
"@babel/helper-function-name" "^7.18.6"
"@babel/helper-hoist-variables" "^7.18.6"
"@babel/helper-split-export-declaration" "^7.18.6"
"@babel/parser" "^7.18.
6
"
"@babel/types" "^7.18.
6
"
"@babel/parser" "^7.18.
8
"
"@babel/types" "^7.18.
8
"
debug "^4.1.0"
globals "^11.1.0"
...
...
@@ -1083,10 +1083,10 @@
"@babel/helper-validator-identifier" "^7.14.9"
to-fast-properties "^2.0.0"
"@babel/types@^7.18.6", "@babel/types@^7.18.7":
version "7.18.
7
"
resolved "https://registry.npmmirror.com/@babel/types/-/types-7.18.
7.tgz#a4a2c910c15040ea52cdd1ddb1614a65c8041726
"
integrity sha512-
QG3yxTcTIBoAcQmkCs+wAPYZhu7Dk9rXKacINfNbdJDNERTbLQbHGyVG8q/YGMPeCJRIhSY0+fTc5+xuh6WPSQ
==
"@babel/types@^7.18.6", "@babel/types@^7.18.7"
, "@babel/types@^7.18.8"
:
version "7.18.
8
"
resolved "https://registry.npmmirror.com/@babel/types/-/types-7.18.
8.tgz#c5af199951bf41ba4a6a9a6d0d8ad722b30cd42f
"
integrity sha512-
qwpdsmraq0aJ3osLJRApsc2ouSJCdnMeZwB0DhbtHAtRpZNZCdlbRnHIgcRKzdE1g0iOGg644fzjOBcdOz9cPw
==
dependencies:
"@babel/helper-validator-identifier" "^7.18.6"
to-fast-properties "^2.0.0"
...
...
@@ -1157,7 +1157,7 @@
"@jridgewell/gen-mapping@^0.1.0":
version "0.1.1"
resolved "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz
#e5d2e450306a9491e3bd77e323e38d7aff315996
"
resolved "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz"
integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==
dependencies:
"@jridgewell/set-array" "^1.0.0"
...
...
@@ -1173,23 +1173,23 @@
"@jridgewell/trace-mapping" "^0.3.9"
"@jridgewell/resolve-uri@^3.0.3":
version "3.
0.8
"
resolved "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.
0.8.tgz#687cc2bbf243f4e9a868ecf2262318e2658873a1
"
integrity sha512-
YK5G9LaddzGbcucK4c8h5tWFmMPBvRZ/uyWmN1/SbBdIvqGUdWGkJ5BAaccgs6XbzVLsqbPJrBSFwKv3kT9i7
w==
version "3.
1.0
"
resolved "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.
1.0.tgz
"
integrity sha512-
F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28
w==
"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1":
version "1.1.2"
resolved "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.1.2.tgz
#7c6cf998d6d20b914c0a55a91ae928ff25965e72
"
resolved "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.1.2.tgz"
integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==
"@jridgewell/sourcemap-codec@^1.4.10":
version "1.4.14"
resolved "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz
#add4c98d341472a289190b424efbdb096991bb24
"
resolved "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz"
integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
"@jridgewell/trace-mapping@^0.3.9":
version "0.3.14"
resolved "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz
#b231a081d8f66796e475ad588a1ef473112701ed
"
resolved "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz"
integrity sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==
dependencies:
"@jridgewell/resolve-uri" "^3.0.3"
...
...
@@ -2591,9 +2591,9 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001219:
integrity sha1-JqtF40DxVepdopINrbdqUzy4684=
caniuse-lite@^1.0.30001359:
version "1.0.3000136
3
"
resolved "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.3000136
3.tgz#26bec2d606924ba318235944e1193304ea7c4f15
"
integrity sha512-
HpQhpzTGGPVMnCjIomjt+jvyUu8vNFo3TaDiZ/RcoTrlOq/5+tC8zHdsbgFB6MxmaY+jCpsH09aD80Bb4Ow3Sg
==
version "1.0.3000136
4
"
resolved "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.3000136
4.tgz#1e118f0e933ed2b79f8d461796b8ce45398014a0
"
integrity sha512-
9O0xzV3wVyX0SlegIQ6knz+okhBB5pE0PC40MNdwcipjwpxoUEHL24uJ+gG42cgklPjfO5ZjZPme9FTSN3QT2Q
==
case-sensitive-paths-webpack-plugin@^2.3.0:
version "2.4.0"
...
...
@@ -3117,9 +3117,9 @@ core-js@^2.4.0:
integrity sha1-2TM9+nsGXjR8xWgiGdb2kIWcwuw=
core-js@^3.6.5:
version "3.23.
3
"
resolved "https://registry.npmmirror.com/core-js/-/core-js-3.23.
3.tgz#3b977612b15da6da0c9cc4aec487e8d24f371112
"
integrity sha512-
oAKwkj9xcWNBAvGbT//WiCdOMpb9XQG92/Fe3ABFM/R16BsHgePG00mFOgKf7IsCtfj8tA1kHtf/VwErhriz5
Q==
version "3.23.
4
"
resolved "https://registry.npmmirror.com/core-js/-/core-js-3.23.
4.tgz#92d640faa7f48b90bbd5da239986602cfc402aa6
"
integrity sha512-
vjsKqRc1RyAJC3Ye2kYqgfdThb3zYnx9CrqoCcjMOENMtQPC7ZViBvlDxwYU/2z2NI/IPuiXw5mT4hWhddqjz
Q==
core-util-is@1.0.2, core-util-is@~1.0.0:
version "1.0.2"
...
...
@@ -3777,7 +3777,7 @@ echarts-wordcloud@^1.1.3:
resolved "https://registry.nlark.com/echarts-wordcloud/download/echarts-wordcloud-1.1.3.tgz"
integrity sha1-B7FAyLp2sZwxe0PDEPPV3Jkon/I=
echarts@^4.
3
.0:
echarts@^4.
9
.0:
version "4.9.0"
resolved "https://registry.nlark.com/echarts/download/echarts-4.9.0.tgz"
integrity sha1-qbm6oD8Doqcx5jQMVb77V6nhNH0=
...
...
@@ -3810,9 +3810,9 @@ electron-to-chromium@^1.3.723:
integrity sha1-eRsNj890EYhdCGGT+0mq7wwVlMo=
electron-to-chromium@^1.4.172:
version "1.4.1
78
"
resolved "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.1
78.tgz#3dae6fda486007bb54bbfed420ebd40881a3de45
"
integrity sha512-
aWuhJXkwIdoQzGR8p2QvR3N0OzdUKZSP8+P/hzuMzNQIPZoEa8HiCGM75bQBHjyz+eKT5PB9dVCzkK/tyQ4B5Q
==
version "1.4.1
85
"
resolved "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.1
85.tgz#3432d7944f1c5fe20664bb45d9cced2151405ce2
"
integrity sha512-
9kV/isoOGpKkBt04yYNaSWIBn3187Q5VZRtoReq8oz5NY/A4XmU6cAoqgQlDp7kKJCZMRjWZ8nsQyxfpFHvfyw
==
element-ui@^2.15.5:
version "2.15.5"
...
...
@@ -6717,9 +6717,9 @@ node-releases@^1.1.71:
integrity sha1-3U6B3dUnf/hGuAtSu0DEnt96eyA=
node-releases@^2.0.5:
version "2.0.
5
"
resolved "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.
5.tgz#280ed5bc3eba0d96ce44897d8aee478bfb3d9666
"
integrity sha512-
U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q
==
version "2.0.
6
"
resolved "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.
6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503
"
integrity sha512-
PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg
==
node-sass@^5.0.0:
version "5.0.0"
...
...
device-manager/src/main/java/com/mortals/xhx/base/framework/interceptor/AuthTokenServiceImpl.java
0 → 100644
View file @
2adadaf6
package
com.mortals.xhx.base.framework.interceptor
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.mortals.framework.ap.SysConstains
;
import
com.mortals.framework.service.IAuthTokenService
;
import
com.mortals.framework.service.ICacheService
;
import
com.mortals.framework.service.IUser
;
import
com.mortals.framework.util.DateUtils
;
import
com.mortals.framework.util.StringUtils
;
import
io.jsonwebtoken.Claims
;
import
io.jsonwebtoken.Jwts
;
import
io.jsonwebtoken.SignatureAlgorithm
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.core.annotation.Order
;
import
org.springframework.stereotype.Service
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.Base64
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* token验证处理
*
* @author zxfei
*/
//@Service
@Order
(
1
)
@Slf4j
public
class
AuthTokenServiceImpl
implements
IAuthTokenService
{
// 令牌自定义标识
@Value
(
"${token.header:Authorization}"
)
private
String
header
;
// 令牌秘钥
@Value
(
"${token.secret:026db82420614469897fcc2dc1b4ce38}"
)
private
String
secret
;
// 令牌有效期(默认60分钟)
@Value
(
"${token.expireTime:60}"
)
private
int
expireTime
;
// 令牌前缀
@Value
(
"${token.prefix:}"
)
private
String
tokenPrefix
;
// redis db
@Value
(
"${spring.redis.database:}"
)
private
Integer
db
;
@Value
(
"${token.database:1}"
)
private
Integer
portalDb
;
protected
static
final
Long
MILLIS_SECOND
=
1000
l
;
protected
static
final
Long
MILLIS_MINUTE
=
60
*
MILLIS_SECOND
;
protected
static
final
Long
MILLIS_HOUR
=
60
*
MILLIS_MINUTE
;
protected
static
final
Long
MILLIS_DAY
=
24
*
MILLIS_HOUR
;
protected
static
final
Long
MILLIS_WEEK
=
7
*
MILLIS_DAY
;
private
static
final
Long
MILLIS_MINUTE_TEN
=
20
*
60
*
1000L
;
@Autowired
private
ICacheService
cacheService
;
/**
* 获取信息
*
* @return 用户信息
*/
@Override
public
IUser
getLoginUser
(
HttpServletRequest
request
)
{
// 获取请求携带的令牌
String
token
=
getToken
(
request
);
if
(
StringUtils
.
isNotEmpty
(
token
))
{
try
{
Claims
claims
=
parseToken
(
token
);
String
uuid
=
(
String
)
claims
.
get
(
SysConstains
.
LOGIN_USER_KEY
);
String
userKey
=
getTokenKey
(
uuid
);
cacheService
.
select
(
portalDb
);
String
userStr
=
cacheService
.
get
(
userKey
);
cacheService
.
select
(
db
);
if
(
StringUtils
.
isNotEmpty
(
userStr
))
{
JSONObject
userObj
=
JSON
.
parseObject
(
userStr
);
Long
userId
=
userObj
.
getLongValue
(
"id"
);
Integer
userType
=
userObj
.
getIntValue
(
"userType"
);
Long
customerId
=
userObj
.
getLongValue
(
"customerId"
);
Long
siteId
=
userObj
.
getLongValue
(
"siteId"
);
Long
loginTime
=
userObj
.
getLongValue
(
"loginTime"
);
Long
expireTime
=
userObj
.
getLongValue
(
"expireTime"
);
String
loginName
=
userObj
.
getString
(
"loginName"
);
String
realName
=
userObj
.
getString
(
"realName"
);
String
siteIds
=
userObj
.
getString
(
"siteIds"
);
String
menuUrl
=
userObj
.
getString
(
"menuUrl"
);
Boolean
isManager
=
userObj
.
getBoolean
(
"manager"
);
Boolean
isSystemUser
=
userObj
.
getBoolean
(
"systemUser"
);
return
new
IUser
()
{
@Override
public
Long
getId
()
{
return
userId
;
}
@Override
public
Long
getDeptId
()
{
return
null
;
}
@Override
public
String
getDeptName
()
{
return
null
;
}
@Override
public
Long
getCustomerId
()
{
return
customerId
;
}
@Override
public
Long
getSiteId
()
{
return
siteId
;
}
@Override
public
String
getSiteIds
()
{
return
siteIds
;
}
@Override
public
Long
getCustomerJoinId
()
{
return
null
;
}
@Override
public
String
getCustomerNum
()
{
return
null
;
}
@Override
public
String
getLoginName
()
{
return
loginName
;
}
@Override
public
String
getRealName
()
{
return
realName
;
}
@Override
public
boolean
isAdmin
()
{
return
userId
==
1L
;
}
@Override
public
boolean
isSystemUser
()
{
return
isSystemUser
;
}
@Override
public
boolean
isManager
()
{
return
isManager
;
}
@Override
public
Integer
getUserType
()
{
return
userType
;
}
@Override
public
String
getToken
()
{
return
token
;
}
@Override
public
Long
getLoginTime
()
{
return
loginTime
;
}
@Override
public
Long
getExpireTime
()
{
return
expireTime
;
}
@Override
public
void
setExpireTime
(
Long
expireTime
)
{
}
@Override
public
String
getMenuUrl
()
{
return
menuUrl
;
}
};
}
// return cacheService.get(userKey, IUser.class);
}
catch
(
Exception
e
)
{
log
.
error
(
"解析jwt token异常!"
,
e
);
return
null
;
}
}
return
null
;
}
/**
* 设置用户信息
*/
@Override
public
void
setUser
(
IUser
user
)
{
if
(
StringUtils
.
isNotNull
(
user
)
&&
StringUtils
.
isNotEmpty
(
user
.
getToken
()))
{
refreshToken
(
user
);
}
}
/**
* 删除用户身份信息
*/
@Override
public
void
delUser
(
String
token
)
{
if
(
StringUtils
.
isNotEmpty
(
token
))
{
String
userKey
=
getTokenKey
(
token
);
cacheService
.
del
(
userKey
);
}
}
/**
* 创建令牌
*
* @param user 用户信息
* @return 令牌
*/
@Override
public
String
createToken
(
IUser
user
)
{
// String token = IdUtil.fastSimpleUUID();
// user.setToken(token);
refreshToken
(
user
);
Map
<
String
,
Object
>
claims
=
new
HashMap
<>();
claims
.
put
(
SysConstains
.
LOGIN_USER_KEY
,
user
.
getToken
());
return
createToken
(
claims
);
}
/**
* 验证令牌有效期,相差不足20分钟,自动刷新缓存
*
* @param user
* @return 令牌
*/
@Override
public
void
verifyToken
(
IUser
user
)
{
long
expireTime
=
user
.
getExpireTime
();
long
currentTime
=
System
.
currentTimeMillis
();
if
(
expireTime
-
currentTime
<=
MILLIS_MINUTE_TEN
)
{
log
.
info
(
"不足十分钟,刷新过期时间"
);
refreshToken
(
user
);
}
}
/**
* 刷新令牌有效期
*
* @param user 信息
*/
public
void
refreshToken
(
IUser
user
)
{
//user.setLoginTime(System.currentTimeMillis());
user
.
setExpireTime
(
user
.
getLoginTime
()
==
null
?
System
.
currentTimeMillis
()
:
user
.
getLoginTime
()
+
expireTime
*
MILLIS_MINUTE
);
// 根据uuid将user缓存
String
userKey
=
getTokenKey
(
user
.
getToken
());
//设置有效时间 单位秒
cacheService
.
setnx
(
userKey
,
user
,
expireTime
*
MILLIS_MINUTE
);
}
/**
* 从数据声明生成令牌
*
* @param claims 数据声明
* @return 令牌
*/
private
String
createToken
(
Map
<
String
,
Object
>
claims
)
{
String
token
=
Jwts
.
builder
()
.
setExpiration
(
DateUtils
.
addCurrDate
(
7
))
.
setClaims
(
claims
)
.
signWith
(
SignatureAlgorithm
.
HS256
,
Base64
.
getEncoder
()
.
encodeToString
(
secret
.
getBytes
())).
compact
();
return
token
;
}
/**
* 从令牌中获取数据声明
*
* @param token 令牌
* @return 数据声明
*/
@Override
public
Claims
parseToken
(
String
token
)
{
return
Jwts
.
parser
()
.
setSigningKey
(
Base64
.
getEncoder
().
encodeToString
(
secret
.
getBytes
()))
.
parseClaimsJws
(
token
)
.
getBody
();
}
/**
* 从令牌中获取用户
*
* @param token 令牌
* @return 用户名
*/
@Override
public
String
getUserNumFromToken
(
String
token
)
{
Claims
claims
=
parseToken
(
token
);
return
claims
.
getSubject
();
}
/**
* 获取请求token
*
* @param request
* @return token
*/
@Override
public
String
getToken
(
HttpServletRequest
request
)
{
String
token
=
request
.
getHeader
(
header
);
if
(
StringUtils
.
isNotEmpty
(
token
)
&&
token
.
startsWith
(
tokenPrefix
))
{
token
=
token
.
replace
(
tokenPrefix
,
""
);
}
return
token
;
}
private
String
getTokenKey
(
String
uuid
)
{
return
SysConstains
.
LOGIN_TOKEN_KEY
+
uuid
;
}
}
device-manager/src/main/java/com/mortals/xhx/busiz/web/DeviceApiController.java
View file @
2adadaf6
...
...
@@ -521,6 +521,11 @@ public class DeviceApiController {
deviceStop
(
req
);
break
;
}
}
catch
(
AppException
e
)
{
log
.
error
(
"接收数据失败"
,
e
);
rsp
.
setCode
(
e
.
getCode
());
rsp
.
setMsg
(
e
.
getMessage
());
return
JSON
.
toJSONString
(
rsp
);
}
catch
(
Exception
e
)
{
log
.
error
(
"接收数据失败"
,
e
);
rsp
.
setCode
(
ApiRespCodeEnum
.
FAILED
.
getValue
());
...
...
@@ -607,7 +612,7 @@ public class DeviceApiController {
deviceEntity
.
setUpdateUserId
(
1L
);
deviceEntity
.
setUpdateTime
(
new
Date
());
deviceEntity
.
setSwitchSend
(
false
);
deviceService
.
sav
e
(
deviceEntity
);
deviceService
.
updat
e
(
deviceEntity
);
}
...
...
device-manager/src/main/java/com/mortals/xhx/common/utils/DownMsgTask.java
View file @
2adadaf6
...
...
@@ -71,7 +71,7 @@ public class DownMsgTask implements Runnable {
header
.
put
(
MessageHeader
.
MESSAGETYPE
,
item
.
getMessageType
());
header
.
put
(
MessageHeader
.
DEVICECODE
,
item
.
getDeviceCode
());
header
.
put
(
MessageHeader
.
TIMESTAMP
,
item
.
getTimestamp
().
toString
());
deviceService
.
sendDeviceMessage
(
deviceEntity
,
info
,
header
,
JSON
.
toJSONString
(
item
.
getData
()
),
null
);
deviceService
.
sendDeviceMessage
(
deviceEntity
,
info
,
header
,
item
.
getData
(
),
null
);
//下行业务消息保存日志
if
(!
Constant
.
MESSAGETYPE_HEARTBEAT
.
equals
(
item
.
getMessageType
()))
{
...
...
device-manager/src/main/resources/bootstrap.yml
View file @
2adadaf6
...
...
@@ -27,7 +27,7 @@ spring:
port
:
@
profiles.redis.port@
username
:
@
profiles.redis.username@
password
:
@
profiles.redis.password@
database
:
@
profiles.redis.database@
database
:
@
profiles.redis.database@
timeout
:
30000
pool
:
max-idle
:
30
...
...
@@ -121,18 +121,3 @@ queue:
x-message-ttl
:
86400000
x-max-length-bytes
:
1048576000
# token配置
token
:
# 令牌自定义标识
header
:
Authorization
# 令牌密钥
secret
:
026db82420614469897fcc2dc1b4ce38
# 令牌有效期(一天)
expireTime
:
1440
# 令牌前缀
prefix
:
# 基础服务平台用户名与密码
baseplatform
:
httpUrl
:
http://192.168.0.98:11071/base/
loginName
:
admin
password
:
admin
doc/api.md
View file @
2adadaf6
...
...
@@ -130,6 +130,7 @@ deviceInfo|Object|设备基础信息|-
 
productId|Long|设备产品类型Id|-
 
productName|String|设备产品类型|-
 
enabled|Integer|设备启用状态 (0.停止,1.启用)|-
 
source|Integer|设备来源,默认1(0.旧设备,1.新设备)|-
**响应消息样例:**
...
...
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