First commit - gcube-geoserver-connector
git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/data-access/gcube-geoserver-connector@148433 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
36f024a4e3
commit
cfaf3cf859
|
@ -0,0 +1,61 @@
|
|||
package org.gcube.data.access.connector;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Enumeration;
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletRequestWrapper;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
public class AuthenticationRequest extends HttpServletRequestWrapper {
|
||||
|
||||
private final static String AUTHENTICATION = "Authentication";
|
||||
private Logger logger;
|
||||
|
||||
public AuthenticationRequest(HttpServletRequest request) {
|
||||
super(request);
|
||||
this.logger = LoggerFactory.getLogger(this.getClass());
|
||||
}
|
||||
|
||||
public String getHeader(String name) {
|
||||
this.logger.debug("getHeader : " + name);
|
||||
|
||||
HttpServletRequest request = (HttpServletRequest) getRequest();
|
||||
|
||||
// if header name request is "Authorization" then update value
|
||||
if (AUTHENTICATION.equals(name)) {
|
||||
// TODO get authorization from IS
|
||||
this.logger.debug("Set AUTHENTICATION");
|
||||
return "BASIC YWRtaW46Z2Vvc2VydmVy";
|
||||
}
|
||||
|
||||
return request.getHeader(name);
|
||||
}
|
||||
|
||||
public Enumeration<String> getHeaderNames() {
|
||||
this.logger.debug("getHeaderNames");
|
||||
|
||||
HttpServletRequest request = (HttpServletRequest) getRequest();
|
||||
|
||||
// modify list of headers
|
||||
List<String> list = new ArrayList<String>();
|
||||
|
||||
Enumeration<String> e = request.getHeaderNames();
|
||||
while (e.hasMoreElements()) {
|
||||
// add the names of the request headers into the list
|
||||
String n = (String) e.nextElement();
|
||||
list.add(n);
|
||||
}
|
||||
|
||||
// add Authentication
|
||||
list.add(AUTHENTICATION);
|
||||
this.logger.debug("add Authentication");
|
||||
// create an enumeration from the list and return
|
||||
Enumeration<String> en = Collections.enumeration(list);
|
||||
return en;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,50 @@
|
|||
package org.gcube.data.access.connector;
|
||||
|
||||
import java.util.Enumeration;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
|
||||
import org.gcube.smartgears.handlers.application.RequestEvent;
|
||||
import org.gcube.smartgears.handlers.application.RequestHandler;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@XmlRootElement (name= GeoServerConnectorRequestHandler.REQUEST_HANDLER_NAME)
|
||||
public class GeoServerConnectorRequestHandler extends RequestHandler {
|
||||
|
||||
public static final String REQUEST_HANDLER_NAME = "authentication-filter";
|
||||
|
||||
private Logger logger;
|
||||
|
||||
public GeoServerConnectorRequestHandler() {
|
||||
this.logger = LoggerFactory.getLogger(this.getClass());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return REQUEST_HANDLER_NAME;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleRequest(RequestEvent e) {
|
||||
|
||||
this.logger.debug("Handling request");
|
||||
HttpServletRequest httpServletRequest = e.request();
|
||||
|
||||
// create the AuthenticationRequest object to wrap the HttpServletRequest
|
||||
AuthenticationRequest request = new AuthenticationRequest(httpServletRequest);
|
||||
|
||||
// TODO delete (just to show the headers!!!)
|
||||
Enumeration<String> en = request.getHeaderNames();
|
||||
while (en.hasMoreElements()) {
|
||||
String n = (String) en.nextElement();
|
||||
String v = request.getHeader(n);
|
||||
this.logger.debug(n + " : " + v + "\n");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return getName();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
Manifest-Version: 1.0
|
||||
Archiver-Version: Plexus Archiver
|
||||
Created-By: Apache Maven
|
||||
Built-By: Pasquy
|
||||
Build-Jdk: 1.7.0_75
|
||||
|
|
@ -0,0 +1 @@
|
|||
org.gcube.data.access.connector.GeoServerConnectorRequestHandler
|
Loading…
Reference in New Issue