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