NIHVIVO-2694 Make it easier to change the AuthenticatorFactory

This commit is contained in:
j2blake 2012-02-02 21:54:40 +00:00
parent 2c2151a0f2
commit b0649849ce
2 changed files with 24 additions and 2 deletions

View file

@ -14,6 +14,8 @@ import javax.servlet.http.HttpServletRequest;
import org.apache.commons.codec.binary.Hex; import org.apache.commons.codec.binary.Hex;
import edu.cornell.mannlib.vedit.beans.LoginStatusBean.AuthenticationSource; import edu.cornell.mannlib.vedit.beans.LoginStatusBean.AuthenticationSource;
import edu.cornell.mannlib.vitro.webapp.auth.identifier.ActiveIdentifierBundleFactories;
import edu.cornell.mannlib.vitro.webapp.auth.identifier.IdentifierBundle;
import edu.cornell.mannlib.vitro.webapp.beans.UserAccount; import edu.cornell.mannlib.vitro.webapp.beans.UserAccount;
/** /**
@ -57,14 +59,19 @@ public abstract class Authenticator {
ServletContext ctx = request.getSession().getServletContext(); ServletContext ctx = request.getSession().getServletContext();
Object attribute = ctx.getAttribute(FACTORY_ATTRIBUTE_NAME); Object attribute = ctx.getAttribute(FACTORY_ATTRIBUTE_NAME);
if (!(attribute instanceof AuthenticatorFactory)) { if (!(attribute instanceof AuthenticatorFactory)) {
attribute = new BasicAuthenticator.Factory(); setAuthenticatorFactory(new BasicAuthenticator.Factory(), ctx);
ctx.setAttribute(FACTORY_ATTRIBUTE_NAME, attribute); attribute = ctx.getAttribute(FACTORY_ATTRIBUTE_NAME);
} }
AuthenticatorFactory factory = (AuthenticatorFactory) attribute; AuthenticatorFactory factory = (AuthenticatorFactory) attribute;
return factory.getInstance(request); return factory.getInstance(request);
} }
public static void setAuthenticatorFactory(AuthenticatorFactory factory,
ServletContext ctx) {
ctx.setAttribute(FACTORY_ATTRIBUTE_NAME, factory);
}
// ---------------------------------------------------------------------- // ----------------------------------------------------------------------
// The interface. // The interface.
// ---------------------------------------------------------------------- // ----------------------------------------------------------------------
@ -200,6 +207,16 @@ public abstract class Authenticator {
} }
} }
/**
* Get the IDs that would be created for this userAccount, if this user were
* to log in.
*/
public static IdentifierBundle getIdsForUserAccount(HttpServletRequest req,
UserAccount userAccount) {
return ActiveIdentifierBundleFactories.getUserIdentifierBundle(req,
userAccount);
}
// ---------------------------------------------------------------------- // ----------------------------------------------------------------------
// Exceptions // Exceptions
// ---------------------------------------------------------------------- // ----------------------------------------------------------------------

View file

@ -312,4 +312,9 @@ public class BasicAuthenticator extends Authenticator {
return wadf; return wadf;
} }
@Override
public String toString() {
return "BasicAuthenticator[" + request + "]";
}
} }