mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Merged V4.1-BUG-FIX to HEAD
42804: Merged BRANCHES/DEV/BELARUS/V4.1-BUG-FIX-2012_10_17 to BRANCHES/DEV/V4.1-BUG-FIX: 42748: ALF-14200: Adding Invalid Aspects Via CMIS ATOM API Results in NullPointerException 42810: Fix for ALF-15276 - sys:locale Attribute No Longer Available From jsnode 42814: ALF-15276 - small improvement to remove duplicated data from response 42824: ALF-15048: Merged PATCHES/V4.0.2 to V4.1-BUG-FIX 42724: ALF-16048: CLONE - Version history doesn't go beyond two versions (0.1 and 0.2) when dragged and dropped via CIFS from Mac Lion OSx 42739: ALF-16048: New files missing from previous check in 42742: ALF-16048: Another missing file. 42839: ALF-16417: Fix "Hybrid Sync - can retain invalid cloud tickets in a local cache" - retry once for invalid auth - also externalise the implicit/default cache config 42849: NodeDAO: Added new method to retrieve specific store ID - public Pair<Long, StoreRef> getStore(StoreRef storeRef); 42857: Merged DEV to V4.1-BUG-FIX 42821: ALF-13506 : WCMQS Example Application Caching Causes Changes to Inconsistently Appear on the Editorial Web Site Concurrency was improved for AssetImpl class. The returned values of the collections were made unmodifiable in the classes which implement Resource interface. 42872: ALF-15601: "Performance issue using CMIS method getChildren() - gets version history" - avoids getting the version history (an expensive operation) if possible i.e. in the case of current version (live) nodes like for getChildren 42900: Merged DEV to V4.1-BUG-FIX 42734: ALF-15335 : 'external' authentication subsystem debug information too scarce Extended debug information in the authentication subsystem. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@42904 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -29,6 +29,8 @@ import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork;
|
||||
import org.alfresco.service.cmr.security.PersonService;
|
||||
|
||||
import org.alfresco.repo.webdav.auth.RemoteUserMapper;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
/**
|
||||
* A default {@link RemoteUserMapper} implementation. Extracts a user ID using
|
||||
* {@link HttpServletRequest#getRemoteUser()} and optionally from a configured request header. If there is no configured
|
||||
@@ -57,6 +59,8 @@ public class DefaultRemoteUserMapper implements RemoteUserMapper, ActivateableBe
|
||||
/** The person service. */
|
||||
private PersonService personService;
|
||||
|
||||
static Log logger = LogFactory.getLog(DefaultRemoteUserMapper.class);
|
||||
|
||||
/**
|
||||
* Sets the name of the remote user used to 'proxy' requests securely in the name of another user. Typically this
|
||||
* remote identity will be protected by an SSL client certificate.
|
||||
@@ -123,25 +127,43 @@ public class DefaultRemoteUserMapper implements RemoteUserMapper, ActivateableBe
|
||||
*/
|
||||
public String getRemoteUser(HttpServletRequest request)
|
||||
{
|
||||
if (logger.isDebugEnabled())
|
||||
logger.debug("Getting RemoteUser from http request.");
|
||||
if (!this.isEnabled)
|
||||
{
|
||||
if (logger.isDebugEnabled())
|
||||
logger.debug("DefaultRemoteUserMapper is disabled, returning null.");
|
||||
return null;
|
||||
}
|
||||
String remoteUserId = request.getRemoteUser();
|
||||
String headerUserId = extractUserFromProxyHeader(request);
|
||||
if (logger.isDebugEnabled())
|
||||
{
|
||||
logger.debug("The remote user id is: " + remoteUserId);
|
||||
logger.debug("The header user id is: " + headerUserId);
|
||||
logger.debug("The proxy user name is: " + this.proxyUserName);
|
||||
}
|
||||
if (this.proxyUserName == null)
|
||||
{
|
||||
// Normalize the user ID taking into account case sensitivity settings
|
||||
return normalizeUserId(headerUserId != null ? headerUserId : remoteUserId);
|
||||
String normalizedUserId = normalizeUserId(headerUserId != null ? headerUserId : remoteUserId);
|
||||
if (logger.isDebugEnabled())
|
||||
logger.debug("Returning " + normalizedUserId);
|
||||
return normalizedUserId;
|
||||
}
|
||||
else if (remoteUserId == null)
|
||||
{
|
||||
if (logger.isDebugEnabled())
|
||||
logger.debug("Returning null");
|
||||
return null;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Normalize the user ID taking into account case sensitivity settings
|
||||
return normalizeUserId(remoteUserId.equals(this.proxyUserName) ? headerUserId : remoteUserId);
|
||||
String normalizedUserId = normalizeUserId(remoteUserId.equals(this.proxyUserName) ? headerUserId : remoteUserId);
|
||||
if (logger.isDebugEnabled())
|
||||
logger.debug("Returning " + normalizedUserId);
|
||||
return normalizedUserId;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -165,6 +187,8 @@ public class DefaultRemoteUserMapper implements RemoteUserMapper, ActivateableBe
|
||||
return personService.getUserIdentifier(userId);
|
||||
}
|
||||
}, AuthenticationUtil.getSystemUserName());
|
||||
if (logger.isDebugEnabled())
|
||||
logger.debug("The normalized user name is: " + normalized + " for user id " + userId);
|
||||
return normalized == null ? userId : normalized;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user