diff --git a/webapp/lib/cxf-xjc-runtime-2.6.2.jar b/webapp/lib/cxf-xjc-runtime-2.6.2.jar new file mode 100644 index 000000000..585894097 Binary files /dev/null and b/webapp/lib/cxf-xjc-runtime-2.6.2.jar differ diff --git a/webapp/lib/cxf-xjc-ts-2.6.2.jar b/webapp/lib/cxf-xjc-ts-2.6.2.jar new file mode 100644 index 000000000..283ba149d Binary files /dev/null and b/webapp/lib/cxf-xjc-ts-2.6.2.jar differ diff --git a/webapp/lib/fluent-hc-4.3.2.jar b/webapp/lib/fluent-hc-4.3.2.jar new file mode 100644 index 000000000..0b6288ada Binary files /dev/null and b/webapp/lib/fluent-hc-4.3.2.jar differ diff --git a/webapp/lib/httpclient-4.2.5.jar b/webapp/lib/httpclient-4.2.5.jar deleted file mode 100644 index 5310588ef..000000000 Binary files a/webapp/lib/httpclient-4.2.5.jar and /dev/null differ diff --git a/webapp/lib/httpclient-4.3.2.jar b/webapp/lib/httpclient-4.3.2.jar new file mode 100644 index 000000000..904409dac Binary files /dev/null and b/webapp/lib/httpclient-4.3.2.jar differ diff --git a/webapp/lib/httpcore-4.2.4.jar b/webapp/lib/httpcore-4.2.4.jar deleted file mode 100644 index 9f45bd91c..000000000 Binary files a/webapp/lib/httpcore-4.2.4.jar and /dev/null differ diff --git a/webapp/lib/httpcore-4.3.1.jar b/webapp/lib/httpcore-4.3.1.jar new file mode 100644 index 000000000..422cd6f5d Binary files /dev/null and b/webapp/lib/httpcore-4.3.1.jar differ diff --git a/webapp/lib/javax.json-1.0.4.jar b/webapp/lib/javax.json-1.0.4.jar new file mode 100644 index 000000000..09967d815 Binary files /dev/null and b/webapp/lib/javax.json-1.0.4.jar differ diff --git a/webapp/lib/javax.json-api-1.0.jar b/webapp/lib/javax.json-api-1.0.jar new file mode 100644 index 000000000..d276c793c Binary files /dev/null and b/webapp/lib/javax.json-api-1.0.jar differ diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/FreemarkerHttpServlet.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/FreemarkerHttpServlet.java index 1530aaeee..a7da1ee34 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/FreemarkerHttpServlet.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/FreemarkerHttpServlet.java @@ -2,7 +2,7 @@ package edu.cornell.mannlib.vitro.webapp.controller.freemarker; -import static javax.mail.Message.RecipientType.*; +import static javax.mail.Message.RecipientType.TO; import java.io.IOException; import java.io.PrintWriter; @@ -36,6 +36,7 @@ import edu.cornell.mannlib.vitro.webapp.controller.freemarker.TemplateProcessing import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder.Route; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ExceptionResponseValues; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ForwardResponseValues; +import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.NotAuthorizedResponseValues; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.RdfResponseValues; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.RedirectResponseValues; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ResponseValues; @@ -43,7 +44,6 @@ import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.Tem import edu.cornell.mannlib.vitro.webapp.email.FreemarkerEmailFactory; import edu.cornell.mannlib.vitro.webapp.email.FreemarkerEmailMessage; import edu.cornell.mannlib.vitro.webapp.freemarker.config.FreemarkerConfiguration; -import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFServiceException; import edu.cornell.mannlib.vitro.webapp.web.templatemodels.Tags; import edu.cornell.mannlib.vitro.webapp.web.templatemodels.User; import edu.cornell.mannlib.vitro.webapp.web.templatemodels.menu.MainMenu; @@ -229,17 +229,19 @@ public class FreemarkerHttpServlet extends VitroHttpServlet { response.setStatus(statusCode); } - if (values instanceof ExceptionResponseValues) { - doException(vreq, response, values); - } else if (values instanceof TemplateResponseValues) { - doTemplate(vreq, response, values); - } else if (values instanceof RedirectResponseValues) { - doRedirect(vreq, response, values); - } else if (values instanceof ForwardResponseValues) { - doForward(vreq, response, values); - } else if (values instanceof RdfResponseValues) { - doRdf(vreq, response, values); - } + if (values instanceof NotAuthorizedResponseValues) { + doNotAuthorized(vreq, response, (NotAuthorizedResponseValues)values); + } else if (values instanceof ExceptionResponseValues) { + doException(vreq, response, values); + } else if (values instanceof TemplateResponseValues) { + doTemplate(vreq, response, values); + } else if (values instanceof RedirectResponseValues) { + doRedirect(vreq, response, values); + } else if (values instanceof ForwardResponseValues) { + doForward(vreq, response, values); + } else if (values instanceof RdfResponseValues) { + doRdf(vreq, response, values); + } } catch (ServletException e) { log.error("ServletException in doResponse()", e); } catch (IOException e) { @@ -247,7 +249,15 @@ public class FreemarkerHttpServlet extends VitroHttpServlet { } } - protected void doTemplate(VitroRequest vreq, HttpServletResponse response, + private void doNotAuthorized(VitroRequest vreq, + HttpServletResponse response, NotAuthorizedResponseValues values) { + // This method does a redirect if the required authorizations are + // not met (and they won't be), so just return. + isAuthorizedToDisplayPage(vreq, response, values.getUnauthorizedAction()); + return; + } + + protected void doTemplate(VitroRequest vreq, HttpServletResponse response, ResponseValues values) throws TemplateProcessingException { Map templateDataModel = new HashMap(); @@ -548,4 +558,5 @@ public class FreemarkerHttpServlet extends VitroHttpServlet { // to set up the data model. new FreemarkerComponentGenerator(request); } + } \ No newline at end of file diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/responsevalues/NotAuthorizedResponseValues.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/responsevalues/NotAuthorizedResponseValues.java new file mode 100644 index 000000000..0b28e3229 --- /dev/null +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/responsevalues/NotAuthorizedResponseValues.java @@ -0,0 +1,31 @@ +/* $This file is distributed under the terms of the license in /doc/license.txt$ */ + +package edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues; + +import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.ifaces.RequestedAction; + +/** + * This allows processRequest() in sub-classes of FreemarkerHttpServlet to + * decide that the request is not authorized, and properly handle the + * redirection. + */ +public class NotAuthorizedResponseValues extends BaseResponseValues { + /** + * If logging is turned on, this will be written to the log as a reason for + * rejecting the servlet. + */ + private final String logMessage; + + public NotAuthorizedResponseValues(String logMessage) { + this.logMessage = logMessage; + } + + public RequestedAction getUnauthorizedAction() { + return new RequestedAction() { + @Override + public String toString() { + return "Servlet not authorized: " + logMessage; + } + }; + } +}