Merged V3.0 to HEAD

11943: Fix for ETHREEOH-879 & ETHREEOH-783: Multi-valued properties not allowed in Alfresco 3.0 (due to java.lang.UnsupportedOperationException)
   11944: Fix for ETHREEOH-865
   11947: Build fix for site service unit test failures.  This will be reviewed since it works round the issue rather than tackle why runAs is now failing.
   11952: ETHREEOH-845, ETHREEOH-871, ETHREEOH-853, ETHREEOH-839
   11953: ETHREEOH-483 Unable to upload files [with Flash 10 installed] Fixed to fit into yui 2.6.0
   11954: Added missing 'protocolOrder' configuration value.
   11956: Fix for ETHREEOH-895
   11957: Fix for ETHREEOH-891.
   11958: Readded generated source line for RemoteAPI project.
   11959: ETHREEOH-483 Unable to upload files [with Flash 10 installed] Missed to add this image
   11960: Removed JDK6 specific method.
   11962: Fixed missing setup of the share mapper class name when the <class> config tag is used. ALFCOM-2060.
   11964: fix for ETHREEOH-266 - restrict length of webapp to 150 chars.
   11965: Merged 2.2 to 3.0
      11926: Fox for ETHREEOH-725 User doesn't receive email to his box when rule 'Send an Email to specified users' is created 
   11966: ETHREEOH-872: Editing Email-notify-rules fails w/ ClassCastException
   11967: MT - test fixes (post runAs merge)
   11968: Changed Windows x64 NetBIOS warning message to be a debug message. ETHREEOH-897.
   11971: ETHREEOH-829 Case issue when inserting Document Share links into a discussion using richtext editor
   11973: Fix for ETHREEOH-890 - users with apostrophe in their login name can now login to Alfresco Explorer (and Share).

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@12490 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Kevin Roast
2008-12-18 13:58:20 +00:00
parent b387b9b85a
commit c07be19e36
13 changed files with 274 additions and 65 deletions

View File

@@ -565,17 +565,30 @@ public abstract class AuthenticationUtil
R result = null;
try
{
if ((realUser != null) && (isMtEnabled()))
if (isMtEnabled() && uid.equals(AuthenticationUtil.getSystemUserName()))
{
int idx = realUser.indexOf(TenantService.SEPARATOR);
if ((idx != -1) && (idx < (realUser.length() - 1)))
// Running as System in MT-enabled env - check to see if System should run with MT domain context
int effectiveIdx = -1;
int realIdx = -1;
if (effectiveUser != null)
{
if (uid.equals(AuthenticationUtil.getSystemUserName()))
{
uid = uid + TenantService.SEPARATOR + realUser.substring(idx + 1);
}
effectiveIdx = effectiveUser.indexOf(TenantService.SEPARATOR);
}
if (realUser != null)
{
realIdx = realUser.indexOf(TenantService.SEPARATOR);
}
if ((effectiveIdx != -1) && (effectiveIdx < (effectiveUser.length() - 1)))
{
uid = uid + TenantService.SEPARATOR + effectiveUser.substring(effectiveIdx + 1);
}
else if ((realIdx != -1) && (realIdx < (realUser.length() - 1)))
{
uid = uid + TenantService.SEPARATOR + realUser.substring(realIdx + 1);
}
}
if (realUser == null)