Added oparent to sdc main
[sdc.git] / utils / webseal-simulator / src / main / java / org / openecomp / sdc / webseal / simulator / MutableHttpServletRequest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.openecomp.sdc.webseal.simulator;
22
23
24 import javax.servlet.http.HttpServletRequest;
25 import javax.servlet.http.HttpServletRequestWrapper;
26 import java.util.*;
27
28 public final class MutableHttpServletRequest extends HttpServletRequestWrapper {
29         // holds custom header and value mapping
30         private final Map<String, String> customHeaders;
31
32         public MutableHttpServletRequest(HttpServletRequest request){
33                 super(request);
34                 this.customHeaders = new HashMap<>();
35         }
36         
37         public void putHeader(String name, String value){
38                 this.customHeaders.put(name, value);
39         }
40
41         public String getHeader(String name) {
42                 // check the custom headers first
43                 String headerValue = customHeaders.get(name);
44                 
45                 if (headerValue != null){
46                         return headerValue;
47                 }
48                 // else return from into the original wrapped object
49                 return ((HttpServletRequest) getRequest()).getHeader(name);
50         }
51
52         public Enumeration<String> getHeaderNames() {
53                 // create a set of the custom header names
54                 Set<String> set = new HashSet<>(customHeaders.keySet());
55                 
56                 // now add the headers from the wrapped request object
57                 @SuppressWarnings("unchecked")
58                 Enumeration<String> e = ((HttpServletRequest) getRequest()).getHeaderNames();
59                 while (e.hasMoreElements()) {
60                         // add the names of the request headers into the list
61                         String n = e.nextElement();
62                         set.add(n);
63                 }
64
65                 // create an enumeration from the set and return
66                 return Collections.enumeration(set);
67         }
68 }
69