Merged V3.2 to HEAD

15579: Merged V3.1 to V3.2
      14048: Fixed ETHREEOH-1612: Unable to modify the 'guest' username(s)
      14093: Build/test fix - fallout from recent guest changes
   15581: Removed reference to 'alfresco.messages.portlets' resource bundle
   15582: Fixed merge errors after guest user changes
   15583: Merged V3.1 to V3.2
      14049: Minor addition to ETHREEOH-1612 fix: Guest and Admin usernames should not be changed AFTER INSTALLATION
      14060: Handle null username in calls to authenticate
      14086: Removed references to non-existent GROUP_ALFRESCO_GUESTS.
   15584: Merged V3.1 to V3.2
      14103: Build/test fix - fallout from recent guest changes (revert previous change + move makeHomeFolderIfRequired out of getPersonOrNull)
   15585: Merged V3.1 to V3.2
      14110: Build/test fix (CMISTest) - fallout from recent guest changes (test server ctx must be init'ed before calling runAs)
      14166: Fixed ETHREEOH-2016: Usernames with domain-name separators lead to "bad filename" errors
      14184: *RECORD ONLY* Fixed ETHREEOH-2018: NTLM SSO fails with NPE
      14495: *RECORD ONLY*
      14511: *RECORD ONLY*
      14516: ETHREEOH-2162 (DB2 script key rename)
___________________________________________________________________
Modified: svn:mergeinfo
   Merged /alfresco/BRANCHES/V3.0:r14494
   Merged /alfresco/BRANCHES/V3.1:r14048-14049,14060,14086,14093,14103,14110,14166,14184,14495,14511,14516
   Merged /alfresco/BRANCHES/V3.2:r15579,15581-15585


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@16859 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2009-10-13 11:51:40 +00:00
parent d67b53b7cc
commit 43ba7b38b5
8 changed files with 19 additions and 19 deletions

View File

@@ -29,7 +29,7 @@ import javax.portlet.PortletException;
import javax.portlet.RenderRequest; import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse; import javax.portlet.RenderResponse;
import org.alfresco.service.cmr.security.PermissionService; import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.web.app.servlet.AuthenticationHelper; import org.alfresco.web.app.servlet.AuthenticationHelper;
import org.alfresco.web.bean.repository.User; import org.alfresco.web.bean.repository.User;
import org.apache.myfaces.portlet.DefaultViewSelector; import org.apache.myfaces.portlet.DefaultViewSelector;
@@ -45,7 +45,7 @@ public class AlfrescoDefaultViewSelector implements DefaultViewSelector
public String selectViewId(RenderRequest request, RenderResponse response) throws PortletException public String selectViewId(RenderRequest request, RenderResponse response) throws PortletException
{ {
User user = (User)request.getPortletSession().getAttribute(AuthenticationHelper.AUTHENTICATION_USER); User user = (User)request.getPortletSession().getAttribute(AuthenticationHelper.AUTHENTICATION_USER);
if (user != null && user.getUserName().equals(PermissionService.GUEST_AUTHORITY)) if (user != null && user.getUserName().equals(AuthenticationUtil.getGuestUserName()))
{ {
return "/jsp/browse/browse.jsp"; return "/jsp/browse/browse.jsp";
} }

View File

@@ -466,6 +466,7 @@ public final class AuthenticationHelper
* @param httpResponse The HTTP response * @param httpResponse The HTTP response
* @return The User object representing the current user or null if it could not be found * @return The User object representing the current user or null if it could not be found
*/ */
@SuppressWarnings("unchecked")
public static User getUser(ServletContext sc, HttpServletRequest httpRequest, HttpServletResponse httpResponse) public static User getUser(ServletContext sc, HttpServletRequest httpRequest, HttpServletResponse httpResponse)
{ {
String userId = null; String userId = null;
@@ -491,10 +492,10 @@ public final class AuthenticationHelper
// naff solution as we need to enumerate all session keys until we find the one that // naff solution as we need to enumerate all session keys until we find the one that
// should match our User objects - this is weak but we don't know how the underlying // should match our User objects - this is weak but we don't know how the underlying
// Portal vendor has decided to encode the objects in the session // Portal vendor has decided to encode the objects in the session
Enumeration<?> enumNames = session.getAttributeNames(); Enumeration<String> enumNames = (Enumeration<String>) session.getAttributeNames();
while (enumNames.hasMoreElements()) while (enumNames.hasMoreElements())
{ {
String name = (String)enumNames.nextElement(); String name = enumNames.nextElement();
if (name.endsWith(AUTHENTICATION_USER)) if (name.endsWith(AUTHENTICATION_USER))
{ {
user = (User) session.getAttribute(name); user = (User) session.getAttribute(name);

View File

@@ -33,7 +33,6 @@ import javax.servlet.http.HttpServletResponse;
import org.alfresco.repo.security.authentication.AuthenticationUtil; import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork; import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork;
import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.security.PermissionService;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
@@ -96,7 +95,7 @@ public class GuestDownloadContentServlet extends BaseDownloadContentServlet
} }
DownloadContentWork dcw = new DownloadContentWork(req, res); DownloadContentWork dcw = new DownloadContentWork(req, res);
AuthenticationUtil.runAs(dcw, PermissionService.GUEST_AUTHORITY); AuthenticationUtil.runAs(dcw, AuthenticationUtil.getGuestUserName());
} }
/** /**

View File

@@ -46,8 +46,6 @@ import org.alfresco.web.bean.repository.User;
import org.alfresco.web.ui.repo.component.template.DefaultModelHelper; import org.alfresco.web.ui.repo.component.template.DefaultModelHelper;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
/** /**
* Servlet responsible for streaming content from a template processed against a node directly * Servlet responsible for streaming content from a template processed against a node directly
@@ -109,8 +107,8 @@ public class GuestTemplateContentServlet extends BaseTemplateContentServlet
PersonService personService = (PersonService)services.getPersonService(); PersonService personService = (PersonService)services.getPersonService();
NodeService nodeService = (NodeService)services.getNodeService(); NodeService nodeService = (NodeService)services.getNodeService();
NodeRef guestRef = personService.getPerson(PermissionService.GUEST_AUTHORITY); NodeRef guestRef = personService.getPerson(AuthenticationUtil.getGuestUserName());
User guestUser = new User(PermissionService.GUEST_AUTHORITY, auth.getCurrentTicket(), guestRef); User guestUser = new User(AuthenticationUtil.getGuestUserName(), auth.getCurrentTicket(), guestRef);
NodeRef guestHomeRef = (NodeRef)nodeService.getProperty(guestRef, ContentModel.PROP_HOMEFOLDER); NodeRef guestHomeRef = (NodeRef)nodeService.getProperty(guestRef, ContentModel.PROP_HOMEFOLDER);
if (nodeService.exists(guestHomeRef) == false) if (nodeService.exists(guestHomeRef) == false)
{ {
@@ -136,7 +134,7 @@ public class GuestTemplateContentServlet extends BaseTemplateContentServlet
} }
TemplateContentWork tcw = new TemplateContentWork(req, res); TemplateContentWork tcw = new TemplateContentWork(req, res);
AuthenticationUtil.runAs(tcw, PermissionService.GUEST_AUTHORITY); AuthenticationUtil.runAs(tcw, AuthenticationUtil.getGuestUserName());
} }
/** /**

View File

@@ -38,13 +38,13 @@ import javax.transaction.UserTransaction;
import org.alfresco.model.ContentModel; import org.alfresco.model.ContentModel;
import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser;
import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.repo.transaction.RetryingTransactionHelper; import org.alfresco.repo.transaction.RetryingTransactionHelper;
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback; import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.search.ResultSet; import org.alfresco.service.cmr.search.ResultSet;
import org.alfresco.service.cmr.search.SearchService; import org.alfresco.service.cmr.search.SearchService;
import org.alfresco.service.cmr.security.AuthorityService; import org.alfresco.service.cmr.security.AuthorityService;
import org.alfresco.service.cmr.security.PermissionService;
import org.alfresco.service.cmr.security.PersonService; import org.alfresco.service.cmr.security.PersonService;
import org.alfresco.web.app.Application; import org.alfresco.web.app.Application;
import org.alfresco.web.bean.dialog.BaseDialogBean; import org.alfresco.web.bean.dialog.BaseDialogBean;
@@ -231,7 +231,7 @@ public class AddUsersDialog extends BaseDialogBean
for (NodeRef personRef : nodes) for (NodeRef personRef : nodes)
{ {
String username = (String)getNodeService().getProperty(personRef, ContentModel.PROP_USERNAME); String username = (String)getNodeService().getProperty(personRef, ContentModel.PROP_USERNAME);
if (PermissionService.GUEST_AUTHORITY.equals(username) == false) if (AuthenticationUtil.getGuestUserName().equals(username) == false)
{ {
String firstName = (String)getNodeService().getProperty(personRef, ContentModel.PROP_FIRSTNAME); String firstName = (String)getNodeService().getProperty(personRef, ContentModel.PROP_FIRSTNAME);
String lastName = (String)getNodeService().getProperty(personRef, ContentModel.PROP_LASTNAME); String lastName = (String)getNodeService().getProperty(personRef, ContentModel.PROP_LASTNAME);

View File

@@ -769,7 +769,7 @@ public final class Repository
{ {
TenantService tenantService = (TenantService)FacesContextUtils.getRequiredWebApplicationContext(context).getBean("tenantService"); TenantService tenantService = (TenantService)FacesContextUtils.getRequiredWebApplicationContext(context).getBean("tenantService");
String userName = Application.getCurrentUser(context).getUserName(); String userName = Application.getCurrentUser(context).getUserName();
return tenantService.getBaseNameUser(userName).equalsIgnoreCase(PermissionService.GUEST_AUTHORITY); return tenantService.getBaseNameUser(userName).equalsIgnoreCase(AuthenticationUtil.getGuestUserName());
} }
/** /**

View File

@@ -36,12 +36,12 @@ import javax.transaction.UserTransaction;
import org.alfresco.model.ContentModel; import org.alfresco.model.ContentModel;
import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser;
import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.search.LimitBy; import org.alfresco.service.cmr.search.LimitBy;
import org.alfresco.service.cmr.search.ResultSet; import org.alfresco.service.cmr.search.ResultSet;
import org.alfresco.service.cmr.search.SearchParameters; import org.alfresco.service.cmr.search.SearchParameters;
import org.alfresco.service.cmr.search.SearchService; import org.alfresco.service.cmr.search.SearchService;
import org.alfresco.service.cmr.security.PermissionService;
import org.alfresco.service.cmr.security.PersonService; import org.alfresco.service.cmr.security.PersonService;
import org.alfresco.service.cmr.workflow.WorkflowService; import org.alfresco.service.cmr.workflow.WorkflowService;
import org.alfresco.web.app.Application; import org.alfresco.web.app.Application;
@@ -171,7 +171,7 @@ public abstract class BaseReassignDialog extends BaseDialogBean
for (NodeRef personRef : nodes) for (NodeRef personRef : nodes)
{ {
String username = (String)getNodeService().getProperty(personRef, ContentModel.PROP_USERNAME); String username = (String)getNodeService().getProperty(personRef, ContentModel.PROP_USERNAME);
if (PermissionService.GUEST_AUTHORITY.equals(username) == false) if (AuthenticationUtil.getGuestUserName().equals(username) == false)
{ {
String firstName = (String)getNodeService().getProperty(personRef, ContentModel.PROP_FIRSTNAME); String firstName = (String)getNodeService().getProperty(personRef, ContentModel.PROP_FIRSTNAME);
String lastName = (String)getNodeService().getProperty(personRef, ContentModel.PROP_LASTNAME); String lastName = (String)getNodeService().getProperty(personRef, ContentModel.PROP_LASTNAME);

View File

@@ -44,6 +44,7 @@ import javax.faces.event.FacesEvent;
import javax.transaction.UserTransaction; import javax.transaction.UserTransaction;
import org.alfresco.model.ContentModel; import org.alfresco.model.ContentModel;
import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.repo.security.authority.AuthorityDAO; import org.alfresco.repo.security.authority.AuthorityDAO;
import org.alfresco.service.cmr.dictionary.AssociationDefinition; import org.alfresco.service.cmr.dictionary.AssociationDefinition;
import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeRef;
@@ -185,6 +186,7 @@ public abstract class BaseAssociationEditor extends UIInput
/** /**
* @see javax.faces.component.UIComponent#decode(javax.faces.context.FacesContext) * @see javax.faces.component.UIComponent#decode(javax.faces.context.FacesContext)
*/ */
@SuppressWarnings("unchecked")
public void decode(FacesContext context) public void decode(FacesContext context)
{ {
Map requestMap = context.getExternalContext().getRequestParameterMap(); Map requestMap = context.getExternalContext().getRequestParameterMap();
@@ -862,7 +864,7 @@ public abstract class BaseAssociationEditor extends UIInput
{ {
// if the node represents a person, show the full name and userid instead of the name // if the node represents a person, show the full name and userid instead of the name
String userName = (String)nodeService.getProperty(item, ContentModel.PROP_USERNAME); String userName = (String)nodeService.getProperty(item, ContentModel.PROP_USERNAME);
if (userName != null && (userName.equals(PermissionService.GUEST_AUTHORITY) == false)) if (userName != null && (userName.equals(AuthenticationUtil.getGuestUserName()) == false))
{ {
out.write("<option value='"); out.write("<option value='");
out.write(item.toString()); out.write(item.toString());
@@ -1151,9 +1153,9 @@ public abstract class BaseAssociationEditor extends UIInput
/** /**
* Comparator used for ordering groups * Comparator used for ordering groups
*/ */
private static class SimpleStringComparator implements Comparator private static class SimpleStringComparator implements Comparator<String>
{ {
public int compare(final Object obj1, final Object obj2) public int compare(final String obj1, final String obj2)
{ {
if (obj1 == null && obj2 == null) return 0; if (obj1 == null && obj2 == null) return 0;
if (obj1 == null) return -1; if (obj1 == null) return -1;