Commit c6b5d9688bac5fcd43932a0f179f49fed9e62ce2

Authored by 王通
1 parent 283c54a3

1.CSP变更

src/main/java/com/bsth/filter/AccessLogFilter.java
1 -package com.bsth.filter;  
2 -  
3 -import com.alibaba.fastjson.JSON;  
4 -import com.bsth.entity.sys.SysUser;  
5 -import com.bsth.security.util.SecurityUtils;  
6 -import com.bsth.util.IpUtils;  
7 -import com.google.common.collect.Lists;  
8 -import com.google.common.collect.Maps;  
9 -import org.slf4j.Logger;  
10 -import org.slf4j.LoggerFactory;  
11 -import org.springframework.stereotype.Component;  
12 -  
13 -import javax.servlet.FilterChain;  
14 -import javax.servlet.ServletException;  
15 -import javax.servlet.http.HttpServletRequest;  
16 -import javax.servlet.http.HttpServletResponse;  
17 -import java.io.IOException;  
18 -import java.util.Enumeration;  
19 -import java.util.List;  
20 -import java.util.Map;  
21 -  
22 -/**  
23 - *  
24 - * @ClassName: AccessLogFilter  
25 - * @Description: TODO(记录访问日志)  
26 - * @author PanZhao  
27 - * @date 2016年3月17日 下午4:28:31  
28 - *  
29 - */  
30 -@Component  
31 -public class AccessLogFilter extends BaseFilter {  
32 -  
33 - Logger logger = LoggerFactory.getLogger(this.getClass());  
34 -  
35 - @Override  
36 - public void doFilter(HttpServletRequest request,  
37 - HttpServletResponse response, FilterChain chain)  
38 - throws IOException, ServletException {  
39 -  
40 - response.setHeader("Referrer-Policy", "strict-origin-when-cross-origin");  
41 - response.setHeader("Content-Security-Policy", "script-src * 'unsafe-inline' 'unsafe-eval'");  
42 - response.setHeader("X-Download-Options", "noopen");  
43 - response.setHeader("X-Permitted-Cross-Domain-Policies", "none");  
44 - response.setHeader("X-Frame-Options", "sameorigin");  
45 - SysUser user = null;  
46 - if (request.getParameter("token") != null) {  
47 - user = new SysUser();  
48 - user.setUserName("admin");  
49 - } else {  
50 - user = SecurityUtils.getCurrentUser();  
51 - }  
52 - String username = user.getUserName();  
53 - String name = user.getName();  
54 - String jsessionId = request.getRequestedSessionId();  
55 - String ip = IpUtils.getIpAddr(request);  
56 - String userAgent = request.getHeader("User-Agent");  
57 - String url = request.getRequestURI();  
58 - String params = getParams(request);  
59 - String headers = getHeaders(request);  
60 - String method = request.getMethod();  
61 -  
62 - StringBuilder s = new StringBuilder();  
63 - s.append(getBlock(username + " -" + name));  
64 - s.append(getBlock(jsessionId));  
65 - s.append(getBlock(ip));  
66 - s.append(getBlock(userAgent));  
67 - s.append(getBlock(url));  
68 - s.append(getBlock(method));  
69 - s.append(getBlock(params));  
70 - s.append(getBlock(headers));  
71 - s.append(getBlock(request.getHeader("Referer")));  
72 -  
73 - long now = System.currentTimeMillis();  
74 - chain.doFilter(request, response);  
75 - s.append("<cost time:").append(System.currentTimeMillis() - now).append(">");  
76 - logger.info(s.toString());  
77 - }  
78 -  
79 - private static String getParams(HttpServletRequest request) {  
80 - Map<String, String[]> params = request.getParameterMap();  
81 - return JSON.toJSONString(params);  
82 - }  
83 -  
84 - private static String getHeaders(HttpServletRequest request) {  
85 - Map<String, List<String>> headers = Maps.newHashMap();  
86 - Enumeration<String> namesEnumeration = request.getHeaderNames();  
87 - while (namesEnumeration.hasMoreElements()) {  
88 - String name = namesEnumeration.nextElement();  
89 - Enumeration<String> valueEnumeration = request.getHeaders(name);  
90 - List<String> values = Lists.newArrayList();  
91 - while (valueEnumeration.hasMoreElements()) {  
92 - values.add(valueEnumeration.nextElement());  
93 - }  
94 - headers.put(name, values);  
95 - }  
96 - return JSON.toJSONString(headers);  
97 - }  
98 -  
99 - public static String getBlock(Object msg) {  
100 - if (msg == null) {  
101 - msg = "";  
102 - }  
103 - return "[" + msg.toString() + "]";  
104 - }  
105 -} 1 +package com.bsth.filter;
  2 +
  3 +import com.alibaba.fastjson.JSON;
  4 +import com.bsth.entity.sys.SysUser;
  5 +import com.bsth.security.util.SecurityUtils;
  6 +import com.bsth.util.IpUtils;
  7 +import com.google.common.collect.Lists;
  8 +import com.google.common.collect.Maps;
  9 +import org.slf4j.Logger;
  10 +import org.slf4j.LoggerFactory;
  11 +import org.springframework.stereotype.Component;
  12 +
  13 +import javax.servlet.FilterChain;
  14 +import javax.servlet.ServletException;
  15 +import javax.servlet.http.HttpServletRequest;
  16 +import javax.servlet.http.HttpServletResponse;
  17 +import java.io.IOException;
  18 +import java.util.Enumeration;
  19 +import java.util.List;
  20 +import java.util.Map;
  21 +
  22 +/**
  23 + *
  24 + * @ClassName: AccessLogFilter
  25 + * @Description: TODO(记录访问日志)
  26 + * @author PanZhao
  27 + * @date 2016年3月17日 下午4:28:31
  28 + *
  29 + */
  30 +@Component
  31 +public class AccessLogFilter extends BaseFilter {
  32 +
  33 + Logger logger = LoggerFactory.getLogger(this.getClass());
  34 +
  35 + @Override
  36 + public void doFilter(HttpServletRequest request,
  37 + HttpServletResponse response, FilterChain chain)
  38 + throws IOException, ServletException {
  39 +
  40 + response.setHeader("Referrer-Policy", "strict-origin-when-cross-origin");
  41 + //response.setHeader("Content-Security-Policy", "script-src * 'unsafe-inline' 'unsafe-eval'");
  42 + response.setHeader("X-Download-Options", "noopen");
  43 + response.setHeader("X-Permitted-Cross-Domain-Policies", "none");
  44 + response.setHeader("X-Frame-Options", "sameorigin");
  45 + SysUser user = null;
  46 + if (request.getParameter("token") != null) {
  47 + user = new SysUser();
  48 + user.setUserName("admin");
  49 + } else {
  50 + user = SecurityUtils.getCurrentUser();
  51 + }
  52 + String username = user.getUserName();
  53 + String name = user.getName();
  54 + String jsessionId = request.getRequestedSessionId();
  55 + String ip = IpUtils.getIpAddr(request);
  56 + String userAgent = request.getHeader("User-Agent");
  57 + String url = request.getRequestURI();
  58 + String params = getParams(request);
  59 + String headers = getHeaders(request);
  60 + String method = request.getMethod();
  61 +
  62 + StringBuilder s = new StringBuilder();
  63 + s.append(getBlock(username + " -" + name));
  64 + s.append(getBlock(jsessionId));
  65 + s.append(getBlock(ip));
  66 + s.append(getBlock(userAgent));
  67 + s.append(getBlock(url));
  68 + s.append(getBlock(method));
  69 + s.append(getBlock(params));
  70 + s.append(getBlock(headers));
  71 + s.append(getBlock(request.getHeader("Referer")));
  72 +
  73 + long now = System.currentTimeMillis();
  74 + chain.doFilter(request, response);
  75 + s.append("<cost time:").append(System.currentTimeMillis() - now).append(">");
  76 + logger.info(s.toString());
  77 + }
  78 +
  79 + private static String getParams(HttpServletRequest request) {
  80 + Map<String, String[]> params = request.getParameterMap();
  81 + return JSON.toJSONString(params);
  82 + }
  83 +
  84 + private static String getHeaders(HttpServletRequest request) {
  85 + Map<String, List<String>> headers = Maps.newHashMap();
  86 + Enumeration<String> namesEnumeration = request.getHeaderNames();
  87 + while (namesEnumeration.hasMoreElements()) {
  88 + String name = namesEnumeration.nextElement();
  89 + Enumeration<String> valueEnumeration = request.getHeaders(name);
  90 + List<String> values = Lists.newArrayList();
  91 + while (valueEnumeration.hasMoreElements()) {
  92 + values.add(valueEnumeration.nextElement());
  93 + }
  94 + headers.put(name, values);
  95 + }
  96 + return JSON.toJSONString(headers);
  97 + }
  98 +
  99 + public static String getBlock(Object msg) {
  100 + if (msg == null) {
  101 + msg = "";
  102 + }
  103 + return "[" + msg.toString() + "]";
  104 + }
  105 +}