mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
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:
@@ -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";
|
||||||
}
|
}
|
||||||
|
@@ -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);
|
||||||
|
@@ -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());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -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());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -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);
|
||||||
|
@@ -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());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -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);
|
||||||
|
@@ -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;
|
||||||
|
Reference in New Issue
Block a user