Add infrastructure to allow freemarker controllers to block access to pages if user is not logged in.
This commit is contained in:
parent
0028509f63
commit
e7e5cefb29
3 changed files with 20 additions and 27 deletions
|
@ -193,7 +193,7 @@ public class EntityController extends VitroHttpServlet {
|
||||||
if( view == null){
|
if( view == null){
|
||||||
if (customView == null) {
|
if (customView == null) {
|
||||||
view = default_jsp;
|
view = default_jsp;
|
||||||
vreq.setAttribute("bodyJsp","/"+Controllers.ENTITY_JSP);
|
vreq.setAttribute("bodyJsp", Controllers.ENTITY_JSP);
|
||||||
log.debug("no custom view and no view parameter in request for rendering "+indiv.getName());
|
log.debug("no custom view and no view parameter in request for rendering "+indiv.getName());
|
||||||
} else {
|
} else {
|
||||||
view = default_jsp;
|
view = default_jsp;
|
||||||
|
|
|
@ -34,7 +34,6 @@ import edu.cornell.mannlib.vitro.webapp.utils.StringUtils;
|
||||||
import edu.cornell.mannlib.vitro.webapp.web.BreadCrumbsUtil;
|
import edu.cornell.mannlib.vitro.webapp.web.BreadCrumbsUtil;
|
||||||
import edu.cornell.mannlib.vitro.webapp.web.ContentType;
|
import edu.cornell.mannlib.vitro.webapp.web.ContentType;
|
||||||
import edu.cornell.mannlib.vitro.webapp.web.PortalWebUtil;
|
import edu.cornell.mannlib.vitro.webapp.web.PortalWebUtil;
|
||||||
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.BaseTemplateModel;
|
|
||||||
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.files.Scripts;
|
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.files.Scripts;
|
||||||
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.files.Stylesheets;
|
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.files.Stylesheets;
|
||||||
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.menu.TabMenu;
|
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.menu.TabMenu;
|
||||||
|
@ -43,6 +42,7 @@ import freemarker.cache.FileTemplateLoader;
|
||||||
import freemarker.cache.MultiTemplateLoader;
|
import freemarker.cache.MultiTemplateLoader;
|
||||||
import freemarker.cache.TemplateLoader;
|
import freemarker.cache.TemplateLoader;
|
||||||
import freemarker.ext.beans.BeansWrapper;
|
import freemarker.ext.beans.BeansWrapper;
|
||||||
|
import freemarker.ext.servlet.AllHttpScopesHashModel;
|
||||||
import freemarker.template.Configuration;
|
import freemarker.template.Configuration;
|
||||||
import freemarker.template.DefaultObjectWrapper;
|
import freemarker.template.DefaultObjectWrapper;
|
||||||
import freemarker.template.TemplateException;
|
import freemarker.template.TemplateException;
|
||||||
|
@ -77,6 +77,10 @@ public class FreemarkerHttpServlet extends VitroHttpServlet {
|
||||||
public void doGet( HttpServletRequest request, HttpServletResponse response )
|
public void doGet( HttpServletRequest request, HttpServletResponse response )
|
||||||
throws IOException, ServletException {
|
throws IOException, ServletException {
|
||||||
|
|
||||||
|
if (requiresLogin() && !checkLoginStatus(request, response)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
super.doGet(request,response);
|
super.doGet(request,response);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@ -200,6 +204,12 @@ public class FreemarkerHttpServlet extends VitroHttpServlet {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected boolean requiresLogin() {
|
||||||
|
// By default, user does not need to be logged in to view pages.
|
||||||
|
// Subclasses that require login to process their page will override to return true.
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// Subclasses will override
|
// Subclasses will override
|
||||||
protected ResponseValues processRequest(VitroRequest vreq) {
|
protected ResponseValues processRequest(VitroRequest vreq) {
|
||||||
return null;
|
return null;
|
||||||
|
@ -266,6 +276,8 @@ public class FreemarkerHttpServlet extends VitroHttpServlet {
|
||||||
|
|
||||||
// root is the map used to create the page shell - header, footer, menus, etc.
|
// root is the map used to create the page shell - header, footer, menus, etc.
|
||||||
Map<String, Object> root = new HashMap<String, Object>(sharedVariables);
|
Map<String, Object> root = new HashMap<String, Object>(sharedVariables);
|
||||||
|
//AllHttpScopesHashModel root = new AllHttpScopesHashModel(null, null, vreq);
|
||||||
|
|
||||||
root.putAll(getPageTemplateValues(vreq));
|
root.putAll(getPageTemplateValues(vreq));
|
||||||
// Tell the template and any directives it uses that we're processing a page template.
|
// Tell the template and any directives it uses that we're processing a page template.
|
||||||
root.put("templateType", "page");
|
root.put("templateType", "page");
|
||||||
|
@ -589,11 +601,6 @@ public class FreemarkerHttpServlet extends VitroHttpServlet {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static interface ResponseValues {
|
protected static interface ResponseValues {
|
||||||
// enum ResponseType {
|
|
||||||
// TEMPLATE, REDIRECT, FORWARD, EXCEPTION
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// ResponseType getType();
|
|
||||||
|
|
||||||
String getTemplateName();
|
String getTemplateName();
|
||||||
|
|
||||||
|
@ -676,11 +683,6 @@ public class FreemarkerHttpServlet extends VitroHttpServlet {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Override
|
|
||||||
// public ResponseType getType() {
|
|
||||||
// return ResponseType.TEMPLATE;
|
|
||||||
// }
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> getMap() {
|
public Map<String, Object> getMap() {
|
||||||
return Collections.unmodifiableMap(this.map);
|
return Collections.unmodifiableMap(this.map);
|
||||||
|
@ -729,11 +731,6 @@ public class FreemarkerHttpServlet extends VitroHttpServlet {
|
||||||
this.redirectUrl = redirectUrl;
|
this.redirectUrl = redirectUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Override
|
|
||||||
// public ResponseType getType() {
|
|
||||||
// return ResponseType.REDIRECT;
|
|
||||||
// }
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getRedirectUrl() {
|
public String getRedirectUrl() {
|
||||||
return this.redirectUrl;
|
return this.redirectUrl;
|
||||||
|
@ -781,11 +778,6 @@ public class FreemarkerHttpServlet extends VitroHttpServlet {
|
||||||
super(statusCode);
|
super(statusCode);
|
||||||
this.forwardUrl = forwardUrl;
|
this.forwardUrl = forwardUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Override
|
|
||||||
// public ResponseType getType() {
|
|
||||||
// return ResponseType.FORWARD;
|
|
||||||
// }
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getForwardUrl() {
|
public String getForwardUrl() {
|
||||||
|
@ -856,11 +848,6 @@ public class FreemarkerHttpServlet extends VitroHttpServlet {
|
||||||
super(templateName, map, statusCode);
|
super(templateName, map, statusCode);
|
||||||
this.cause = cause;
|
this.cause = cause;
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Override
|
|
||||||
// public ResponseType getType() {
|
|
||||||
// return ResponseType.EXCEPTION;
|
|
||||||
// }
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Throwable getException() {
|
public Throwable getException() {
|
||||||
|
|
|
@ -34,6 +34,12 @@ public class SiteAdminController extends FreemarkerHttpServlet {
|
||||||
return siteName + " Site Administration";
|
return siteName + " Site Administration";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @Override
|
||||||
|
// protected boolean requiresLogin() {
|
||||||
|
// // User must be logged in to view this page.
|
||||||
|
// return true;
|
||||||
|
// }
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected ResponseValues processRequest(VitroRequest vreq) {
|
protected ResponseValues processRequest(VitroRequest vreq) {
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue