diff --git a/config/alfresco/authentication-services-context.xml b/config/alfresco/authentication-services-context.xml index 7bbf34151b..44deadc447 100644 --- a/config/alfresco/authentication-services-context.xml +++ b/config/alfresco/authentication-services-context.xml @@ -304,6 +304,9 @@ + + + diff --git a/source/java/org/alfresco/repo/activities/SiteActivityTest.java b/source/java/org/alfresco/repo/activities/SiteActivityTest.java index 2dcc056952..5642d12e9e 100644 --- a/source/java/org/alfresco/repo/activities/SiteActivityTest.java +++ b/source/java/org/alfresco/repo/activities/SiteActivityTest.java @@ -541,11 +541,7 @@ public class SiteActivityTest extends TestCase protected void deleteUser(String userName) { - if (authenticationService.authenticationExists(userName) == true) - { - personService.deletePerson(userName); - authenticationService.deleteAuthentication(userName); - } + personService.deletePerson(userName); } private void login(String username, String password) diff --git a/source/java/org/alfresco/repo/invitation/InvitationServiceImplTest.java b/source/java/org/alfresco/repo/invitation/InvitationServiceImplTest.java index b1942616fd..dd5cf9d34f 100644 --- a/source/java/org/alfresco/repo/invitation/InvitationServiceImplTest.java +++ b/source/java/org/alfresco/repo/invitation/InvitationServiceImplTest.java @@ -29,12 +29,10 @@ import java.util.List; import org.alfresco.model.ContentModel; import org.alfresco.repo.security.authentication.AuthenticationComponent; -import org.alfresco.repo.security.authentication.MutableAuthenticationDao; import org.alfresco.repo.site.SiteModel; -import org.alfresco.service.cmr.invitation.InvitationExceptionUserError; +import org.alfresco.service.cmr.invitation.Invitation; import org.alfresco.service.cmr.invitation.InvitationSearchCriteria; import org.alfresco.service.cmr.invitation.InvitationService; -import org.alfresco.service.cmr.invitation.Invitation; import org.alfresco.service.cmr.invitation.ModeratedInvitation; import org.alfresco.service.cmr.invitation.NominatedInvitation; import org.alfresco.service.cmr.invitation.Invitation.ResourceType; @@ -56,7 +54,6 @@ public class InvitationServiceImplTest extends BaseAlfrescoSpringTest private AuthenticationComponent authenticationComponent; private PersonService personService; private InvitationService invitationService; - private MutableAuthenticationDao mutableAuthenticationDao; private final String SITE_SHORT_NAME_INVITE = "InvitationTest"; private final String SITE_SHORT_NAME_RED = "InvitationTestRed"; @@ -85,7 +82,6 @@ public class InvitationServiceImplTest extends BaseAlfrescoSpringTest this.siteService = (SiteService)this.applicationContext.getBean("SiteService"); this.personService = (PersonService)this.applicationContext.getBean("PersonService"); this.authenticationComponent = (AuthenticationComponent)this.applicationContext.getBean("authenticationComponent"); - this.mutableAuthenticationDao = (MutableAuthenticationDao)this.applicationContext.getBean("authenticationDao"); createPerson(USER_MANAGER, USER_MANAGER + "@alfrescotesting.com", PERSON_FIRSTNAME, PERSON_LASTNAME); createPerson(USER_ONE, USER_ONE_EMAIL,USER_ONE_FIRSTNAME, USER_ONE_LASTNAME); @@ -365,8 +361,6 @@ public class InvitationServiceImplTest extends BaseAlfrescoSpringTest */ public void testNominatedInvitationNewUserSameEmails() throws Exception { - Date startDate = new java.util.Date(); - String inviteeAFirstName = "John"; String inviteeALastName = "Smith"; @@ -868,9 +862,6 @@ public class InvitationServiceImplTest extends BaseAlfrescoSpringTest Invitation.ResourceType resourceType = Invitation.ResourceType.WEB_SITE; String inviteeRole = SiteModel.SITE_COLLABORATOR; String comments = "please sir, let me in!"; - String inviteeFirstName = PERSON_FIRSTNAME; - String inviteeLastName = PERSON_LASTNAME; - String inviteeEmail = "123"; String serverPath = "wibble"; String acceptUrl = "froob"; String rejectUrl = "marshmallow"; @@ -1005,19 +996,7 @@ public class InvitationServiceImplTest extends BaseAlfrescoSpringTest } private void deletePersonByUserName(String userName) - { - // delete authentication if authentication exists for given user name - if (this.authenticationService.authenticationExists(userName)) - { - this.authenticationService.deleteAuthentication(userName); - } - - // delete user account - if (this.mutableAuthenticationDao.userExists(userName)) - { - this.mutableAuthenticationDao.deleteUser(userName); - } - + { // delete person node associated with given user name // if one exists if (this.personService.personExists(userName)) diff --git a/source/java/org/alfresco/repo/security/person/PersonServiceImpl.java b/source/java/org/alfresco/repo/security/person/PersonServiceImpl.java index e122c30323..e378a2dd4d 100644 --- a/source/java/org/alfresco/repo/security/person/PersonServiceImpl.java +++ b/source/java/org/alfresco/repo/security/person/PersonServiceImpl.java @@ -41,6 +41,7 @@ import org.alfresco.repo.cache.SimpleCache; import org.alfresco.repo.node.NodeServicePolicies; import org.alfresco.repo.policy.JavaBehaviour; import org.alfresco.repo.policy.PolicyComponent; +import org.alfresco.repo.security.authentication.AuthenticationException; import org.alfresco.repo.security.authentication.AuthenticationUtil; import org.alfresco.repo.security.permissions.PermissionServiceSPI; import org.alfresco.repo.tenant.TenantService; @@ -58,6 +59,7 @@ import org.alfresco.service.cmr.search.ResultSet; import org.alfresco.service.cmr.search.ResultSetRow; import org.alfresco.service.cmr.search.SearchParameters; import org.alfresco.service.cmr.search.SearchService; +import org.alfresco.service.cmr.security.AuthenticationService; import org.alfresco.service.cmr.security.AuthorityService; import org.alfresco.service.cmr.security.AuthorityType; import org.alfresco.service.cmr.security.NoSuchPersonException; @@ -99,6 +101,8 @@ public class PersonServiceImpl extends TransactionListenerAdapter implements Per private SearchService searchService; private AuthorityService authorityService; + + private AuthenticationService authenticationService; private DictionaryService dictionaryService; @@ -168,6 +172,7 @@ public class PersonServiceImpl extends TransactionListenerAdapter implements Per PropertyCheck.mandatory(this, "searchService", searchService); PropertyCheck.mandatory(this, "permissionServiceSPI", permissionServiceSPI); PropertyCheck.mandatory(this, "authorityService", authorityService); + PropertyCheck.mandatory(this, "authenticationService", authenticationService); PropertyCheck.mandatory(this, "namespacePrefixResolver", namespacePrefixResolver); PropertyCheck.mandatory(this, "policyComponent", policyComponent); PropertyCheck.mandatory(this, "personCache", personCache); @@ -648,6 +653,16 @@ public class PersonServiceImpl extends TransactionListenerAdapter implements Per return; } + // Remove internally-stored password information, if any + try + { + authenticationService.deleteAuthentication(userName); + } + catch (AuthenticationException e) + { + // Ignore this - externally authenticated user + } + // remove user from any containing authorities Set containerAuthorities = authorityService.getContainingAuthorities(null, userName, true); for (String containerAuthority : containerAuthorities) @@ -760,6 +775,11 @@ public class PersonServiceImpl extends TransactionListenerAdapter implements Per { this.authorityService = authorityService; } + + public void setAuthenticationService(AuthenticationService authenticationService) + { + this.authenticationService = authenticationService; + } public void setDictionaryService(DictionaryService dictionaryService) { diff --git a/source/java/org/alfresco/repo/usage/UserUsageTrackingComponentTest.java b/source/java/org/alfresco/repo/usage/UserUsageTrackingComponentTest.java index 8c79682fa6..8b7b486819 100644 --- a/source/java/org/alfresco/repo/usage/UserUsageTrackingComponentTest.java +++ b/source/java/org/alfresco/repo/usage/UserUsageTrackingComponentTest.java @@ -333,7 +333,6 @@ public class UserUsageTrackingComponentTest extends TestCase NodeRef homeFolder = getHomeSpaceFolderNode(userName); nodeService.deleteNode(homeFolder); - authenticationService.deleteAuthentication(userName); personService.deletePerson(userName); deleteCount++; } diff --git a/source/java/org/alfresco/wcm/AbstractWCMServiceImplTest.java b/source/java/org/alfresco/wcm/AbstractWCMServiceImplTest.java index cdd89fbb05..8abc80f1db 100644 --- a/source/java/org/alfresco/wcm/AbstractWCMServiceImplTest.java +++ b/source/java/org/alfresco/wcm/AbstractWCMServiceImplTest.java @@ -169,10 +169,6 @@ public class AbstractWCMServiceImplTest extends TestCase protected void deleteUser(String userName) { - if (authenticationService.authenticationExists(userName) == true) - { - personService.deletePerson(userName); - authenticationService.deleteAuthentication(userName); - } + personService.deletePerson(userName); } }