Merged V3.2 to HEAD

17475: ETHREEOH-3295: Fix to AuthorityMigrationPatch
      - Forces transaction retry if worker thread reaches child authority before a parent authority
      - Tested on Kev's 3.1.1 repository with ~20,000 bulk loaded users and ~2,000 Share sites
      - Now completes in 5 minutes as opposed to 45
   17461: ETHREEOH-3268: Added MutableAuthenticationService.isAuthenticationCreationAllowed () to allow conditional display of external user invitation UI
   17450: ETHREEOH-2762: Correction to previous fix. Do not generate new name when working copy copied back on check in.
   17440: ETHREEOH-3295: Fixed logging in FixNameCrcValuesPatch
   17439: ETHREEOH-2762: Improved behaviour when a working copy is copied
      - Working copy aspect already removed the working copy aspect on copy
      - Now derives a new name from the node checked out from and a UUID, preserving the extension
   17438: ETHREEOH-2690: Fix sequencing of jgroups system property setting
      - declared dependency between internalEHCacheManager and jgroupsPropertySetter
   17436: ETHREEOH-3295: Further performance improvements to AuthorityMigrationPatch
      - authority created at same time as all its parent associations to save lots of reindexing, as per LDAP sync
      - multi-threaded BatchProcessor (as used by LDAP sync, FixNameCrcValuesPatch) used to process work in 2 threads in batches of 20, report progress every 100 entries and handle transaction retries
      - BatchProcessor now promoted to its own package
   17394: Fix for license issue in local enterprise builds.
      - Replace Community with Enterprise in version.properties during enterprise war building
   17365: ETHREEOH-3229: Visited and fixed all SearchService result set leaks
   17362: ETHREEOH-3254: Eliminate needless ping to LDAP server in LDAPAuthenticationComponentImpl.implementationAllowsGuestLogin()
   17348: ETHREEOH-3003: Fix NPE in Hyperic when LicenseDescriptor has null fields
   17316: Merged V3.1 to V3.2
      17315: ETHREEOH-3092: PersonService won't let you create duplicate persons anymore.
      17314: ETHREEOH-3158: Fix RepoServerMgmt to work with external authentication methods
         - AuthenticationService.getCurrentTicket / getNewTicket now call pre authentication check before issuing a new ticket, thus still allowing ticket enforcement when external authentication is in use.
      17312: ETHREEOH-3219: Enable resolution of JMX server password file path on JBoss 5
      17299: Merged V3.2 to V3.1 (Record only)
         17297: ETHREEOH-1593: Changed name of username cookie and fixed login.jsp to decode it properly
         17248: ETHREEOH-1593: alfUser cookie value should be base 64 encoded to allow for non-ASCII characters
   17297: ETHREEOH-1593: Changed name of username cookie and fixed login.jsp to decode it properly
      - thanks Kev!
   17292: ETHREEOH-1842: Ticket association with HttpSession IDs tracked so that we don't invalidate a ticket in use by multiple sessions prematurely
      - AuthenticationService validate, getCurrentTicket, etc. methods now take optional sessionId arguments
   17269: Fix failing unit test
      - reinstate original behaviour of AbstractChainingAuthenticationService.getAuthenticationEnabled()
   17268: Fix InvitationService
      - Runs as system to do privileged AuthenticationService actions


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@18105 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Dave Ward
2010-01-18 17:41:59 +00:00
parent b96d174e1f
commit 1c1a35e500
55 changed files with 1153 additions and 711 deletions

View File

@@ -241,7 +241,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public String getInputHandle(String ticket, int version, String path)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
InputStream in = fAVMService.getFileInputStream(version, path);
String handle = GUID.generate();
synchronized (this)
@@ -258,7 +258,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public String getInputHandle(String ticket, AVMNodeDescriptor desc)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
InputStream in = fAVMService.getFileInputStream(desc);
String handle = GUID.generate();
synchronized (this)
@@ -278,7 +278,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public byte [] readInput(String ticket, String handle, int count)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
InputStream in = null;
synchronized (this)
{
@@ -331,7 +331,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public synchronized void closeInputHandle(String ticket, String handle)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
InputStream in = fInputStreams.get(handle);
if (in != null)
{
@@ -356,7 +356,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public String getOutputHandle(String ticket, String path)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
OutputStream out = fAVMService.getFileOutputStream(path);
String handle = GUID.generate();
synchronized (this)
@@ -378,7 +378,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public void writeOutput(String ticket, String handle, byte [] buff, int count)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
OutputStream out = null;
synchronized (this)
{
@@ -413,7 +413,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public synchronized void closeOutputHandle(String ticket, String handle)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
OutputStream out = fOutputStreams.get(handle);
if (out != null)
{
@@ -440,7 +440,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
public SortedMap<String, AVMNodeDescriptor>
getDirectoryListingDirect(String ticket, int version, String path)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
return fAVMService.getDirectoryListingDirect(version, path);
}
@@ -453,7 +453,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
public SortedMap<String, AVMNodeDescriptor>
getDirectoryListing(String ticket, int version, String path)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
return fAVMService.getDirectoryListing(version, path);
}
@@ -465,7 +465,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
public SortedMap<String, AVMNodeDescriptor>
getDirectoryListing(String ticket, AVMNodeDescriptor dir)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
return fAVMService.getDirectoryListing(dir);
}
@@ -477,7 +477,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public List<String> getDeleted(String ticket, int version, String path)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
return fAVMService.getDeleted(version, path);
}
@@ -489,7 +489,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public String createFile(String ticket, String path, String name)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
OutputStream out = fAVMService.createFile(path, name);
String handle = GUID.generate();
synchronized (this)
@@ -508,7 +508,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public void createDirectory(String ticket, String path, String name)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
fAVMService.createDirectory(path, name);
}
@@ -520,7 +520,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public void createLayeredFile(String ticket, String targetPath, String parent, String name)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
fAVMService.createLayeredFile(targetPath, parent, name);
}
@@ -532,7 +532,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public void createLayeredDirectory(String ticket, String targetPath, String parent, String name)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
fAVMService.createLayeredDirectory(targetPath, parent, name);
}
@@ -543,7 +543,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public void retargetLayeredDirectory(String ticket, String path, String target)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
fAVMService.retargetLayeredDirectory(path, target);
}
@@ -553,7 +553,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public void createStore(String ticket, String name)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
fAVMService.createStore(name);
}
@@ -566,7 +566,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public void createBranch(String ticket, int version, String srcPath, String dstPath, String name)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
fAVMService.createBranch(version, srcPath, dstPath, name);
}
@@ -577,7 +577,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public void removeNode(String ticket, String parent, String name)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
fAVMService.removeNode(parent, name);
}
@@ -590,7 +590,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public void rename(String ticket, String srcParent, String srcName, String dstParent, String dstName)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
fAVMService.rename(srcParent, srcName, dstParent, dstName);
}
@@ -601,7 +601,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public void uncover(String ticket, String dirPath, String name)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
fAVMService.uncover(dirPath, name);
}
@@ -612,7 +612,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public int getNextVersionID(String ticket, String storeName)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
return fAVMService.getNextVersionID(storeName);
}
@@ -633,7 +633,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public Map<String, Integer> createSnapshot(String ticket, String store, String label, String comment)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
return fAVMService.createSnapshot(store, label, comment);
}
@@ -644,7 +644,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public List<VersionDescriptor> getStoreVersions(String ticket, String name)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
return fAVMService.getStoreVersions(name);
}
@@ -657,7 +657,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public List<VersionDescriptor> getStoreVersions(String ticket, String name, Date from, Date to)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
return fAVMService.getStoreVersions(name, from, to);
}
@@ -667,7 +667,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public List<AVMStoreDescriptor> getStores(String ticket)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
return fAVMService.getStores();
}
@@ -678,7 +678,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public AVMStoreDescriptor getStore(String ticket, String name)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
return fAVMService.getStore(name);
}
@@ -690,7 +690,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public AVMNodeDescriptor getStoreRoot(String ticket, int version, String name)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
return fAVMService.getStoreRoot(version, name);
}
@@ -702,7 +702,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public AVMNodeDescriptor lookup(String ticket, int version, String path)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
return fAVMService.lookup(version, path);
}
@@ -718,7 +718,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public AVMNodeDescriptor lookup(String ticket, int version, String path, boolean includeDeleted)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
return fAVMService.lookup(version, path, includeDeleted);
}
@@ -731,7 +731,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public AVMNodeDescriptor lookup(String ticket, AVMNodeDescriptor dir, String name)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
return fAVMService.lookup(dir, name);
}
@@ -749,7 +749,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public AVMNodeDescriptor lookup(String ticket, AVMNodeDescriptor dir, String name, boolean includeDeleted)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
return fAVMService.lookup(dir, name, includeDeleted);
}
@@ -762,7 +762,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public String getIndirectionPath(String ticket, int version, String path)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
return fAVMService.getIndirectionPath(version, path);
}
@@ -772,7 +772,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public void purgeStore(String ticket, String name)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
fAVMService.purgeStore(name);
}
@@ -783,7 +783,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public void purgeVersion(String ticket, int version, String name)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
fAVMService.purgeVersion(version, name);
}
@@ -793,7 +793,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public void makePrimary(String ticket, String path)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
fAVMService.makePrimary(path);
}
@@ -805,7 +805,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public List<AVMNodeDescriptor> getHistory(String ticket, AVMNodeDescriptor desc, int count)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
return fAVMService.getHistory(desc, count);
}
@@ -816,7 +816,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public void setOpacity(String ticket, String path, boolean opacity)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
fAVMService.setOpacity(path, opacity);
}
@@ -828,7 +828,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public AVMNodeDescriptor getCommonAncestor(String ticket, AVMNodeDescriptor left, AVMNodeDescriptor right)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
return fAVMService.getCommonAncestor(left, right);
}
@@ -840,7 +840,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public LayeringDescriptor getLayeringInfo(String ticket, int version, String path)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
return fAVMService.getLayeringInfo(version, path);
}
@@ -852,7 +852,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public void setNodeProperty(String ticket, String path, QName name, PropertyValue value)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
fAVMService.setNodeProperty(path, name, value);
}
@@ -863,7 +863,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public void setNodeProperties(String ticket, String path, Map<QName, PropertyValue> properties)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
fAVMService.setNodeProperties(path, properties);
}
@@ -876,7 +876,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public PropertyValue getNodeProperty(String ticket, int version, String path, QName name)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
return fAVMService.getNodeProperty(version, path, name);
}
@@ -888,7 +888,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public Map<QName, PropertyValue> getNodeProperties(String ticket, int version, String path)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
return fAVMService.getNodeProperties(version, path);
}
@@ -899,7 +899,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public void deleteNodeProperty(String ticket, String path, QName name)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
fAVMService.deleteNodeProperty(path, name);
}
@@ -909,7 +909,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public void deleteNodeProperties(String ticket, String path)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
fAVMService.deleteNodeProperties(path);
}
@@ -921,7 +921,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public void setStoreProperty(String ticket, String store, QName name, PropertyValue value)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
fAVMService.setStoreProperty(store, name, value);
}
@@ -932,7 +932,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public void setStoreProperties(String ticket, String store, Map<QName, PropertyValue> props)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
fAVMService.setStoreProperties(store, props);
}
@@ -944,7 +944,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public PropertyValue getStoreProperty(String ticket, String store, QName name)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
return fAVMService.getStoreProperty(store, name);
}
@@ -956,7 +956,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public Map<QName, PropertyValue> queryStorePropertyKey(String ticket, String store, QName keyPattern)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
return fAVMService.queryStorePropertyKey(store, keyPattern);
}
@@ -967,7 +967,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public Map<String, Map<QName, PropertyValue>> queryStoresPropertyKey(String ticket, QName keyPattern)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
return fAVMService.queryStoresPropertyKeys(keyPattern);
}
@@ -978,7 +978,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public Map<QName, PropertyValue> getStoreProperties(String ticket, String store)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
return fAVMService.getStoreProperties(store);
}
@@ -989,7 +989,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public void deleteStoreProperty(String ticket, String store, QName name)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
fAVMService.deleteStoreProperty(store, name);
}
@@ -998,7 +998,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public void renameStore(String ticket, String sourceName, String destName)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
fAVMService.renameStore(sourceName, destName);
}
@@ -1007,7 +1007,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public void addAspect(String ticket, String path, QName aspectName)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
fAVMService.addAspect(path, aspectName);
}
@@ -1016,7 +1016,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public Set<QName> getAspects(String ticket, int version, String path)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
return fAVMService.getAspects(version, path);
}
@@ -1025,7 +1025,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public boolean hasAspect(String ticket, int version, String path, QName aspectName)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
return fAVMService.hasAspect(version, path, aspectName);
}
@@ -1034,7 +1034,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public void removeAspect(String ticket, String path, QName aspectName)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
fAVMService.removeAspect(path, aspectName);
}
@@ -1043,7 +1043,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public void revert(String ticket, String path, AVMNodeDescriptor toRevertTo)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
fAVMService.revert(path, toRevertTo);
}
@@ -1052,7 +1052,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public Pair<Integer, String> getAPath(String ticket, AVMNodeDescriptor desc)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
return fAVMService.getAPath(desc);
}
@@ -1061,7 +1061,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public void setGuid(String ticket, String path, String guid)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
fAVMService.setGuid(path, guid);
}
@@ -1070,7 +1070,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public void setEncoding(String ticket, String path, String encoding)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
fAVMService.setEncoding(path, encoding);
}
@@ -1079,7 +1079,7 @@ public class AVMRemoteTransportService implements AVMRemoteTransport, Runnable
*/
public void setMimeType(String ticket, String path, String mimeType)
{
fAuthService.validate(ticket);
fAuthService.validate(ticket, null);
fAVMService.setMimeType(path, mimeType);
}
}