NIHVIVO-1399 make the contructor and the setBean() protected, so we can subclass this bean for faking external authentication.
This commit is contained in:
parent
bd69387ba9
commit
7ac8b0c811
1 changed files with 13 additions and 5 deletions
|
@ -5,6 +5,7 @@ package edu.cornell.mannlib.vitro.webapp.controller.authenticate;
|
||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
|
|
||||||
|
import javax.servlet.ServletContext;
|
||||||
import javax.servlet.ServletRequest;
|
import javax.servlet.ServletRequest;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpSession;
|
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
|
* Get the bean from the servlet context. If there is no bean, create one.
|
||||||
* bean, create one.
|
|
||||||
*
|
*
|
||||||
* Never returns null.
|
* Never returns null.
|
||||||
*/
|
*/
|
||||||
|
@ -57,8 +57,10 @@ public class ExternalAuthHelper {
|
||||||
log.trace("No session; no need to create one.");
|
log.trace("No session; no need to create one.");
|
||||||
return DUMMY_HELPER;
|
return DUMMY_HELPER;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ServletContext context = session.getServletContext();
|
||||||
|
|
||||||
Object attr = session.getAttribute(BEAN_ATTRIBUTE);
|
Object attr = context.getAttribute(BEAN_ATTRIBUTE);
|
||||||
if (attr instanceof ExternalAuthHelper) {
|
if (attr instanceof ExternalAuthHelper) {
|
||||||
log.trace("Found a bean: " + attr);
|
log.trace("Found a bean: " + attr);
|
||||||
return (ExternalAuthHelper) attr;
|
return (ExternalAuthHelper) attr;
|
||||||
|
@ -66,10 +68,15 @@ public class ExternalAuthHelper {
|
||||||
|
|
||||||
ExternalAuthHelper bean = buildBean();
|
ExternalAuthHelper bean = buildBean();
|
||||||
log.debug("Created a bean: " + bean);
|
log.debug("Created a bean: " + bean);
|
||||||
session.setAttribute(BEAN_ATTRIBUTE, bean);
|
setBean(context, bean);
|
||||||
return 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() {
|
private static ExternalAuthHelper buildBean() {
|
||||||
String externalAuthServerUrl = ConfigurationProperties
|
String externalAuthServerUrl = ConfigurationProperties
|
||||||
.getProperty(PROPERTY_EXTERNAL_AUTH_SERVER_URL);
|
.getProperty(PROPERTY_EXTERNAL_AUTH_SERVER_URL);
|
||||||
|
@ -87,7 +94,8 @@ public class ExternalAuthHelper {
|
||||||
private final String externalAuthServerUrl;
|
private final String externalAuthServerUrl;
|
||||||
private final String externalAuthHeaderName;
|
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) {
|
String externalAuthHeaderName) {
|
||||||
this.externalAuthServerUrl = trimThis(externalAuthServerUrl);
|
this.externalAuthServerUrl = trimThis(externalAuthServerUrl);
|
||||||
this.externalAuthHeaderName = trimThis(externalAuthHeaderName);
|
this.externalAuthHeaderName = trimThis(externalAuthHeaderName);
|
||||||
|
|
Loading…
Add table
Reference in a new issue