NIHVIVO-1399 make the contructor and the setBean() protected, so we can subclass this bean for faking external authentication.

This commit is contained in:
jeb228 2010-11-28 22:34:15 +00:00
parent bd69387ba9
commit 7ac8b0c811

View file

@ -5,6 +5,7 @@ package edu.cornell.mannlib.vitro.webapp.controller.authenticate;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import javax.servlet.ServletContext;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
@ -41,8 +42,7 @@ public class ExternalAuthHelper {
// ----------------------------------------------------------------------
/**
* If there is no session, there is no bean. If there is a session and no
* bean, create one.
* Get the bean from the servlet context. If there is no bean, create one.
*
* Never returns null.
*/
@ -58,7 +58,9 @@ public class ExternalAuthHelper {
return DUMMY_HELPER;
}
Object attr = session.getAttribute(BEAN_ATTRIBUTE);
ServletContext context = session.getServletContext();
Object attr = context.getAttribute(BEAN_ATTRIBUTE);
if (attr instanceof ExternalAuthHelper) {
log.trace("Found a bean: " + attr);
return (ExternalAuthHelper) attr;
@ -66,10 +68,15 @@ public class ExternalAuthHelper {
ExternalAuthHelper bean = buildBean();
log.debug("Created a bean: " + bean);
session.setAttribute(BEAN_ATTRIBUTE, bean);
setBean(context, bean);
return bean;
}
/** It would be private, but we want to allow calls for faking. */
protected static void setBean(ServletContext context, ExternalAuthHelper bean) {
context.setAttribute(BEAN_ATTRIBUTE, bean);
}
private static ExternalAuthHelper buildBean() {
String externalAuthServerUrl = ConfigurationProperties
.getProperty(PROPERTY_EXTERNAL_AUTH_SERVER_URL);
@ -87,7 +94,8 @@ public class ExternalAuthHelper {
private final String externalAuthServerUrl;
private final String externalAuthHeaderName;
private ExternalAuthHelper(String externalAuthServerUrl,
/** It would be private, but we want to allow subclasses for faking. */
protected ExternalAuthHelper(String externalAuthServerUrl,
String externalAuthHeaderName) {
this.externalAuthServerUrl = trimThis(externalAuthServerUrl);
this.externalAuthHeaderName = trimThis(externalAuthHeaderName);