e0bc82e37628f828de04c77fcef4a7be7dd72e68.svn-base 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. package cn.com.goldenwater.dcproj.utils;
  2. import cn.com.goldenwater.dcproj.constValue.CommonLabel;
  3. import cn.com.goldenwater.dcproj.filter.XssFilter;
  4. import cn.com.goldenwater.dcproj.filter.XssHttpServletRequestWrapper;
  5. import net.sf.json.JSONObject;
  6. import org.apache.commons.lang3.StringUtils;
  7. import org.slf4j.Logger;
  8. import org.slf4j.LoggerFactory;
  9. import org.springframework.web.servlet.HandlerMapping;
  10. import javax.servlet.http.HttpServletRequest;
  11. import javax.servlet.http.HttpServletResponse;
  12. import java.io.IOException;
  13. import java.io.PrintWriter;
  14. import java.util.Map;
  15. public class RequestUtils {
  16. private static final Logger logger = LoggerFactory.getLogger(XssFilter.class);
  17. /**
  18. * 获取参数里面的用户id
  19. */
  20. public static String getPersId(HttpServletRequest request, HttpServletResponse response) {
  21. Map pathVariables = (Map) request.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE);
  22. String persId = "";
  23. if (pathVariables != null) {
  24. persId = pathVariables.get(CommonLabel.PERSID) != null ? (String) pathVariables.get(CommonLabel.PERSID) : (String) pathVariables.get("persid");
  25. if (StringUtils.isBlank(persId)) {//persid
  26. persId = (String) pathVariables.get("presId");
  27. }
  28. }
  29. if (StringUtils.isBlank(persId)) {
  30. persId = request.getParameter(CommonLabel.PERSID) != null ? request.getParameter(CommonLabel.PERSID) : request.getParameter("persid");
  31. }
  32. if (StringUtils.isBlank(persId)) {//persid
  33. persId = request.getParameter("userId") != null ? request.getParameter("userId") : request.getParameter("userid");
  34. }
  35. //
  36. if (StringUtils.isBlank(persId)) {
  37. String str = new XssHttpServletRequestWrapper(request, response).getBodyString(request);
  38. if (StringUtils.isNotBlank(str)) {
  39. if (str.startsWith("{")) {
  40. JSONObject jsonObject = JSONObject.fromObject(str);
  41. Map<String, Object> map = (Map<String, Object>) JSONObject.toBean(jsonObject, Map.class);
  42. for (String key : map.keySet()) {
  43. if (key.equals(CommonLabel.PERSID) || "curUserId".equals(key) || "persid".equals(key)
  44. || "presId".equals(key) || "recPers".equals(key) || "userId".equals(key) || "guid".equals(key)) {
  45. persId = map.get(key).toString();
  46. if (StringUtils.isNotBlank(persId)) {
  47. break;
  48. }
  49. }
  50. }
  51. }
  52. }
  53. //请求用户
  54. }
  55. return persId;
  56. }
  57. /**
  58. * 根据名字获取系统中的参数
  59. */
  60. public static String getParamInReq(HttpServletRequest request, HttpServletResponse response, String param) {
  61. String paramValue = request.getParameter(param);
  62. if (StringUtils.isBlank(paramValue)) {
  63. paramValue = request.getHeader(param);
  64. if (StringUtils.isBlank(paramValue)) {
  65. Map pathVariables = (Map) request.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE);
  66. paramValue = (String) pathVariables.get(param);
  67. if (StringUtils.isBlank(paramValue)) {
  68. paramValue = (String) request.getAttribute(param);
  69. if (StringUtils.isBlank(paramValue)) {
  70. String str = new XssHttpServletRequestWrapper(request, response).getBodyString(request);
  71. if (StringUtils.isNotBlank(str)) {
  72. if (str.startsWith("{")) {
  73. JSONObject jsonObject = JSONObject.fromObject(str);
  74. Map<String, Object> map = (Map<String, Object>) JSONObject.toBean(jsonObject, Map.class);
  75. for (String key : map.keySet()) {
  76. if (key.equals(param)) {
  77. paramValue = map.get(key).toString();
  78. if (StringUtils.isNotBlank(paramValue)) {
  79. break;
  80. }
  81. }
  82. }
  83. }
  84. }
  85. }
  86. }
  87. }
  88. }
  89. return paramValue;
  90. }
  91. public static String cleanScript(String input) {
  92. /* if (
  93. (input.contains(" ' ") && input.contains(" + "))
  94. || (input.contains(" ' ") && input.contains(" and "))//多重条件
  95. || (input.contains("window") && input.contains("location"))
  96. *//*|| (input.contains("'") && input.contains("or"))*//*
  97. )
  98. {
  99. logger.info("lanjie==error-333:xss =====================" + input + "=====================error-333:xss");
  100. return "error-333:xss";
  101. }
  102. //单个条件
  103. if (
  104. // input.toLowerCase().contains("script")||
  105. input.toLowerCase().contains("iframe")
  106. || input.contains("onkey")
  107. || input.contains("onclick")
  108. *//*|| input.toLowerCase().contains("javascript") *//*
  109. || input.toLowerCase().contains("alert")
  110. || input.contains(".jsp")
  111. *//*|| input.contains("';")*//*
  112. || input.contains("eval")
  113. || input.contains("cookie")
  114. || input.contains("onload")
  115. *//* || input.contains("''")
  116. || input.contains(" + ")*//*
  117. || input.contains(".js")
  118. || input.contains(".css")
  119. || input.toLowerCase().contains("expression")
  120. || input.contains("onmouse")) {
  121. logger.info("lanjie===error-333:======================" + input + "=====================error-333");
  122. return "error-333:";
  123. }*/
  124. return input;
  125. }
  126. }