First cut of Orcid Integration is working

This commit is contained in:
j2blake 2014-02-26 14:58:18 -05:00
parent fb63559aa6
commit 1d7812ed28
11 changed files with 56 additions and 14 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -2,7 +2,7 @@
package edu.cornell.mannlib.vitro.webapp.controller.freemarker; 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.IOException;
import java.io.PrintWriter; 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.UrlBuilder.Route;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ExceptionResponseValues; 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.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.RdfResponseValues;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.RedirectResponseValues; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.RedirectResponseValues;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ResponseValues; 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.FreemarkerEmailFactory;
import edu.cornell.mannlib.vitro.webapp.email.FreemarkerEmailMessage; import edu.cornell.mannlib.vitro.webapp.email.FreemarkerEmailMessage;
import edu.cornell.mannlib.vitro.webapp.freemarker.config.FreemarkerConfiguration; 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.Tags;
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.User; import edu.cornell.mannlib.vitro.webapp.web.templatemodels.User;
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.menu.MainMenu; import edu.cornell.mannlib.vitro.webapp.web.templatemodels.menu.MainMenu;
@ -229,17 +229,19 @@ public class FreemarkerHttpServlet extends VitroHttpServlet {
response.setStatus(statusCode); response.setStatus(statusCode);
} }
if (values instanceof ExceptionResponseValues) { if (values instanceof NotAuthorizedResponseValues) {
doException(vreq, response, values); doNotAuthorized(vreq, response, (NotAuthorizedResponseValues)values);
} else if (values instanceof TemplateResponseValues) { } else if (values instanceof ExceptionResponseValues) {
doTemplate(vreq, response, values); doException(vreq, response, values);
} else if (values instanceof RedirectResponseValues) { } else if (values instanceof TemplateResponseValues) {
doRedirect(vreq, response, values); doTemplate(vreq, response, values);
} else if (values instanceof ForwardResponseValues) { } else if (values instanceof RedirectResponseValues) {
doForward(vreq, response, values); doRedirect(vreq, response, values);
} else if (values instanceof RdfResponseValues) { } else if (values instanceof ForwardResponseValues) {
doRdf(vreq, response, values); doForward(vreq, response, values);
} } else if (values instanceof RdfResponseValues) {
doRdf(vreq, response, values);
}
} catch (ServletException e) { } catch (ServletException e) {
log.error("ServletException in doResponse()", e); log.error("ServletException in doResponse()", e);
} catch (IOException 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 { ResponseValues values) throws TemplateProcessingException {
Map<String, Object> templateDataModel = new HashMap<String, Object>(); Map<String, Object> templateDataModel = new HashMap<String, Object>();
@ -548,4 +558,5 @@ public class FreemarkerHttpServlet extends VitroHttpServlet {
// to set up the data model. // to set up the data model.
new FreemarkerComponentGenerator(request); new FreemarkerComponentGenerator(request);
} }
} }

View file

@ -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;
}
};
}
}