Skip to content
Snippets Groups Projects
Commit 9b8fe1c9 authored by gmantele's avatar gmantele
Browse files

[TAP,UWS] Addition to the last commit: the TAP resource /sync did not yet use...

[TAP,UWS] Addition to the last commit: the TAP resource /sync did not yet use the RequestParser to get its parameters, and so it did not worked as before the last commit.
parent 96b3b851
No related branches found
No related tags found
No related merge requests found
......@@ -46,6 +46,7 @@ import tap.metadata.TAPMetadata;
import uk.ac.starlink.votable.VOSerializer;
import uws.UWSException;
import uws.job.user.JobOwner;
import uws.service.UWS;
import uws.service.UWSService;
import uws.service.UWSUrl;
import uws.service.error.ServiceErrorWriter;
......@@ -656,6 +657,8 @@ public class TAP implements VOSIResource {
// Generate a unique ID for this request execution (for log purpose only):
final String reqID = generateRequestID(request);
if (request.getAttribute(UWS.REQ_ATTRIBUTE_ID) == null)
request.setAttribute(UWS.REQ_ATTRIBUTE_ID, reqID);
// Retrieve the resource path parts:
String[] resourcePath = (request.getPathInfo() == null) ? null : request.getPathInfo().split("/");
......@@ -675,6 +678,10 @@ public class TAP implements VOSIResource {
JobOwner owner = null;
try{
// Extract all parameters:
if (request.getAttribute(UWS.REQ_ATTRIBUTE_PARAMETERS) == null)
request.setAttribute(UWS.REQ_ATTRIBUTE_PARAMETERS, getUWS().getRequestParser().parse(request));
// Identify the user:
try{
if (service.getUserIdentifier() != null)
......
......@@ -26,6 +26,8 @@ import uws.job.serializer.UWSSerializer;
import uws.service.backup.UWSBackupManager;
import uws.service.file.UWSFileManager;
import uws.service.log.UWSLog;
import uws.service.request.RequestParser;
import uws.service.request.UWSRequestParser;
/**
* <p>
......@@ -197,6 +199,22 @@ public interface UWS extends Iterable<JobList> {
*/
public UWSFactory getFactory();
/* ******************** */
/* HTTP REQUEST PARSING */
/* ******************** */
/**
* <p>Get its HTTP request parser.</p>
* <p><i><u>note:</u> This parser is the only one to be able to extract UWS and TAP parameters from any HTTP request.
* Its behavior is adapted in function of the used HTTP method and of the content-type. A default implementation is
* provided by the UWS library: {@link UWSRequestParser}.</i></p>
*
* @return Its request parser.
*
* @since 4.1
*/
public RequestParser getRequestParser();
/* *************** */
/* FILE MANAGEMENT */
/* *************** */
......
......@@ -184,7 +184,7 @@ import uws.service.request.RequestParser;
*
*
* @author Gr&eacute;gory Mantelet (CDS;ARI)
* @version 4.1 (09/2014)
* @version 4.1 (12/2014)
*/
public class UWSService implements UWS {
......@@ -550,6 +550,11 @@ public class UWSService implements UWS {
this.backupManager = backupManager;
}
@Override
public final RequestParser getRequestParser(){
return requestParser;
}
/* ******************** */
/* HOME PAGE MANAGEMENT */
/* ******************** */
......@@ -1058,7 +1063,8 @@ public class UWSService implements UWS {
// Generate a unique ID for this request execution (for log purpose only):
final String reqID = generateRequestID(request);
request.setAttribute(UWS.REQ_ATTRIBUTE_ID, reqID);
if (request.getAttribute(UWS.REQ_ATTRIBUTE_ID) == null)
request.setAttribute(UWS.REQ_ATTRIBUTE_ID, reqID);
// Log the reception of the request:
logger.logHttp(LogLevel.INFO, request, reqID, null, null);
......@@ -1081,7 +1087,8 @@ public class UWSService implements UWS {
urlInterpreter.load(request);
// Extract all parameters:
request.setAttribute(UWS.REQ_ATTRIBUTE_PARAMETERS, requestParser.parse(request));
if (request.getAttribute(UWS.REQ_ATTRIBUTE_PARAMETERS) == null)
request.setAttribute(UWS.REQ_ATTRIBUTE_PARAMETERS, requestParser.parse(request));
// Identify the user:
user = (userIdentifier == null) ? null : userIdentifier.extractUserId(urlInterpreter, request);
......
......@@ -132,7 +132,7 @@ import uws.service.request.UploadFile;
* </p>
*
* @author Gr&eacute;gory Mantelet (CDS;ARI)
* @version 4.1 (11/2014)
* @version 4.1 (12/2014)
*/
public abstract class UWSServlet extends HttpServlet implements UWS, UWSFactory {
private static final long serialVersionUID = 1L;
......@@ -257,6 +257,11 @@ public abstract class UWSServlet extends HttpServlet implements UWS, UWSFactory
return fileManager;
}
@Override
public RequestParser getRequestParser(){
return requestParser;
}
@Override
public final void service(ServletRequest req, ServletResponse resp) throws ServletException, IOException{
super.service(req, resp);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment