[英]How to get the XML from POST request and modify it in Servlet Filter?
[英]How to modify and set the post request body using servlet filter
我想對JSON請求和響應都進行一些加密/解密。為此,我選擇了servlet過濾器。但是,我不知道如何修改和設置JSON請求主體。 任何解決方案都是高度贊賞的。
您必須使用包裝器:
private static class MyRequestWrapper extends HttpServletRequestWrapper {
private ServletInputStream input;
public MyRequestWrapper(ServletRequest request) {
super((HttpServletRequest)request);
}
@Override
public ServletInputStream getInputStream() throws IOException {
if (input == null) {
input = new InputStreamDecoder(super.getInputStream());
}
return input;
}
}
private static class MyResponseWrapper extends HttpServletResponseWrapper {
private ServletOutputStream output;
public MyResponseWrapper(ServletResponse response) {
super((HttpServletResponse)response);
}
@Override
public ServletOutputStream getOutputStream() throws IOException {
if (output == null) {
output = new OutputStreamEncoder(super.getOutputStream());
}
return output;
}
public void close() throws IOException {
if (output != null) {
output.flush();
}
}
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException {
MyRequestWrapper req = new MyRequestWrapper(request);
MyResponseWrapper res = new MyResponseWrapper(response);
chain.doFilter(req, res);
res.close();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.