mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Merged V3.1 to HEAD
13424: ETHREEOH-1242: Sample LDAP authentication config breaks site invites in Share 13427: Fixes for ETHREEOH-1157: Propagate exceptions using ReportedException 13428: Fix ETHREEOH-1493: Upgrade from 2.1-A to 3.1 uses incorrect patch id and fixes_to_schema 13429: Specific fix for ETHREEOH-1157: duplicate/triplicate users not properly prohibited 13436: Merged V2.2 to V3.1 13435: Merged V2.1 to V2.2 12307: Merged DEV/V2.1SP7 to 2.1 11927: ETWOONE-396 12112: ETWOONE-396 13437: Fixed ETHREEOH-1498: Mismatched closing XML tag in ehcache-custom.xml.sample.cluster 13439: Fix for ETHREEOH-1157: JSF Dialogs Absorbing Exceptions 13456: Fixed ETHREEOH-1472: Changes to systemBootstrap cause bootstrapping ACP's not to work 13469: Upgrade patch to update internal version2Store counter (follow-on fix for ETHREEOH-1540) 13491: Chaining example for DOC-84 13492: Fixed paths in zip file 13494: Fixed GenericBootstrapPatch when overriding bootstrap views 13495: Added @version javadoc 13496: Minor logging updates 13497: Fixed ETHREEOH-1431: Authentication case sensitivity switch doesn't work 13500: Temporary fix for Sharepoint issue raised last week 13502: ETHREEOH-1575: It's impossible to create Change Request task 13511: Fix for ETHREEOH-1549: Impossible to create HTML web content 13529: Fix for ETHREEOH-1595 13531: Fix for ETHREEOH-1607: Error on chaining example xml - malformed comment 13537: Build fix ... exclude the system user from auto creation 13538: Build Fix - further contraints to aviod auto-creation of guest ___________________________________________________________________ Modified: svn:mergeinfo Merged /alfresco/BRANCHES/V2.1:r12307 Merged /alfresco/BRANCHES/V2.2:r13435 Merged /alfresco/BRANCHES/V3.1:r 13424,13427-13429,13436-13437,13439,13442-13450,13452,13454-13456, 13469-13473,13475-13476,13479-13480,13491-13500,13502,13511,13529-13538 git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@13619 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -40,6 +40,7 @@ import org.alfresco.repo.transaction.RetryingTransactionHelper;
|
||||
import org.alfresco.repo.transaction.AlfrescoTransactionSupport.TxnReadState;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.cmr.repository.NodeService;
|
||||
import org.alfresco.service.cmr.security.AuthorityType;
|
||||
import org.alfresco.service.cmr.security.PermissionService;
|
||||
import org.alfresco.service.cmr.security.PersonService;
|
||||
import org.alfresco.service.transaction.TransactionService;
|
||||
@@ -56,7 +57,7 @@ public abstract class AbstractAuthenticationComponent implements AuthenticationC
|
||||
* The abstract class keeps track of support for guest login
|
||||
*/
|
||||
private Boolean allowGuestLogin = null;
|
||||
|
||||
|
||||
private TenantService tenantService;
|
||||
|
||||
private PersonService personService;
|
||||
@@ -65,6 +66,8 @@ public abstract class AbstractAuthenticationComponent implements AuthenticationC
|
||||
|
||||
private TransactionService transactionService;
|
||||
|
||||
private boolean autoCreatePeopleOnLogin = true;
|
||||
|
||||
public AbstractAuthenticationComponent()
|
||||
{
|
||||
super();
|
||||
@@ -79,10 +82,10 @@ public abstract class AbstractAuthenticationComponent implements AuthenticationC
|
||||
{
|
||||
this.allowGuestLogin = allowGuestLogin;
|
||||
}
|
||||
|
||||
|
||||
public void setTenantService(TenantService tenantService)
|
||||
{
|
||||
this.tenantService = tenantService;
|
||||
this.tenantService = tenantService;
|
||||
}
|
||||
|
||||
public void setPersonService(PersonService personService)
|
||||
@@ -120,6 +123,16 @@ public abstract class AbstractAuthenticationComponent implements AuthenticationC
|
||||
return personService;
|
||||
}
|
||||
|
||||
public boolean isAutoCreatePeopleOnLogin()
|
||||
{
|
||||
return autoCreatePeopleOnLogin;
|
||||
}
|
||||
|
||||
public void setAutoCreatePeopleOnLogin(boolean autoCreatePeopleOnLogin)
|
||||
{
|
||||
this.autoCreatePeopleOnLogin = autoCreatePeopleOnLogin;
|
||||
}
|
||||
|
||||
public void authenticate(String userName, char[] password) throws AuthenticationException
|
||||
{
|
||||
// Support guest login from the login screen
|
||||
@@ -148,7 +161,7 @@ public abstract class AbstractAuthenticationComponent implements AuthenticationC
|
||||
|
||||
public Authentication setCurrentUser(String userName, UserNameValidationMode validationMode)
|
||||
{
|
||||
switch(validationMode)
|
||||
switch (validationMode)
|
||||
{
|
||||
case NONE:
|
||||
return setCurrentUserImpl(userName);
|
||||
@@ -157,7 +170,7 @@ public abstract class AbstractAuthenticationComponent implements AuthenticationC
|
||||
return setCurrentUser(userName);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public Authentication setCurrentUser(final String userName) throws AuthenticationException
|
||||
{
|
||||
if (isSystemUserName(userName))
|
||||
@@ -232,8 +245,8 @@ public abstract class AbstractAuthenticationComponent implements AuthenticationC
|
||||
throw new AuthenticationException(ae.getMessage(), ae);
|
||||
}
|
||||
finally
|
||||
{
|
||||
// Support for logging tenantdomain / username (via log4j NDC)
|
||||
{
|
||||
// Support for logging tenantdomain / username (via log4j NDC)
|
||||
AuthenticationUtil.logNDC(userName);
|
||||
}
|
||||
}
|
||||
@@ -283,8 +296,7 @@ public abstract class AbstractAuthenticationComponent implements AuthenticationC
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the system user as the current user
|
||||
* note: for MT, will set to default domain only
|
||||
* Set the system user as the current user note: for MT, will set to default domain only
|
||||
*
|
||||
* @return Authentication
|
||||
*/
|
||||
@@ -294,8 +306,7 @@ public abstract class AbstractAuthenticationComponent implements AuthenticationC
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the name of the system user
|
||||
* note: for MT, will get system for default domain only
|
||||
* Get the name of the system user note: for MT, will get system for default domain only
|
||||
*
|
||||
* @return String
|
||||
*/
|
||||
@@ -303,20 +314,19 @@ public abstract class AbstractAuthenticationComponent implements AuthenticationC
|
||||
{
|
||||
return AuthenticationUtil.SYSTEM_USER_NAME;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Is this the system user ?
|
||||
*
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
*/
|
||||
public boolean isSystemUserName(String userName)
|
||||
{
|
||||
return (getSystemUserName().equals(tenantService.getBaseNameUser(userName)));
|
||||
return (getSystemUserName().equals(tenantService.getBaseNameUser(userName)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the name of the Guest User
|
||||
* note: for MT, will get guest for default domain only
|
||||
* Get the name of the Guest User note: for MT, will get guest for default domain only
|
||||
*
|
||||
* @return String
|
||||
*/
|
||||
@@ -327,18 +337,17 @@ public abstract class AbstractAuthenticationComponent implements AuthenticationC
|
||||
|
||||
private String getGuestUserName(String tenantDomain)
|
||||
{
|
||||
return tenantService.getDomainUser(getGuestUserName(), tenantDomain);
|
||||
return tenantService.getDomainUser(getGuestUserName(), tenantDomain);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set the guest user as the current user.
|
||||
* note: for MT, will set to default domain only
|
||||
* Set the guest user as the current user. note: for MT, will set to default domain only
|
||||
*/
|
||||
public Authentication setGuestUserAsCurrentUser() throws AuthenticationException
|
||||
{
|
||||
return setGuestUserAsCurrentUser(TenantService.DEFAULT_DOMAIN);
|
||||
return setGuestUserAsCurrentUser(TenantService.DEFAULT_DOMAIN);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set the guest user as the current user.
|
||||
*/
|
||||
@@ -359,7 +368,7 @@ public abstract class AbstractAuthenticationComponent implements AuthenticationC
|
||||
{
|
||||
if (allowGuestLogin.booleanValue())
|
||||
{
|
||||
return setCurrentUser(getGuestUserName(tenantDomain));
|
||||
return setCurrentUser(getGuestUserName(tenantDomain));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -368,10 +377,10 @@ public abstract class AbstractAuthenticationComponent implements AuthenticationC
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private boolean isGuestUserName(String userName)
|
||||
{
|
||||
return (PermissionService.GUEST_AUTHORITY.equalsIgnoreCase(tenantService.getBaseNameUser(userName)));
|
||||
return (PermissionService.GUEST_AUTHORITY.equalsIgnoreCase(tenantService.getBaseNameUser(userName)));
|
||||
}
|
||||
|
||||
protected abstract boolean implementationAllowsGuestLogin();
|
||||
@@ -447,7 +456,8 @@ public abstract class AbstractAuthenticationComponent implements AuthenticationC
|
||||
NodeRef userNode = personService.getPerson(userName);
|
||||
if (userNode != null)
|
||||
{
|
||||
// Get the person name and use that as the current user to line up with permission checks
|
||||
// Get the person name and use that as the current user to line up with permission
|
||||
// checks
|
||||
return (String) nodeService.getProperty(userNode, ContentModel.PROP_USERNAME);
|
||||
}
|
||||
else
|
||||
@@ -458,12 +468,23 @@ public abstract class AbstractAuthenticationComponent implements AuthenticationC
|
||||
}
|
||||
else
|
||||
{
|
||||
if (autoCreatePeopleOnLogin && (userName != null) && !userName.equals(AuthenticationUtil.getSystemUserName()))
|
||||
{
|
||||
if (personService.createMissingPeople())
|
||||
{
|
||||
AuthorityType authorityType = AuthorityType.getAuthorityType(userName);
|
||||
if (authorityType == AuthorityType.USER)
|
||||
{
|
||||
personService.getPerson(userName);
|
||||
}
|
||||
}
|
||||
}
|
||||
// Get user name
|
||||
return userName;
|
||||
}
|
||||
}
|
||||
}
|
||||
}, tenantService.getDomainUser(AuthenticationUtil.getSystemUserName(), tenantService.getUserDomain(userName)));
|
||||
|
||||
}, tenantService.getDomainUser(AuthenticationUtil.getSystemUserName(), tenantService.getUserDomain(userName)));
|
||||
|
||||
return setCurrentUserImpl(name);
|
||||
}
|
||||
catch (AuthenticationException ae)
|
||||
|
@@ -245,7 +245,7 @@ public class AuthenticationTest extends TestCase
|
||||
userName = pubAuthenticationService.getCurrentUserName();
|
||||
assertEquals("andy", userName);
|
||||
// get Person
|
||||
assertFalse(pubPersonService.personExists(userName));
|
||||
assertTrue(pubPersonService.personExists(userName));
|
||||
|
||||
AuthenticationUtil.runAs(new RunAsWork() {
|
||||
|
||||
|
Reference in New Issue
Block a user