Merged HEAD (5.2) to 5.2.N (5.2.1)

126524 jkaabimofrad: Merged FILE-FOLDER-API (5.2.0) to HEAD (5.2)
      123056 jvonka: (Quick) Shared Links API - find links (fix 500 -> 401 if not authenticated)
      - add more -ve tests to check methods that require auth return 401 if unauthenticated
      RA-777


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@126868 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Ancuta Morarasu
2016-05-11 11:59:04 +00:00
parent 04d203e507
commit b8daf2457b
2 changed files with 38 additions and 14 deletions

View File

@@ -129,7 +129,6 @@ public class PublicApiDeclarativeRegistry extends DeclarativeRegistry
}
else
{
// TODO - review (experimental)
match = super.findWebScript(method, uri);
Map<String, String> templateVars = match.getTemplateVars();
@@ -139,29 +138,42 @@ public class PublicApiDeclarativeRegistry extends DeclarativeRegistry
// NOTE: noAuth currently only exposed for GET
Api api = determineApi(templateVars);
// TODO can we avoid locating resource more than once ?
// TODO can we avoid locating resource more than once (or at least provide a common code to determine the GET resourceAction) ?
ResourceWithMetadata rwm = locator.locateResource(api, templateVars, HttpMethod.valueOf(method));
Class resAction = null;
String entityId = templateVars.get(ResourceLocator.ENTITY_ID);
switch (rwm.getMetaData().getType())
{
case ENTITY:
// TODO check params for entity id (for now - assume there is)
if (EntityResourceAction.ReadById.class.isAssignableFrom(rwm.getResource().getClass()))
if (StringUtils.isNotBlank(entityId))
{
resAction = EntityResourceAction.ReadById.class;
if (EntityResourceAction.ReadById.class.isAssignableFrom(rwm.getResource().getClass()))
{
resAction = EntityResourceAction.ReadById.class;
}
}
else
{
if (EntityResourceAction.Read.class.isAssignableFrom(rwm.getResource().getClass()))
{
resAction = EntityResourceAction.Read.class;
}
}
break;
case PROPERTY:
// TODO check params for entity id (for now - assume there is)
if (BinaryResourceAction.Read.class.isAssignableFrom(rwm.getResource().getClass()))
if (StringUtils.isNotBlank(entityId))
{
resAction = BinaryResourceAction.Read.class;
}
else if (RelationshipResourceBinaryAction.Read.class.isAssignableFrom(rwm.getResource().getClass()))
{
resAction = RelationshipResourceBinaryAction.Read.class;
if (BinaryResourceAction.Read.class.isAssignableFrom(rwm.getResource().getClass()))
{
resAction = BinaryResourceAction.Read.class;
}
else if (RelationshipResourceBinaryAction.Read.class.isAssignableFrom(rwm.getResource().getClass()))
{
resAction = RelationshipResourceBinaryAction.Read.class;
}
}
break;
default: