Project

General

Profile

1
package eu.dnetlib.data.search;
2

    
3
import org.apache.log4j.Logger;
4
import org.springframework.http.MediaType;
5

    
6
import javax.servlet.http.HttpServletRequest;
7
import javax.servlet.http.HttpServletRequestWrapper;
8

    
9
public class CustomHttpServletRequest extends HttpServletRequestWrapper {
10

    
11
    private Logger logger = Logger.getLogger(CustomHttpServletRequest.class);
12

    
13
    public CustomHttpServletRequest(HttpServletRequest request) {
14
        super(request);
15
    }
16

    
17
    @Override
18
    public String getHeader(String name) throws IllegalArgumentException {
19
        String format = super.getRequest().getParameter("format");
20

    
21
        if (name.equals("Accept")) {
22
            //make accept "equal to" format
23
            if (format != null && super.getHeader(name) == null) {
24
                if (format.toLowerCase().equals("xml")) {
25
                    return MediaType.APPLICATION_XML_VALUE;
26
                }
27

    
28
                if (format.toLowerCase().equals("json")) {
29
                    return MediaType.APPLICATION_JSON_VALUE;
30
                }
31
            }
32

    
33
            //Ignore accept because so far it was ignored
34
            //make accept "equal to" format
35
            if (format!= null && super.getHeader(name)!=null){
36

    
37
                if (format.toLowerCase().equals("xml")) {
38
                    return MediaType.APPLICATION_XML_VALUE;
39
                }
40

    
41
                if (format.toLowerCase().equals("json")) {
42
                    return MediaType.APPLICATION_JSON_VALUE;
43
                }
44
            }
45

    
46
            //if no format is passed default format
47
            if (format == null && super.getHeader(name) == null){
48
                    return MediaType.APPLICATION_XML_VALUE;
49
            }
50
            
51
        }
52
        
53
        return super.getHeader(name);
54
    }
55
}
(1-1/2)