diff --git a/webapp/config/web.xml b/webapp/config/web.xml
index ebe5912c4..53295b74c 100644
--- a/webapp/config/web.xml
+++ b/webapp/config/web.xml
@@ -386,6 +386,15 @@
/siteAdmin.jsp
+
+ EmptyController
+ edu.cornell.mannlib.vitro.webapp.controller.freemarker.EmptyController
+
+
+ EmptyController
+ /login
+
+
RevisionInfoController
edu.cornell.mannlib.vitro.webapp.controller.freemarker.RevisionInfoController
@@ -1239,10 +1248,12 @@
authenticate
/authenticate
+
loginShibboleth
/loginShibboleth
diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/Controllers.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/Controllers.java
index 77215f7fa..2f855bde3 100644
--- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/Controllers.java
+++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/Controllers.java
@@ -33,7 +33,7 @@ public class Controllers {
public static final String TAB_ENTITIES = "/TabEntitiesController";
public static final String SITE_ADMIN = "/siteAdmin";
- public static final String LOGIN = "/siteAdmin";
+ public static final String LOGIN = "/login";
public static final String AUTHENTICATE = "/authenticate";
public static final String EXPORT_RDF = "/export";
diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/authenticate/LoginRedirector.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/authenticate/LoginRedirector.java
index 5b10f9597..e96138c36 100644
--- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/authenticate/LoginRedirector.java
+++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/authenticate/LoginRedirector.java
@@ -3,7 +3,6 @@
package edu.cornell.mannlib.vitro.webapp.controller.authenticate;
import java.io.IOException;
-import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.List;
@@ -107,9 +106,9 @@ public class LoginRedirector {
/** What's the URL for the site admin screen? */
private String getSiteAdminUrl(HttpServletRequest request) {
+ // return Route.SITE_ADMIN.url();
String contextPath = request.getContextPath();
- String urlParams = "?login=block";
- return contextPath + Controllers.SITE_ADMIN + urlParams;
+ return contextPath + Controllers.SITE_ADMIN;
}
/** Get a reference to the Authenticator. */
diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/Authenticate.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/Authenticate.java
index 387010d72..c1f95f192 100644
--- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/Authenticate.java
+++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/Authenticate.java
@@ -55,16 +55,6 @@ public class Authenticate extends VitroHttpServlet {
/** If this parameter is "true" (ignoring case), cancel the login. */
private static final String PARAMETER_CANCEL = "cancel";
- /** If they are logging in, show them this form. */
- public static final String TEMPLATE_LOGIN = "login-form.ftl";
-
- /** If they are changing their password on first login, show them this form. */
- public static final String TEMPLATE_FORCE_PASSWORD_CHANGE = "login-forcedPasswordChange.ftl";
-
- public static final String BODY_LOGIN_NAME = "loginName";
- public static final String BODY_FORM_ACTION = "formAction";
- public static final String BODY_ERROR_MESSAGE = "errorMessage";
-
/** Where do we find the User/Session map in the servlet context? */
public static final String USER_SESSION_MAP_ATTR = "userURISessionMap";
diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/EmptyController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/EmptyController.java
new file mode 100644
index 000000000..f02f4b6a5
--- /dev/null
+++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/EmptyController.java
@@ -0,0 +1,36 @@
+/* $This file is distributed under the terms of the license in /doc/license.txt$ */
+
+package edu.cornell.mannlib.vitro.webapp.controller.freemarker;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import edu.cornell.mannlib.vitro.webapp.beans.Portal;
+import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
+import edu.cornell.mannlib.vitro.webapp.controller.freemarker.FreemarkerHttpServlet.ResponseValues;
+import edu.cornell.mannlib.vitro.webapp.controller.freemarker.FreemarkerHttpServlet.TemplateResponseValues;
+
+/*
+ * Servlet that only specifies a template, without putting any data
+ * into the template model.
+ */
+public class EmptyController extends FreemarkerHttpServlet {
+
+ private static final long serialVersionUID = 1L;
+ private static final Log log = LogFactory.getLog(EmptyController.class);
+
+ private static final Map urlsToTemplates = new HashMap(){
+ {
+ put("/login", "login.ftl");
+ }
+ };
+
+ protected ResponseValues processRequest(VitroRequest vreq) {
+ String requestedUrl = vreq.getServletPath();
+ String templateName = urlsToTemplates.get(requestedUrl);
+ return new TemplateResponseValues(templateName);
+ }
+}
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 f6c7be151..23a289714 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
@@ -82,8 +82,9 @@ public class FreemarkerHttpServlet extends VitroHttpServlet {
ResponseValues responseValues;
+ // checkLoginStatus() does a redirect if the user is not logged in.
if (requiresLogin() && !checkLoginStatus(request, response)) {
- responseValues = new RedirectResponseValues(UrlBuilder.Route.LOGIN.path());
+ return;
} else {
responseValues = processRequest(vreq);
}
@@ -299,7 +300,7 @@ public class FreemarkerHttpServlet extends VitroHttpServlet {
urls.put("termsOfUse", urlBuilder.getPortalUrl(Route.TERMS_OF_USE));
urls.put("login", urlBuilder.getPortalUrl(Route.LOGIN));
urls.put("logout", urlBuilder.getLogoutUrl());
- urls.put("siteAdmin", urlBuilder.getPortalUrl(Route.LOGIN));
+ urls.put("siteAdmin", urlBuilder.getPortalUrl(Route.SITE_ADMIN));
urls.put("siteIcons", urlBuilder.getPortalUrl(themeDir + "/site_icons"));
urls.put("themeImages", urlBuilder.getPortalUrl(themeDir + "/images"));
urls.put("images", urlBuilder.getUrl("/images"));
diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/SiteAdminController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/SiteAdminController.java
index 8e87149b6..0e37399c6 100644
--- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/SiteAdminController.java
+++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/SiteAdminController.java
@@ -34,13 +34,11 @@ public class SiteAdminController extends FreemarkerHttpServlet {
return siteName + " Site Administration";
}
- // Uncomment this once the login page has been separated from the site admin page.
- // You also need to change UrlBuilder.Route.LOGIN path to "/login".
-// @Override
-// protected boolean requiresLogin() {
-// // User must be logged in to view this page.
-// return true;
-// }
+ @Override
+ protected boolean requiresLogin() {
+ // User must be logged in to view this page.
+ return true;
+ }
@Override
protected ResponseValues processRequest(VitroRequest vreq) {
@@ -49,61 +47,26 @@ public class SiteAdminController extends FreemarkerHttpServlet {
Map body = new HashMap();
- // NOT LOGGED IN: just show login form
- if (!loginBean.isLoggedIn()) {
- // Unlike the other panels on this page, we put the data directly in the body, because the templates are also used
- // by the JSP version, where the data is placed directly in the body map.
- body.putAll(getLoginPanelData(vreq));
-
- // LOGGED IN: show editing options based on user role
- } else {
-
- if (loginBean.isLoggedInAtLeast(LoginStatusBean.EDITOR)) {
+ if (loginBean.isLoggedInAtLeast(LoginStatusBean.EDITOR)) {
- UrlBuilder urlBuilder = new UrlBuilder(vreq.getPortal());
+ UrlBuilder urlBuilder = new UrlBuilder(vreq.getPortal());
+
+ body.put("dataInput", getDataInputData(vreq));
+
+ if (loginBean.isLoggedInAtLeast(LoginStatusBean.CURATOR)) {
+ body.put("siteConfig", getSiteConfigurationData(vreq, urlBuilder));
+ body.put("ontologyEditor", getOntologyEditorData(vreq, urlBuilder));
- body.put("dataInput", getDataInputData(vreq));
-
- if (loginBean.isLoggedInAtLeast(LoginStatusBean.CURATOR)) {
- body.put("siteConfig", getSiteConfigurationData(vreq, urlBuilder));
- body.put("ontologyEditor", getOntologyEditorData(vreq, urlBuilder));
+ if (loginBean.isLoggedInAtLeast(LoginStatusBean.DBA)) {
+ body.put("dataTools", getDataToolsData(vreq, urlBuilder));
- if (loginBean.isLoggedInAtLeast(LoginStatusBean.DBA)) {
- body.put("dataTools", getDataToolsData(vreq, urlBuilder));
-
- // Only for DataStar. Should handle without needing a DataStar-specific version of this controller.
- //body.put("customReports", getCustomReportsData(vreq));
- }
+ // Only for DataStar. Should handle without needing a DataStar-specific version of this controller.
+ //body.put("customReports", getCustomReportsData(vreq));
}
}
}
-
-// Not used
-// int languageProfile = wadf.getLanguageProfile();
-// String languageMode = null;
-// if ( 200 <= languageProfile && languageProfile < 300 ) {
-// languageMode = "OWL Mode";
-// } else if ( 100 == languageProfile ) {
-// languageMode = "RDF Schema Mode";
-// }
-// body.put("languageModeStr", languageMode);
-
return new TemplateResponseValues(TEMPLATE_DEFAULT, body);
-
- }
-
- private Map getLoginPanelData(VitroRequest vreq) {
- Map map = null;
- // This is somewhat awkward, because we are trying to use the login code with as few modifications as possible
- // as it was set up for the JSP version as well. We have to unpack the TemplateResponseValues
- // object and put everything in a map.
- TemplateResponseValues trv = new LoginTemplateHelper(vreq).showLoginPanel(vreq);
- if (trv != null) {
- map = new HashMap();
- map.putAll(trv.getMap());
- map.put("loginTemplate", trv.getTemplateName());
- }
- return map;
+
}
private Map getDataInputData(VitroRequest vreq) {
diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/TemplateProcessingHelper.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/TemplateProcessingHelper.java
index 876968d66..9d5b2590b 100644
--- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/TemplateProcessingHelper.java
+++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/TemplateProcessingHelper.java
@@ -77,7 +77,8 @@ public class TemplateProcessingHelper {
try {
template = config.getTemplate(templateName);
} catch (IOException e) {
- log.error("Cannot get template " + templateName);
+ // RY Should probably throw this error instead.
+ log.error("Cannot get template " + templateName, e);
}
return template;
}
diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/UrlBuilder.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/UrlBuilder.java
index 7af55c6d4..48bce63c5 100644
--- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/UrlBuilder.java
+++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/UrlBuilder.java
@@ -31,7 +31,7 @@ public class UrlBuilder {
INDIVIDUAL("/individual"),
INDIVIDUAL_EDIT("/entityEdit"),
INDIVIDUAL_LIST("/individuallist"),
- LOGIN("/siteAdmin"), // when login page is separated from site admin page, change to "/login"
+ LOGIN("/login"),
LOGOUT("/login_process.jsp"),
SEARCH("/search"),
SITE_ADMIN("/siteAdmin"),
diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/widgets/LoginWidget.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/widgets/LoginWidget.java
index 9dadba5f4..15099c3e5 100644
--- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/widgets/LoginWidget.java
+++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/widgets/LoginWidget.java
@@ -80,7 +80,7 @@ public class LoginWidget extends Widget {
}
} catch (Exception e) {
log.error(e);
- values = showError(e);
+ values = showError(e);
}
values.put("urls", urls);
return values;
diff --git a/webapp/test/edu/cornell/mannlib/vitro/webapp/controller/edit/AuthenticateTest.java b/webapp/test/edu/cornell/mannlib/vitro/webapp/controller/edit/AuthenticateTest.java
index e8e583a7a..eb5c2065f 100644
--- a/webapp/test/edu/cornell/mannlib/vitro/webapp/controller/edit/AuthenticateTest.java
+++ b/webapp/test/edu/cornell/mannlib/vitro/webapp/controller/edit/AuthenticateTest.java
@@ -28,6 +28,7 @@ import edu.cornell.mannlib.vitro.testing.AbstractTestClass;
import edu.cornell.mannlib.vitro.webapp.beans.User;
import edu.cornell.mannlib.vitro.webapp.controller.Controllers;
import edu.cornell.mannlib.vitro.webapp.controller.authenticate.AuthenticatorStub;
+import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder;
import edu.cornell.mannlib.vitro.webapp.controller.login.LoginProcessBean;
import edu.cornell.mannlib.vitro.webapp.controller.login.LoginProcessBean.State;
@@ -46,8 +47,8 @@ public class AuthenticateTest extends AbstractTestClass {
private static final String URL_LOGIN_PAGE = "http://my.local.site/vivo/"
+ Controllers.LOGIN;
- private static final String URL_SITE_ADMIN_PAGE = Controllers.SITE_ADMIN
- + "?login=block";
+ private static final String URL_SITE_ADMIN_PAGE = Controllers.SITE_ADMIN;
+
private static final String URL_HOME_PAGE = "";
private static final String URL_SESSION_REDIRECT = "/sessionRedirect";
private static final String URL_CONTEXT_REDIRECT_LOCAL = "/servletContextRedirect";
@@ -90,6 +91,7 @@ public class AuthenticateTest extends AbstractTestClass {
auth = new Authenticate();
auth.init(servletConfig);
+
}
private User createNewDbaUser() {
diff --git a/webapp/web/templates/freemarker/body/siteAdmin/siteAdmin-login.ftl b/webapp/web/templates/freemarker/body/login.ftl
similarity index 100%
rename from webapp/web/templates/freemarker/body/siteAdmin/siteAdmin-login.ftl
rename to webapp/web/templates/freemarker/body/login.ftl