diff --git a/source/java/org/alfresco/repo/web/scripts/portlet/WebClientPortletAuthenticatorFactory.java b/source/java/org/alfresco/repo/web/scripts/portlet/WebClientPortletAuthenticatorFactory.java index 2fd8a91279..b3d641d2b9 100644 --- a/source/java/org/alfresco/repo/web/scripts/portlet/WebClientPortletAuthenticatorFactory.java +++ b/source/java/org/alfresco/repo/web/scripts/portlet/WebClientPortletAuthenticatorFactory.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2005-2007 Alfresco Software Limited. + * Copyright (C) 2005-2009 Alfresco Software Limited. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -167,7 +167,20 @@ public class WebClientPortletAuthenticatorFactory implements PortletAuthenticato return true; } - + + /* (non-Javadoc) + * @see org.alfresco.web.scripts.Authenticator#emptyCredentials() + */ + public boolean emptyCredentials() + { + String portalUser = (String)req.getPortletSession().getAttribute(WebScriptPortletRequest.ALFPORTLETUSERNAME); + if (portalUser == null) + { + portalUser = req.getRemoteUser(); + } + return (portalUser == null); + } + /** * Helper. Remove Web Client session invalidated flag * diff --git a/source/java/org/alfresco/repo/web/scripts/servlet/WebClientAuthenticatorFactory.java b/source/java/org/alfresco/repo/web/scripts/servlet/WebClientAuthenticatorFactory.java index a36c46b8c9..efea3a54bb 100644 --- a/source/java/org/alfresco/repo/web/scripts/servlet/WebClientAuthenticatorFactory.java +++ b/source/java/org/alfresco/repo/web/scripts/servlet/WebClientAuthenticatorFactory.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2005-2007 Alfresco Software Limited. + * Copyright (C) 2005-2009 Alfresco Software Limited. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -86,6 +86,8 @@ public class WebClientAuthenticatorFactory implements ServletAuthenticatorFactor private WebScriptServletRequest servletReq; private WebScriptServletResponse servletRes; + private String ticket; + /** * Construct * @@ -97,6 +99,8 @@ public class WebClientAuthenticatorFactory implements ServletAuthenticatorFactor { this.servletReq = req; this.servletRes = res; + + this.ticket = req.getParameter("ticket"); } /* (non-Javadoc) @@ -113,14 +117,14 @@ public class WebClientAuthenticatorFactory implements ServletAuthenticatorFactor // HttpServletRequest req = servletReq.getHttpServletRequest(); HttpServletResponse res = servletRes.getHttpServletResponse(); - String ticket = req.getParameter("ticket"); + if (logger.isDebugEnabled()) { logger.debug("Alfresco ticket provided: " + (ticket != null && ticket.length() > 0)); } - if (ticket != null && ticket.length() > 0) + if (! emptyCredentials()) { if (logger.isDebugEnabled()) logger.debug("Authenticating ticket " + ticket); @@ -164,6 +168,14 @@ public class WebClientAuthenticatorFactory implements ServletAuthenticatorFactor return !(status == null || status == AuthenticationStatus.Failure); } + + /* (non-Javadoc) + * @see org.alfresco.web.scripts.Authenticator#emptyCredentials() + */ + public boolean emptyCredentials() + { + return (ticket == null || ticket.length() == 0); + } } } \ No newline at end of file