|
@@ -13,8 +13,6 @@ import java.io.BufferedReader;
|
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
|
import java.io.InputStreamReader;
|
|
import java.io.InputStreamReader;
|
|
|
import java.net.URLDecoder;
|
|
import java.net.URLDecoder;
|
|
|
-import java.util.HashMap;
|
|
|
|
|
-import java.util.Map;
|
|
|
|
|
|
|
|
|
|
@Component
|
|
@Component
|
|
|
public class RequestFilter implements Filter {
|
|
public class RequestFilter implements Filter {
|
|
@@ -26,47 +24,56 @@ public class RequestFilter implements Filter {
|
|
|
@Override
|
|
@Override
|
|
|
public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {
|
|
public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {
|
|
|
try{
|
|
try{
|
|
|
- HttpServletRequest httpRequest = (HttpServletRequest)request;
|
|
|
|
|
- //获取参数,并校验
|
|
|
|
|
- Cookie[] cookies = httpRequest.getCookies();
|
|
|
|
|
- String userId = httpRequest.getHeader("userId");
|
|
|
|
|
- String userName = httpRequest.getHeader("userName");
|
|
|
|
|
- //获取cookie用户数据
|
|
|
|
|
- for (Cookie cookie : cookies) {
|
|
|
|
|
- if (cookie.getName().equals("userId") && (userId==null || userId.equals(""))) {
|
|
|
|
|
- userId = cookie.getValue();
|
|
|
|
|
- }else if(cookie.getName().equals("userName") && (userName==null || userName.equals(""))){
|
|
|
|
|
- userName = URLDecoder.decode(cookie.getValue(),"utf-8");
|
|
|
|
|
- }else if(!(userId==null || userId.equals("")) && !(userName==null || userName.equals(""))){
|
|
|
|
|
- //都查到了,退出
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- httpRequest.setAttribute("userId",userId);
|
|
|
|
|
- httpRequest.setAttribute("userName", userName);
|
|
|
|
|
- //获取RequestBody数据
|
|
|
|
|
- BufferedReader streamReader = new BufferedReader( new InputStreamReader(request.getInputStream(), "UTF-8"));
|
|
|
|
|
- StringBuilder strBuilder = new StringBuilder();
|
|
|
|
|
- String inputStr;
|
|
|
|
|
- while ((inputStr = streamReader.readLine()) != null) {
|
|
|
|
|
- strBuilder.append(inputStr);
|
|
|
|
|
- }
|
|
|
|
|
- if(strBuilder!=null && !"".equals(strBuilder.toString())){
|
|
|
|
|
- //有请求体则写入userId和userName,保存
|
|
|
|
|
- JSONObject params = JSONObject.parseObject(strBuilder.toString());
|
|
|
|
|
- params.put("userId",userId);
|
|
|
|
|
- params.put("userName",userName);
|
|
|
|
|
- //将新的RequestBody写入新的请求对象保存
|
|
|
|
|
- ServletRequest requestWrapper = new RequestWrapper(httpRequest, params.toJSONString());
|
|
|
|
|
- chain.doFilter(requestWrapper, response);
|
|
|
|
|
- }else{
|
|
|
|
|
- chain.doFilter(request, response);
|
|
|
|
|
- }
|
|
|
|
|
- }catch (Exception e){
|
|
|
|
|
- e.printStackTrace();
|
|
|
|
|
- log.error(e.getStackTrace());
|
|
|
|
|
- chain.doFilter(request, response);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ HttpServletRequest httpRequest = (HttpServletRequest) request;
|
|
|
|
|
+ //获取参数,并校验
|
|
|
|
|
+ Cookie[] cookies = httpRequest.getCookies();
|
|
|
|
|
+ String userId = httpRequest.getHeader("userid");
|
|
|
|
|
+ String userName = httpRequest.getHeader("username");
|
|
|
|
|
+ String orgCode = httpRequest.getHeader("orgCode");
|
|
|
|
|
+ //获取cookie用户数据
|
|
|
|
|
+ if (cookies != null && cookies.length > 0) {
|
|
|
|
|
+ for (Cookie cookie : cookies) {
|
|
|
|
|
+ if (cookie.getName().equals("userId") && userId == null) {
|
|
|
|
|
+ userId = cookie.getValue();
|
|
|
|
|
+ } else if (cookie.getName().equals("userName") && userName == null) {
|
|
|
|
|
+ userName = URLDecoder.decode(cookie.getValue(), "utf-8");
|
|
|
|
|
+ } else if (cookie.getName().equals("orgCode") && orgCode == null) {
|
|
|
|
|
+ orgCode = URLDecoder.decode(cookie.getValue(), "utf-8");
|
|
|
|
|
+ } else if (userId != null && userName != null && orgCode != null) {
|
|
|
|
|
+ //都查到了,退出
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ userName = URLDecoder.decode(userName, "utf-8");
|
|
|
|
|
+ orgCode = URLDecoder.decode(orgCode, "utf-8");
|
|
|
|
|
+ httpRequest.setAttribute("userId", userId);
|
|
|
|
|
+ httpRequest.setAttribute("userName", userName);
|
|
|
|
|
+ httpRequest.setAttribute("orgCode", orgCode);
|
|
|
|
|
+ //获取RequestBody数据
|
|
|
|
|
+ BufferedReader streamReader = new BufferedReader(new InputStreamReader(request.getInputStream(), "UTF-8"));
|
|
|
|
|
+ StringBuilder strBuilder = new StringBuilder();
|
|
|
|
|
+ String inputStr;
|
|
|
|
|
+ while ((inputStr = streamReader.readLine()) != null) {
|
|
|
|
|
+ strBuilder.append(inputStr);
|
|
|
|
|
+ }
|
|
|
|
|
+ if (strBuilder != null && !"".equals(strBuilder.toString())) {
|
|
|
|
|
+ //有请求体则写入userId和userName,保存
|
|
|
|
|
+ JSONObject params = JSONObject.parseObject(strBuilder.toString());
|
|
|
|
|
+ params.put("userId", userId);
|
|
|
|
|
+ params.put("userName", userName);
|
|
|
|
|
+ params.put("orgCode", orgCode);
|
|
|
|
|
+ //将新的RequestBody写入新的请求对象保存
|
|
|
|
|
+ ServletRequest requestWrapper = new RequestWrapper(httpRequest, params.toJSONString());
|
|
|
|
|
+ chain.doFilter(requestWrapper, response);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ chain.doFilter(request, response);
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ e.printStackTrace();
|
|
|
|
|
+ log.error(e.getStackTrace());
|
|
|
|
|
+ chain.doFilter(request, response);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
@Override
|
|
@Override
|
|
|
public void init(FilterConfig arg0) throws ServletException {}
|
|
public void init(FilterConfig arg0) throws ServletException {}
|