Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
黄嘉阳
/
iot-platform-server
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
fec21403
authored
Sep 25, 2023
by
杨伟程
Browse files
Options
_('Browse Files')
Download
Plain Diff
Merge branch 'dev' of
http://git.xmmakeit.com/huangjiay/iot-platform-server
into dev
parents
825cf87d
226c869e
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
238 additions
and
235 deletions
server-api/src/main/java/com/makeit/api/external/filter/MyRequestWrapper.java
server-api/src/main/java/com/makeit/api/external/filter/RequestReplaceFilter.java
server-api/src/main/java/com/makeit/api/external/filter/SignAuthFilter.java
server-common/src/main/java/com/makeit/module/iot/vo/DeviceProperties.java
server-service/src/main/java/com/makeit/service/platform/device/impl/PlatDeviceServiceImpl.java
server-api/src/main/java/com/makeit/api/external/filter/MyRequestWrapper.java
View file @
fec21403
package
com
.
makeit
.
api
.
external
.
filter
;
//package com.makeit.api.external.filter;
//
import
org.apache.commons.io.IOUtils
;
//import org.apache.commons.io.IOUtils;
//
import
javax.servlet.ReadListener
;
//import javax.servlet.ReadListener;
import
javax.servlet.ServletInputStream
;
//import javax.servlet.ServletInputStream;
import
javax.servlet.http.HttpServletRequest
;
//import javax.servlet.http.HttpServletRequest;
import
javax.servlet.http.HttpServletRequestWrapper
;
//import javax.servlet.http.HttpServletRequestWrapper;
import
java.io.BufferedReader
;
//import java.io.BufferedReader;
import
java.io.IOException
;
//import java.io.IOException;
import
java.io.InputStreamReader
;
//import java.io.InputStreamReader;
//
/**
///**
* @Description: 解决request.getInputStream()只能读取一次的问题
// * @Description: 解决request.getInputStream()只能读取一次的问题
* @PackageName: net.dlet.dhdemo.utils.dhutils
// * @PackageName: net.dlet.dhdemo.utils.dhutils
* @Name: MyRequestWrapper
// * @Name: MyRequestWrapper
* @Author: cure
// * @Author: cure
* @CreateDate: 2020/09/06 4:44
// * @CreateDate: 2020/09/06 4:44
* @ModifyUser:
// * @ModifyUser:
* @ModifyDate:
// * @ModifyDate:
* @ModifyDesc: 修改内容
// * @ModifyDesc: 修改内容
* @DayNameFull: 星期日
// * @DayNameFull: 星期日
* @ProjectName: dhdemo
// * @ProjectName: dhdemo
* @Version: 1.0
// * @Version: 1.0
**/
// **/
public
class
MyRequestWrapper
extends
HttpServletRequestWrapper
{
//public class MyRequestWrapper extends HttpServletRequestWrapper {
//
private
volatile
byte
[]
body
;
// private volatile byte[] body;
//
public
MyRequestWrapper
(
HttpServletRequest
request
)
throws
IOException
{
// public MyRequestWrapper(HttpServletRequest request) throws IOException {
super
(
request
);
// super(request);
body
=
IOUtils
.
toByteArray
(
super
.
getInputStream
());
// body = IOUtils.toByteArray(super.getInputStream());
}
// }
//
public
byte
[]
getBody
()
{
// public byte[] getBody() {
return
body
;
// return body;
}
// }
//
public
void
setBody
(
byte
[]
body
)
{
// public void setBody(byte[] body) {
this
.
body
=
body
;
// this.body = body;
}
// }
//
@Override
// @Override
public
BufferedReader
getReader
()
throws
IOException
{
// public BufferedReader getReader() throws IOException {
return
new
BufferedReader
(
new
InputStreamReader
(
getInputStream
()));
// return new BufferedReader(new InputStreamReader(getInputStream()));
}
// }
//
@Override
// @Override
public
ServletInputStream
getInputStream
()
throws
IOException
{
// public ServletInputStream getInputStream() throws IOException {
return
new
RequestBodyCachingInputStream
(
body
);
// return new RequestBodyCachingInputStream(body);
}
// }
//
private
class
RequestBodyCachingInputStream
extends
ServletInputStream
{
// private class RequestBodyCachingInputStream extends ServletInputStream {
private
byte
[]
body
;
// private byte[] body;
private
int
lastIndexRetrieved
=
-
1
;
// private int lastIndexRetrieved = -1;
private
ReadListener
listener
;
// private ReadListener listener;
//
public
RequestBodyCachingInputStream
(
byte
[]
body
)
{
// public RequestBodyCachingInputStream(byte[] body) {
this
.
body
=
body
;
// this.body = body;
}
// }
//
@Override
// @Override
public
int
read
()
throws
IOException
{
// public int read() throws IOException {
if
(
isFinished
())
{
// if (isFinished()) {
return
-
1
;
// return -1;
}
// }
int
i
=
body
[
lastIndexRetrieved
+
1
];
// int i = body[lastIndexRetrieved + 1];
lastIndexRetrieved
++;
// lastIndexRetrieved++;
if
(
isFinished
()
&&
listener
!=
null
)
{
// if (isFinished() && listener != null) {
try
{
// try {
listener
.
onAllDataRead
();
// listener.onAllDataRead();
}
catch
(
IOException
e
)
{
// } catch (IOException e) {
listener
.
onError
(
e
);
// listener.onError(e);
throw
e
;
// throw e;
}
// }
}
// }
return
i
;
// return i;
}
// }
//
@Override
// @Override
public
boolean
isFinished
()
{
// public boolean isFinished() {
return
lastIndexRetrieved
==
body
.
length
-
1
;
// return lastIndexRetrieved == body.length - 1;
}
// }
//
@Override
// @Override
public
boolean
isReady
()
{
// public boolean isReady() {
return
isFinished
();
// return isFinished();
}
// }
//
@Override
// @Override
public
void
setReadListener
(
ReadListener
listener
)
{
// public void setReadListener(ReadListener listener) {
if
(
listener
==
null
)
{
// if (listener == null) {
throw
new
IllegalArgumentException
(
"listener cann not be null"
);
// throw new IllegalArgumentException("listener cann not be null");
}
// }
if
(
this
.
listener
!=
null
)
{
// if (this.listener != null) {
throw
new
IllegalArgumentException
(
"listener has been set"
);
// throw new IllegalArgumentException("listener has been set");
}
// }
this
.
listener
=
listener
;
// this.listener = listener;
if
(!
isFinished
())
{
// if (!isFinished()) {
try
{
// try {
listener
.
onAllDataRead
();
// listener.onAllDataRead();
}
catch
(
IOException
e
)
{
// } catch (IOException e) {
listener
.
onError
(
e
);
// listener.onError(e);
}
// }
}
else
{
// } else {
try
{
// try {
listener
.
onAllDataRead
();
// listener.onAllDataRead();
}
catch
(
IOException
e
)
{
// } catch (IOException e) {
listener
.
onError
(
e
);
// listener.onError(e);
}
// }
}
// }
}
// }
//
@Override
// @Override
public
int
available
()
throws
IOException
{
// public int available() throws IOException {
return
body
.
length
-
lastIndexRetrieved
-
1
;
// return body.length - lastIndexRetrieved - 1;
}
// }
//
@Override
// @Override
public
void
close
()
throws
IOException
{
// public void close() throws IOException {
lastIndexRetrieved
=
body
.
length
-
1
;
// lastIndexRetrieved = body.length - 1;
body
=
null
;
// body = null;
}
// }
}
// }
}
//}
\ No newline at end of file
\ No newline at end of file
server-api/src/main/java/com/makeit/api/external/filter/RequestReplaceFilter.java
View file @
fec21403
package
com
.
makeit
.
api
.
external
.
filter
;
//package com.makeit.api.external.filter;
//
import
org.springframework.stereotype.Component
;
//import org.springframework.stereotype.Component;
import
org.springframework.web.filter.OncePerRequestFilter
;
//import org.springframework.web.filter.OncePerRequestFilter;
//
import
javax.servlet.FilterChain
;
//import javax.servlet.FilterChain;
import
javax.servlet.ServletException
;
//import javax.servlet.ServletException;
import
javax.servlet.http.HttpServletRequest
;
//import javax.servlet.http.HttpServletRequest;
import
javax.servlet.http.HttpServletResponse
;
//import javax.servlet.http.HttpServletResponse;
import
java.io.IOException
;
//import java.io.IOException;
//
/**
///**
* @Description:
// * @Description:
* @PackageName: net.dlet.dhdemo.configure
// * @PackageName: net.dlet.dhdemo.configure
* @Name: RequestReplaceFilter
// * @Name: RequestReplaceFilter
* @Author: cure
// * @Author: cure
* @CreateDate: 2020/09/06 4:58
// * @CreateDate: 2020/09/06 4:58
* @ModifyUser:
// * @ModifyUser:
* @ModifyDate:
// * @ModifyDate:
* @ModifyDesc: 修改内容
// * @ModifyDesc: 修改内容
* @DayNameFull: 星期日
// * @DayNameFull: 星期日
* @ProjectName: dhdemo
// * @ProjectName: dhdemo
* @Version: 1.0
// * @Version: 1.0
**/
// **/
@Component
//@Component
public
class
RequestReplaceFilter
extends
OncePerRequestFilter
{
//public class RequestReplaceFilter extends OncePerRequestFilter {
//
@Override
// @Override
protected
void
doFilterInternal
(
HttpServletRequest
request
,
// protected void doFilterInternal(HttpServletRequest request,
HttpServletResponse
response
,
// HttpServletResponse response,
FilterChain
filterChain
)
throws
ServletException
,
IOException
{
// FilterChain filterChain) throws ServletException, IOException {
if
(!(
request
instanceof
MyRequestWrapper
))
{
// if (!(request instanceof MyRequestWrapper)) {
request
=
new
MyRequestWrapper
(
request
);
// request = new MyRequestWrapper(request);
}
// }
filterChain
.
doFilter
(
request
,
response
);
// filterChain.doFilter(request, response);
}
// }
}
//}
//
//
\ No newline at end of file
\ No newline at end of file
server-api/src/main/java/com/makeit/api/external/filter/SignAuthFilter.java
View file @
fec21403
package
com
.
makeit
.
api
.
external
.
filter
;
//
package com.makeit.api.external.filter;
//
import
com.makeit.api.external.util.RSAUtils
;
//
import com.makeit.api.external.util.RSAUtils;
import
com.makeit.utils.old.StringUtils
;
//
import com.makeit.utils.old.StringUtils;
import
org.slf4j.Logger
;
//
import org.slf4j.Logger;
import
org.slf4j.LoggerFactory
;
//
import org.slf4j.LoggerFactory;
//
import
javax.servlet.*
;
//
import javax.servlet.*;
import
javax.servlet.annotation.WebFilter
;
//
import javax.servlet.annotation.WebFilter;
import
javax.servlet.http.HttpServletRequest
;
//
import javax.servlet.http.HttpServletRequest;
import
javax.servlet.http.HttpServletResponse
;
//
import javax.servlet.http.HttpServletResponse;
import
java.io.IOException
;
//
import java.io.IOException;
import
java.nio.charset.StandardCharsets
;
//
import java.nio.charset.StandardCharsets;
//
//
@WebFilter
(
urlPatterns
=
{
"/iot/external/*"
})
//
@WebFilter(urlPatterns = { "/iot/external/*"})
public
class
SignAuthFilter
implements
Filter
{
//
public class SignAuthFilter implements Filter {
//
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
SignAuthFilter
.
class
);
//
private static Logger logger = LoggerFactory.getLogger(SignAuthFilter.class);
//
//
//
@Override
//
@Override
public
void
init
(
FilterConfig
filterConfig
)
{
//
public void init(FilterConfig filterConfig) {
}
//
}
//
@Override
//
@Override
public
void
doFilter
(
ServletRequest
req
,
ServletResponse
res
,
FilterChain
chain
)
//
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
throws
IOException
{
//
throws IOException {
HttpServletRequest
request
=
(
HttpServletRequest
)
req
;
//
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse
response
=
(
HttpServletResponse
)
res
;
//
HttpServletResponse response = (HttpServletResponse) res;
try
{
//
try {
String
sign
=
request
.
getHeader
(
"sign"
);
//
String sign = request.getHeader("sign");
if
(
StringUtils
.
isEmpty
(
sign
))
{
//
if (StringUtils.isEmpty(sign)) {
response
.
sendError
(
403
,
"Forbidden"
);
//
response.sendError(403, "Forbidden");
return
;
//
return;
}
//
}
logger
.
info
(
"getted Authorization is ---> "
+
sign
);
//
logger.info("getted Authorization is ---> " + sign);
//
// 获取客户端ip
//
// 获取客户端ip
/* String ip = IpUtil.getIpAddr(request);
/
//
* String ip = IpUtil.getIpAddr(request);
logger.info("getted ip is ---> " + ip);*/
//
logger.info("getted ip is ---> " + ip);*/
//
MyRequestWrapper
requestWrapper
=
new
MyRequestWrapper
(
request
);
//
MyRequestWrapper requestWrapper = new MyRequestWrapper(request);
String
bodyString
=
new
String
(
requestWrapper
.
getBody
(),
StandardCharsets
.
UTF_8
);
//
String bodyString = new String(requestWrapper.getBody(), StandardCharsets.UTF_8);
logger
.
info
(
"getted requestbody data is ---> "
+
bodyString
);
//
logger.info("getted requestbody data is ---> " + bodyString);
//
String
decryptJson
=
RSAUtils
.
privateDecrypt
(
sign
,
RSAUtils
.
getPrivateKey
(
RSAUtils
.
PRIVATE_KEY
),
"UTF-8"
);
//
String decryptJson = RSAUtils.privateDecrypt(sign, RSAUtils.getPrivateKey(RSAUtils.PRIVATE_KEY), "UTF-8");
//
boolean
couldPass
=
decryptJson
.
equals
(
bodyString
);
//
boolean couldPass = decryptJson.equals(bodyString);
if
(
couldPass
)
{
//
if (couldPass) {
// 放行
//
// 放行
chain
.
doFilter
(
requestWrapper
,
response
);
//
chain.doFilter(requestWrapper, response);
return
;
//
return;
}
//
}
response
.
sendError
(
403
,
"Forbidden"
);
//
response.sendError(403, "Forbidden");
}
catch
(
Exception
e
)
{
//
} catch (Exception e) {
logger
.
error
(
"验证失败: -> "
+
e
.
getMessage
(),
e
);
//
logger.error("验证失败: -> " + e.getMessage(), e);
response
.
sendError
(
403
,
"Forbidden"
);
//
response.sendError(403, "Forbidden");
}
//
}
}
//
}
//
@Override
//
@Override
public
void
destroy
()
{
//
public void destroy() {
//
}
//
}
//
}
//
}
//
server-common/src/main/java/com/makeit/module/iot/vo/DeviceProperties.java
View file @
fec21403
...
@@ -11,6 +11,8 @@ public class DeviceProperties {
...
@@ -11,6 +11,8 @@ public class DeviceProperties {
private
Integer
numberValue
;
private
Integer
numberValue
;
@ApiModelProperty
(
"属性名称"
)
@ApiModelProperty
(
"属性名称"
)
private
String
propertyName
;
private
String
propertyName
;
@ApiModelProperty
(
"属性"
)
private
String
property
;
private
Long
timestamp
;
private
Long
timestamp
;
private
String
type
;
private
String
type
;
@ApiModelProperty
(
"属性值"
)
@ApiModelProperty
(
"属性值"
)
...
...
server-service/src/main/java/com/makeit/service/platform/device/impl/PlatDeviceServiceImpl.java
View file @
fec21403
...
@@ -295,6 +295,7 @@ public class PlatDeviceServiceImpl extends ServiceImpl<PlatDeviceMapper, PlatDev
...
@@ -295,6 +295,7 @@ public class PlatDeviceServiceImpl extends ServiceImpl<PlatDeviceMapper, PlatDev
for
(
String
s
:
propertiesArr
)
{
for
(
String
s
:
propertiesArr
)
{
DeviceProperties
deviceProperties
=
devicePropertiesOperateService
.
deviceRead
(
dto
.
getDeviceId
(),
s
);
DeviceProperties
deviceProperties
=
devicePropertiesOperateService
.
deviceRead
(
dto
.
getDeviceId
(),
s
);
if
(
deviceProperties
!=
null
)
{
if
(
deviceProperties
!=
null
)
{
deviceProperties
.
setProperty
(
s
);
devicePropertiesList
.
add
(
deviceProperties
);
devicePropertiesList
.
add
(
deviceProperties
);
}
}
}
}
...
...
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