NIHVIVO-2694 If there is a problem with logging in externally, show it in the DisplayMessage, since it might not show up in the login widget message area.

This commit is contained in:
j2blake 2012-02-02 21:58:19 +00:00
parent 486dc1dd7d
commit d37d976344

View file

@ -15,11 +15,13 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import edu.cornell.mannlib.vedit.beans.LoginStatusBean.AuthenticationSource;
import edu.cornell.mannlib.vitro.webapp.beans.DisplayMessage;
import edu.cornell.mannlib.vitro.webapp.beans.UserAccount;
import edu.cornell.mannlib.vitro.webapp.controller.accounts.user.UserAccountsFirstTimeExternalPage;
import edu.cornell.mannlib.vitro.webapp.controller.authenticate.Authenticator.LoginNotPermitted;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder;
import edu.cornell.mannlib.vitro.webapp.controller.login.LoginProcessBean;
import edu.cornell.mannlib.vitro.webapp.controller.login.LoginProcessBean.Message;
/**
* Handle the return from the external authorization login server. If we are
@ -110,6 +112,15 @@ public class LoginExternalAuthReturn extends BaseLoginServlet {
}
}
@Override
protected void complainAndReturnToReferrer(HttpServletRequest req,
HttpServletResponse resp, String sessionAttributeForReferrer,
Message message, Object... args) throws IOException {
DisplayMessage.setMessage(req, message.formatMessage(args));
super.complainAndReturnToReferrer(req, resp,
sessionAttributeForReferrer, message, args);
}
private void removeLoginProcessArtifacts(HttpServletRequest req) {
req.getSession().removeAttribute(ATTRIBUTE_REFERRER);
LoginProcessBean.removeBean(req);