mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-24 17:32:48 +00:00
Fixed authority related startup failures.
Authority caching was making a case mangling mistake. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@6830 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -73,24 +73,32 @@ public class ACLTest extends TestCase
|
|||||||
fCapabilityRegistry = (AuthorityCapabilityRegistry)fContext.getBean("authorityCapabilityRegistry");
|
fCapabilityRegistry = (AuthorityCapabilityRegistry)fContext.getBean("authorityCapabilityRegistry");
|
||||||
}
|
}
|
||||||
// Set up sample users groups and roles.
|
// Set up sample users groups and roles.
|
||||||
fAuthenticationService.createAuthentication("Buffy", "Buffy".toCharArray());
|
try
|
||||||
fPersonService.getPerson("Buffy");
|
{
|
||||||
fAuthorityService.createAuthority(AuthorityType.GROUP, null, "Scoobies");
|
fAuthenticationService.createAuthentication("Buffy", "Buffy".toCharArray());
|
||||||
fAuthorityService.addAuthority("GROUP_Scoobies", "Buffy");
|
fPersonService.getPerson("Buffy");
|
||||||
fAuthenticationService.createAuthentication("Willow", "Willow".toCharArray());
|
fAuthorityService.createAuthority(AuthorityType.GROUP, null, "Scoobies");
|
||||||
fPersonService.getPerson("Willow");
|
fAuthorityService.addAuthority("GROUP_Scoobies", "Buffy");
|
||||||
fAuthorityService.addAuthority("GROUP_Scoobies", "Willow");
|
fAuthenticationService.createAuthentication("Willow", "Willow".toCharArray());
|
||||||
fAuthenticationService.createAuthentication("Xander", "Xander".toCharArray());
|
fPersonService.getPerson("Willow");
|
||||||
fPersonService.getPerson("Xander");
|
fAuthorityService.addAuthority("GROUP_Scoobies", "Willow");
|
||||||
fAuthorityService.addAuthority("GROUP_Scoobies", "Xander");
|
fAuthenticationService.createAuthentication("Xander", "Xander".toCharArray());
|
||||||
fAuthenticationService.createAuthentication("Tara", "Tara".toCharArray());
|
fPersonService.getPerson("Xander");
|
||||||
fPersonService.getPerson("Tara");
|
fAuthorityService.addAuthority("GROUP_Scoobies", "Xander");
|
||||||
fAuthenticationService.createAuthentication("Spike", "Spike".toCharArray());
|
fAuthenticationService.createAuthentication("Tara", "Tara".toCharArray());
|
||||||
fPersonService.getPerson("Spike");
|
fPersonService.getPerson("Tara");
|
||||||
fAuthorityService.createAuthority(AuthorityType.GROUP, null, "vampires");
|
fAuthenticationService.createAuthentication("Spike", "Spike".toCharArray());
|
||||||
fAuthorityService.addAuthority("GROUP_vampires", "Spike");
|
fPersonService.getPerson("Spike");
|
||||||
fAuthorityService.createAuthority(AuthorityType.GROUP, null, "soulless");
|
fAuthorityService.createAuthority(AuthorityType.GROUP, null, "vampires");
|
||||||
fAuthorityService.addAuthority("GROUP_soulless", "Spike");
|
fAuthorityService.addAuthority("GROUP_vampires", "Spike");
|
||||||
|
fAuthorityService.createAuthority(AuthorityType.GROUP, null, "soulless");
|
||||||
|
fAuthorityService.addAuthority("GROUP_soulless", "Spike");
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
tearDown();
|
||||||
|
setUp();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
|
@@ -195,15 +195,26 @@ public class AuthorityCapabilityRegistryImpl implements
|
|||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
auth = normalizeAuthority(auth);
|
|
||||||
Set<String> children = fAuthorityService.getContainedAuthorities(null, auth, true);
|
Set<String> children = fAuthorityService.getContainedAuthorities(null, auth, true);
|
||||||
|
auth = normalizeAuthority(auth);
|
||||||
Set<String> found = fAuthorityToChild.get(auth);
|
Set<String> found = fAuthorityToChild.get(auth);
|
||||||
if (found == null)
|
if (found == null)
|
||||||
{
|
{
|
||||||
found = new HashSet<String>();
|
found = new HashSet<String>();
|
||||||
fAuthorityToChild.put(auth, found);
|
fAuthorityToChild.put(auth, found);
|
||||||
}
|
}
|
||||||
AuthorityEntry entry = fAuthorityEntryDAO.get(fAuthorityToID.get(auth));
|
AuthorityEntry entry = null;
|
||||||
|
if (!fAuthorityToID.containsKey(auth))
|
||||||
|
{
|
||||||
|
entry = new AuthorityEntryImpl(auth);
|
||||||
|
fAuthorityEntryDAO.save(entry);
|
||||||
|
fAuthorityToID.put(auth, entry.getId());
|
||||||
|
fIDToAuthority.put(entry.getId(), auth);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
entry = fAuthorityEntryDAO.get(fAuthorityToID.get(auth));
|
||||||
|
}
|
||||||
for (String child : children)
|
for (String child : children)
|
||||||
{
|
{
|
||||||
child = normalizeAuthority(child);
|
child = normalizeAuthority(child);
|
||||||
@@ -211,7 +222,18 @@ public class AuthorityCapabilityRegistryImpl implements
|
|||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
AuthorityEntry childEntry = fAuthorityEntryDAO.get(fAuthorityToID.get(child));
|
AuthorityEntry childEntry = null;
|
||||||
|
if (!fAuthorityToID.containsKey(child))
|
||||||
|
{
|
||||||
|
childEntry = new AuthorityEntryImpl(child);
|
||||||
|
fAuthorityEntryDAO.save(childEntry);
|
||||||
|
fAuthorityToID.put(child, childEntry.getId());
|
||||||
|
fIDToAuthority.put(childEntry.getId(), child);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
childEntry = fAuthorityEntryDAO.get(fAuthorityToID.get(child));
|
||||||
|
}
|
||||||
entry.getChildren().add(childEntry);
|
entry.getChildren().add(childEntry);
|
||||||
found.add(child);
|
found.add(child);
|
||||||
Set<String> parents = fChildToAuthority.get(child);
|
Set<String> parents = fChildToAuthority.get(child);
|
||||||
|
Reference in New Issue
Block a user