|
@@ -0,0 +1,66 @@
|
|
|
+/*
|
|
|
+ * *************************************************
|
|
|
+ * Copyright (c) 2018 QMTH. All Rights Reserved.
|
|
|
+ * Created by Deason on 2018-08-01 14:43:30.
|
|
|
+ * *************************************************
|
|
|
+ */
|
|
|
+
|
|
|
+package cn.com.qmth.examcloud.app.core.config;
|
|
|
+
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
+import javax.servlet.http.HttpServletRequestWrapper;
|
|
|
+import java.util.*;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 自定义Request Header
|
|
|
+ *
|
|
|
+ * @author: fengdesheng
|
|
|
+ * @since: 2018/8/1
|
|
|
+ */
|
|
|
+public class CustomRequestWrapper extends HttpServletRequestWrapper {
|
|
|
+ private final Set<String> names = new HashSet<>();
|
|
|
+ private final Map<String, String> headers = new HashMap<>();
|
|
|
+
|
|
|
+ public CustomRequestWrapper(HttpServletRequest request) {
|
|
|
+ super(request);
|
|
|
+ Enumeration<String> enumeration = super.getHeaderNames();
|
|
|
+ while (enumeration.hasMoreElements()) {
|
|
|
+ names.add(enumeration.nextElement());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public void addHeader(String name, String value) {
|
|
|
+ if (name == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ this.headers.put(name, value);
|
|
|
+ this.names.add(name);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String getHeader(String name) {
|
|
|
+ if (headers.containsKey(name)) {
|
|
|
+ return headers.get(name);
|
|
|
+ }
|
|
|
+ return super.getHeader(name);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Enumeration<String> getHeaders(String name) {
|
|
|
+ if (headers.containsKey(name)) {
|
|
|
+ String value = headers.get(name);
|
|
|
+ if (value != null) {
|
|
|
+ Set<String> set = new HashSet<>();
|
|
|
+ set.add(value);
|
|
|
+ return Collections.enumeration(set);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return super.getHeaders(name);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Enumeration<String> getHeaderNames() {
|
|
|
+ return Collections.enumeration(names);
|
|
|
+ }
|
|
|
+
|
|
|
+}
|