minor fixes

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/data-catalogue/grsf-publisher-ws@133354 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Costantino Perciante 2016-10-19 12:34:19 +00:00
parent 2940e9b9e5
commit cf4b6bf37b
4 changed files with 80 additions and 6 deletions

View File

@ -5,6 +5,7 @@ import javax.ws.rs.core.Response;
import javax.ws.rs.ext.ExceptionMapper; import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.ext.Provider; import javax.ws.rs.ext.Provider;
import org.gcube.data_catalogue.grsf_publish_ws.json.output.ResponseBean;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@Provider @Provider
@ -21,7 +22,7 @@ public class ApplicationException implements ExceptionMapper<Exception> {
return Response return Response
.status(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()) .status(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode())
.type(MediaType.APPLICATION_JSON) .type(MediaType.APPLICATION_JSON)
.entity("{\"error\":" + "\"" + e.getMessage() + "\"}") .entity(new ResponseBean(false, e.getMessage(), null))
.build(); .build();
} }
} }

View File

@ -7,6 +7,7 @@ import javax.ws.rs.core.Response;
import javax.ws.rs.ext.ExceptionMapper; import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.ext.Provider; import javax.ws.rs.ext.Provider;
import org.gcube.data_catalogue.grsf_publish_ws.json.output.ResponseBean;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@Provider @Provider
@ -28,7 +29,7 @@ public class ValidationException implements ExceptionMapper<javax.validation.Val
return Response return Response
.status(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()) .status(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode())
.type(MediaType.APPLICATION_JSON) .type(MediaType.APPLICATION_JSON)
.entity("{\"error\":" + "\"" + strBuilder.toString() + "\"}") .entity(new ResponseBean(false, strBuilder.toString(), null))
.build(); .build();
} }
} }

View File

@ -6,6 +6,7 @@ import java.io.IOException;
import javax.ws.rs.container.ContainerRequestContext; import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerRequestFilter; import javax.ws.rs.container.ContainerRequestFilter;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.MultivaluedMap; import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.Response; import javax.ws.rs.core.Response;
import javax.ws.rs.ext.Provider; import javax.ws.rs.ext.Provider;
@ -19,6 +20,7 @@ import org.gcube.common.authorization.library.provider.AuthorizationProvider;
import org.gcube.common.authorization.library.utils.Caller; import org.gcube.common.authorization.library.utils.Caller;
import org.gcube.common.portal.PortalContext; import org.gcube.common.portal.PortalContext;
import org.gcube.common.scope.api.ScopeProvider; import org.gcube.common.scope.api.ScopeProvider;
import org.gcube.data_catalogue.grsf_publish_ws.json.output.ResponseBean;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -59,7 +61,7 @@ public class RequestsAuthAccountingFilter implements ContainerRequestFilter{
logger.info("Authorization entry set in thread local"); logger.info("Authorization entry set in thread local");
return; return;
}else }else
requestContext.abortWith(Response.status(Response.Status.UNAUTHORIZED).entity("Invalid or missing gcube-token").build()); requestContext.abortWith(Response.status(Response.Status.UNAUTHORIZED).type(MediaType.APPLICATION_JSON).entity(new ResponseBean(false, "Invalid or missing gcube-token", null)).build());
}else if(tokenAsQueryParameter != null){ }else if(tokenAsQueryParameter != null){
logger.info("Token is " + tokenAsQueryParameter.substring(0, 5) + "********************"); logger.info("Token is " + tokenAsQueryParameter.substring(0, 5) + "********************");
AuthorizationEntry ae = validateToken(tokenAsQueryParameter); AuthorizationEntry ae = validateToken(tokenAsQueryParameter);
@ -70,11 +72,11 @@ public class RequestsAuthAccountingFilter implements ContainerRequestFilter{
logger.info("Authorization entry set in thread local"); logger.info("Authorization entry set in thread local");
return; return;
}else }else
requestContext.abortWith(Response.status(Response.Status.UNAUTHORIZED).entity("Invalid or missing gcube-token").build()); requestContext.abortWith(Response.status(Response.Status.UNAUTHORIZED).type(MediaType.APPLICATION_JSON).entity(new ResponseBean(false, "Invalid or missing gcube-token", null)).build());
} }
else else
requestContext.abortWith(Response.status(Response.Status.UNAUTHORIZED).entity("Invalid or missing gcube-token").build()); requestContext.abortWith(Response.status(Response.Status.UNAUTHORIZED).type(MediaType.APPLICATION_JSON).entity(new ResponseBean(false, "Invalid or missing gcube-token", null)).build());
} }
@ -126,7 +128,7 @@ public class RequestsAuthAccountingFilter implements ContainerRequestFilter{
}catch(Exception e){ }catch(Exception e){
logger.error("Unable to account this service usage record", e); logger.error("Unable to account this service usage record", e);
} }
} }
} }

View File

@ -0,0 +1,70 @@
package org.gcube.data_catalogue.grsf_publish_ws.json.output;
import java.io.Serializable;
/**
* Response bean
* @author Costantino Perciante at ISTI-CNR
* (costantino.perciante@isti.cnr.it)
*
*/
public class ResponseBean implements Serializable {
private static final long serialVersionUID = -2725238162673879658L;
private boolean success;
private String message;
private Object result; // needs to be serializable!!
public ResponseBean() {
super();
}
/**
* @param success
* @param message
* @param result
* @param help
*/
public ResponseBean(boolean success, String message, Object result) {
super();
this.success = success;
this.message = message;
this.result = result;
}
public boolean isSuccess() {
return success;
}
public void setSuccess(boolean success) {
this.success = success;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public Object getResult() {
return result;
}
public void setResult(Object result) {
this.result = result;
}
@Override
public String toString() {
return "ResponseBean [success=" + success
+ ", message=" + message + ", result=" + result + "]";
}
}