NIHVIVO-1207 Don't bother to store the SelfEditing identifiers in the session -- nobody is looking there for them.

This commit is contained in:
jeb228 2010-11-17 19:21:50 +00:00
parent 0b2dc61fbe
commit dae66852f9

View file

@ -32,7 +32,8 @@ import edu.cornell.mannlib.vitro.webapp.beans.Individual;
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory; import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
/** /**
* Pulls a netId out of the CUWebAuth REMOTE_USER header. * Attempts to pull a NetId and a SelfEditing identifier from the externally
* authorized username.
* *
* @author bdc34, trashed by jeb228 * @author bdc34, trashed by jeb228
*/ */
@ -45,17 +46,10 @@ public class SelfEditingIdentifierFactory implements IdentifierBundleFactory {
*/ */
private static final String PROPERTY_EXTERNAL_AUTH_HEADER_NAME = "externalAuth.headerName"; private static final String PROPERTY_EXTERNAL_AUTH_HEADER_NAME = "externalAuth.headerName";
private final static String ATTRIBUTE_NETID = "SelfEditingIdentifierFactory.netid";
private final static String ATTRIBUTE_SELFID = "SelfEditingIdentifierFactory.selfid";
private static final int MAXIMUM_USERNAME_LENGTH = 100; private static final int MAXIMUM_USERNAME_LENGTH = 100;
public IdentifierBundle getIdentifierBundle(ServletRequest request, public IdentifierBundle getIdentifierBundle(ServletRequest request,
HttpSession session, ServletContext context) { HttpSession session, ServletContext context) {
if (session == null) {
log.debug("session is null.");
return null;
}
if (!(request instanceof HttpServletRequest)) { if (!(request instanceof HttpServletRequest)) {
log.debug("request is null or not an HttpServletRequest"); log.debug("request is null or not an HttpServletRequest");
return null; return null;
@ -65,11 +59,13 @@ public class SelfEditingIdentifierFactory implements IdentifierBundleFactory {
NetId netId = figureNetId(req); NetId netId = figureNetId(req);
SelfEditing selfId = figureSelfEditingId(req, netId); SelfEditing selfId = figureSelfEditingId(req, netId);
putIdsInSession(req, netId, selfId);
return getIdsFromSession(session); return buildIdentifierBundle(netId, selfId);
} }
/**
* Get the name of the externally authorized user and put it into a NetId.
*/
private NetId figureNetId(HttpServletRequest req) { private NetId figureNetId(HttpServletRequest req) {
String externalAuthHeaderName = ConfigurationProperties.getProperty(PROPERTY_EXTERNAL_AUTH_HEADER_NAME); String externalAuthHeaderName = ConfigurationProperties.getProperty(PROPERTY_EXTERNAL_AUTH_HEADER_NAME);
if (isEmpty(externalAuthHeaderName)) { if (isEmpty(externalAuthHeaderName)) {
@ -91,6 +87,10 @@ public class SelfEditingIdentifierFactory implements IdentifierBundleFactory {
return new NetId(externalUsername); return new NetId(externalUsername);
} }
/**
* If the externally authorized username is associated with an Individual in
* the model, create a SelfEditing identifier.
*/
private SelfEditing figureSelfEditingId(HttpServletRequest request, private SelfEditing figureSelfEditingId(HttpServletRequest request,
NetId netId) { NetId netId) {
if (netId == null) { if (netId == null) {
@ -129,24 +129,12 @@ public class SelfEditingIdentifierFactory implements IdentifierBundleFactory {
return new SelfEditing(ind, blacklisted, false); return new SelfEditing(ind, blacklisted, false);
} }
private void putIdsInSession(HttpServletRequest request, NetId netId, /**
* Create a bundle that holds the identifiers we created, or null if we
* didn't create any.
*/
private IdentifierBundle buildIdentifierBundle(NetId netId,
SelfEditing selfId) { SelfEditing selfId) {
// If there is no session, and nothing to store, we're done.
HttpSession session = request.getSession(false);
if ((session == null) && (netId == null) && (selfId == null)) {
return;
}
// If there is a session, set or clear the attributes as appropriate.
session = request.getSession();
session.setAttribute(ATTRIBUTE_NETID, netId);
session.setAttribute(ATTRIBUTE_SELFID, selfId);
}
private IdentifierBundle getIdsFromSession(HttpSession session) {
NetId netId = (NetId) session.getAttribute(ATTRIBUTE_NETID);
SelfEditing selfId = (SelfEditing) session.getAttribute(ATTRIBUTE_SELFID);
if (netId == null && selfId == null) { if (netId == null && selfId == null) {
log.debug("no self-editing IDs in the session"); log.debug("no self-editing IDs in the session");
return null; return null;