From d37d97634478cf6d8c7a120d84322c976596c283 Mon Sep 17 00:00:00 2001 From: j2blake Date: Thu, 2 Feb 2012 21:58:19 +0000 Subject: [PATCH] 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. --- .../authenticate/LoginExternalAuthReturn.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/authenticate/LoginExternalAuthReturn.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/authenticate/LoginExternalAuthReturn.java index 216bb12cd..a2e77115a 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/authenticate/LoginExternalAuthReturn.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/authenticate/LoginExternalAuthReturn.java @@ -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);