Only Test

git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/data-access/gcube-geoserver-connector@148469 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
pasquale.vitale 2017-05-11 14:01:43 +00:00
parent 318b84e8a5
commit e04ef0ba34
3 changed files with 165 additions and 1 deletions

View File

@ -2,6 +2,7 @@ package org.gcube.data.access.connector;
import java.util.Enumeration;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.bind.annotation.XmlRootElement;
import org.gcube.smartgears.handlers.application.RequestEvent;
@ -29,8 +30,10 @@ public class GeoServerConnectorRequestHandler extends RequestHandler {
public void handleRequest(RequestEvent e) {
this.logger.debug("Handling request");
System.out.println("Handling request");
HttpServletRequest httpServletRequest = e.request();
/*
// create the AuthenticationRequest object to wrap the HttpServletRequest
AuthenticationRequest request = new AuthenticationRequest(httpServletRequest);
@ -40,7 +43,8 @@ public class GeoServerConnectorRequestHandler extends RequestHandler {
String n = (String) en.nextElement();
String v = request.getHeader(n);
this.logger.debug(n + " : " + v + "\n");
}
}*/
}
@Override

View File

@ -0,0 +1,90 @@
package org.gcube.data.access.connector;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebFilter(filterName = "GeoServerFilter", urlPatterns = {"/*"})
public class GeoServerFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("init");
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
throws IOException, ServletException {
System.out.println("doFilter");
/*
* // if the ServletRequest is an instance of HttpServletRequest if
* (servletRequest instanceof HttpServletRequest) { // cast the object
* HttpServletRequest httpServletRequest = (HttpServletRequest)
* servletRequest; // create the AuthenticationRequest object to wrap
* the HttpServletRequest System.out.println(
* "create a HttpServletRequestWrapper"); AuthenticationRequest request
* = new AuthenticationRequest(httpServletRequest);
*
* // continue on in the filter chain with the AuthenticationRequest and
* ServletResponse objects filterChain.doFilter(request,
* servletResponse); } else { // otherwise, continue on in the chain
* with the ServletRequest and ServletResponse objects
* filterChain.doFilter(servletRequest, servletResponse); }
*/
ServletRequestWrapper request = new ServletRequestWrapper((HttpServletRequest) servletRequest);
HttpServletResponse response = (HttpServletResponse) servletResponse;
//HttpSession session = request.getSession();
//Cookie cookie = null;
try {
String auth = request.getHeader("Authorization");
System.out.println("******************* " + auth);
if (auth == null) {
System.out.println("Authorization Header not found.");
// get cookie --COOKIE NAME--
/*Cookie[] cookies = request.getCookies();
if (cookies == null) {
throw new Exception("Cookies not set.");
}
for (int i = 0; i < cookies.length; i++) {
if (cookies[i].getName().equals(config.getProperty("authentication.cookie.name"))) {
cookie = cookies[i];
}
}
if (cookie == null) {
throw new FalseException(
"Cannot find Cookie (" + config.getProperty("authentication.cookie.name") + ") on Client");
}*/
System.out.println("Setting Authorization Header...");
//request.setAttribute("Authorization", decToken);
request.addHeader("Authorization", "BASIC YWRtaW46Z2Vvc2VydmVy");
System.out.println("Authorization Header set.");
System.out.println("Validating Authorization Header value: " + request.getHeader("Authorization"));
}
} catch (Exception e) {
//response.sendRedirect(config.getProperty("application.login.url"));
}
System.out.println("AuthenticationFilter.doFilter() finished.");
filterChain.doFilter(request, response);
}
@Override
public void destroy() {
System.out.println("destroy");
}
}

View File

@ -0,0 +1,70 @@
package org.gcube.data.access.connector;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
public class ServletRequestWrapper extends HttpServletRequestWrapper {
private Map<String, String> headerMap;
public ServletRequestWrapper(HttpServletRequest request) {
super(request);
headerMap = new HashMap<String, String>();
}
public void addHeader(String name, String value) {
System.out.println("addHeader in the headerMap: " + name + " " + value);
headerMap.put(name, new String(value));
}
public Enumeration<String> getHeaderNames() {
System.out.println("in getHeaderNames");
HttpServletRequest request = (HttpServletRequest) getRequest();
List<String> list = new ArrayList<String>();
for (Enumeration<String> e = request.getHeaderNames(); e.hasMoreElements();) {
String header = e.nextElement().toString();
list.add(header);
}
for (Iterator<String> i = headerMap.keySet().iterator(); i.hasNext();) {
list.add(i.next());
}
return Collections.enumeration(list);
}
public String getHeader(String name) {
System.out.println("in getHeader (" + name + ")");
Object value;
if ((value = headerMap.get("" + name)) != null) {
System.out.println("value " + value);
return value.toString();
} else {
System.out.println("value " + ((HttpServletRequest) getRequest()).getHeader(name));
return ((HttpServletRequest) getRequest()).getHeader(name);
}
}
@Override
public Enumeration<String> getHeaders(String name) {
System.out.println("in getHeaders (" + name + ")");
Enumeration<String> e = super.getHeaders(name);
if (e != null && e.hasMoreElements()) {
return e;
} else {
List<String> l = new ArrayList<String>();
if (headerMap.get(name) != null) {
l.add(headerMap.get(name));
}
return Collections.enumeration(l);
}
}
}