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
3c570dbb
authored
Sep 25, 2023
by
huangjy
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
fix:接口报错问题
parent
c7d42fe0
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
111 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-api/src/main/java/com/makeit/api/external/filter/MyRequestWrapper.java
deleted
100644 → 0
View file @
c7d42fe0
//package com.makeit.api.external.filter;
//
//import org.apache.commons.io.IOUtils;
//
//import javax.servlet.ReadListener;
//import javax.servlet.ServletInputStream;
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletRequestWrapper;
//import java.io.BufferedReader;
//import java.io.IOException;
//import java.io.InputStreamReader;
//
///**
// * @Description: 解决request.getInputStream()只能读取一次的问题
// * @PackageName: net.dlet.dhdemo.utils.dhutils
// * @Name: MyRequestWrapper
// * @Author: cure
// * @CreateDate: 2020/09/06 4:44
// * @ModifyUser:
// * @ModifyDate:
// * @ModifyDesc: 修改内容
// * @DayNameFull: 星期日
// * @ProjectName: dhdemo
// * @Version: 1.0
// **/
//public class MyRequestWrapper extends HttpServletRequestWrapper {
//
// private volatile byte[] body;
//
// public MyRequestWrapper(HttpServletRequest request) throws IOException {
// super(request);
// body = IOUtils.toByteArray(super.getInputStream());
// }
//
// public byte[] getBody() {
// return body;
// }
//
// public void setBody(byte[] body) {
// this.body = body;
// }
//
// @Override
// public BufferedReader getReader() throws IOException {
// return new BufferedReader(new InputStreamReader(getInputStream()));
// }
//
// @Override
// public ServletInputStream getInputStream() throws IOException {
// return new RequestBodyCachingInputStream(body);
// }
//
// private class RequestBodyCachingInputStream extends ServletInputStream {
// private byte[] body;
// private int lastIndexRetrieved = -1;
// private ReadListener listener;
//
// public RequestBodyCachingInputStream(byte[] body) {
// this.body = body;
// }
//
// @Override
// public int read() throws IOException {
// if (isFinished()) {
// return -1;
// }
// int i = body[lastIndexRetrieved + 1];
// lastIndexRetrieved++;
// if (isFinished() && listener != null) {
// try {
// listener.onAllDataRead();
// } catch (IOException e) {
// listener.onError(e);
// throw e;
// }
// }
// return i;
// }
//
// @Override
// public boolean isFinished() {
// return lastIndexRetrieved == body.length - 1;
// }
//
// @Override
// public boolean isReady() {
// return isFinished();
// }
//
// @Override
// public void setReadListener(ReadListener listener) {
// if (listener == null) {
// throw new IllegalArgumentException("listener cann not be null");
// }
// if (this.listener != null) {
// throw new IllegalArgumentException("listener has been set");
// }
// this.listener = listener;
// if (!isFinished()) {
// try {
// listener.onAllDataRead();
// } catch (IOException e) {
// listener.onError(e);
// }
// } else {
// try {
// listener.onAllDataRead();
// } catch (IOException e) {
// listener.onError(e);
// }
// }
// }
//
// @Override
// public int available() throws IOException {
// return body.length - lastIndexRetrieved - 1;
// }
//
// @Override
// public void close() throws IOException {
// lastIndexRetrieved = body.length - 1;
// body = null;
// }
// }
//}
\ No newline at end of file
server-api/src/main/java/com/makeit/api/external/filter/RequestReplaceFilter.java
View file @
3c570dbb
//package com.makeit.api.external.filter;
/*
//
package com.makeit.api.external.filter;
//import org.springframework.stereotype.Component;
//import org.springframework.web.filter.OncePerRequestFilter;
import org.springframework.stereotype.Component;
//
import org.springframework.web.filter.OncePerRequestFilter;
//import javax.servlet.FilterChain;
//import javax.servlet.ServletException;
import javax.servlet.FilterChain;
//import javax.servlet.http.HttpServletRequest;
import javax.servlet.ServletException;
//import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletRequest;
//import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
//
import java.io.IOException;
///**
// * @Description:
*/
// * @PackageName: net.dlet.dhdemo.configure
/**
// * @Name: RequestReplaceFilter
* @Description:
// * @Author: cure
* @PackageName: net.dlet.dhdemo.configure
// * @CreateDate: 2020/09/06 4:58
* @Name: RequestReplaceFilter
// * @ModifyUser:
* @Author: cure
// * @ModifyDate:
* @CreateDate: 2020/09/06 4:58
// * @ModifyDesc: 修改内容
* @ModifyUser:
// * @DayNameFull: 星期日
* @ModifyDate:
// * @ProjectName: dhdemo
* @ModifyDesc: 修改内容
// * @Version: 1.0
* @DayNameFull: 星期日
// **/
* @ProjectName: dhdemo
//@Component
* @Version: 1.0
//public class RequestReplaceFilter extends OncePerRequestFilter {
**//*
//
// @Override
@Component
// protected void doFilterInternal(HttpServletRequest request,
public class RequestReplaceFilter extends OncePerRequestFilter {
// HttpServletResponse response,
// FilterChain filterChain) throws ServletException, IOException {
@Override
// if (!(request instanceof MyRequestWrapper)) {
protected void doFilterInternal(HttpServletRequest request,
// request = new MyRequestWrapper(request);
HttpServletResponse response,
// }
FilterChain filterChain) throws ServletException, IOException {
// filterChain.doFilter(request, response);
if (!(request instanceof MyRequestWrapper)) {
// }
request = new MyRequestWrapper(request);
//}
}
//
filterChain.doFilter(request, response);
//
}
\ No newline at end of file
}
*/
server-api/src/main/java/com/makeit/api/external/filter/SignAuthFilter.java
View file @
3c570dbb
//
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
()
{
//
//
}
}
//
//
}
}
//
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