Consolidating usage patterns around CannedQuery

- Removed executionID from AbstractCannedQuery constructors
 - Removed authenticationToken from CannedQueryParameters and applyPostQueryPermissions
 - Created common MethodSecurityBean to abstract permission checks
 - Pushed security definitions into public-services-security-context.xml (except blog-context.xml)
 - BlogServiceImpl now just returns the results of the CQ
 - CopyService CQ start
 - JIRAs
   - ALF-7167: RINF 11: Canned queries
   - ALF-9322: RINF 11: Remove AbstractCannedQueryPermissions
   - ALF-8969, ALF-8806, ALF-9033, ALF-8805


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@28680 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2011-06-29 02:25:37 +00:00
parent b3b9c36a08
commit 6600f32e30
27 changed files with 931 additions and 736 deletions

View File

@@ -32,7 +32,7 @@ import org.alfresco.query.CannedQuerySortDetails.SortOrder;
import org.alfresco.repo.blog.BlogService;
import org.alfresco.repo.blog.BlogService.BlogPostInfo;
import org.alfresco.repo.security.permissions.impl.acegi.AbstractCannedQueryPermissions;
import org.alfresco.repo.security.permissions.impl.acegi.MethodSecurityInterceptor;
import org.alfresco.repo.security.permissions.impl.acegi.MethodSecurityBean;
import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService;
@@ -56,13 +56,10 @@ public class DraftsAndPublishedBlogPostsCannedQuery extends AbstractCannedQueryP
public DraftsAndPublishedBlogPostsCannedQuery(
NodeService rawNodeService,
TaggingService taggingService,
MethodSecurityInterceptor methodSecurityInterceptor,
Object methodService,
String methodName,
CannedQueryParameters params,
String queryExecutionId)
MethodSecurityBean<BlogPostInfo> methodSecurity,
CannedQueryParameters params)
{
super(params, queryExecutionId, methodSecurityInterceptor, methodService, methodName);
super(params, methodSecurity);
this.rawNodeService = rawNodeService;
this.taggingService = taggingService;
}

View File

@@ -29,11 +29,10 @@ import org.alfresco.query.CannedQueryFactory;
import org.alfresco.query.CannedQueryPageDetails;
import org.alfresco.query.CannedQueryParameters;
import org.alfresco.query.CannedQuerySortDetails;
import org.alfresco.query.PagingRequest;
import org.alfresco.query.CannedQuerySortDetails.SortOrder;
import org.alfresco.query.PagingRequest;
import org.alfresco.repo.blog.BlogService.BlogPostInfo;
import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.repo.security.permissions.impl.acegi.MethodSecurityInterceptor;
import org.alfresco.repo.security.permissions.impl.acegi.MethodSecurityBean;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.cmr.tagging.TaggingService;
@@ -53,12 +52,15 @@ import org.alfresco.util.PropertyCheck;
*/
public class DraftsAndPublishedBlogPostsCannedQueryFactory extends AbstractCannedQueryFactory<BlogPostInfo>
{
private MethodSecurityInterceptor methodSecurityInterceptor;
private String methodName;
private Object methodService;
private MethodSecurityBean<BlogPostInfo> methodSecurity;
private NodeService rawNodeService;
private TaggingService taggingService;
public void setMethodSecurity(MethodSecurityBean<BlogPostInfo> methodSecurity)
{
this.methodSecurity = methodSecurity;
}
public void setRawNodeService(NodeService nodeService)
{
this.rawNodeService = nodeService;
@@ -69,30 +71,13 @@ public class DraftsAndPublishedBlogPostsCannedQueryFactory extends AbstractCanne
this.taggingService = taggingService;
}
public void setMethodSecurityInterceptor(MethodSecurityInterceptor methodSecurityInterceptor)
{
this.methodSecurityInterceptor = methodSecurityInterceptor;
}
public void setMethodName(String methodName)
{
this.methodName = methodName;
}
public void setMethodService(Object methodService)
{
this.methodService = methodService;
}
@Override
public CannedQuery<BlogPostInfo> getCannedQuery(CannedQueryParameters parameters)
{
// if not passed in (TODO or not in future cache) then generate a new query execution id
String queryExecutionId = (parameters.getQueryExecutionId() == null ? super.getQueryExecutionId(parameters) : parameters.getQueryExecutionId());
final DraftsAndPublishedBlogPostsCannedQuery cq = new DraftsAndPublishedBlogPostsCannedQuery(rawNodeService, taggingService,
methodSecurityInterceptor, methodService, methodName,
parameters, queryExecutionId);
final DraftsAndPublishedBlogPostsCannedQuery cq = new DraftsAndPublishedBlogPostsCannedQuery(
rawNodeService, taggingService,
methodSecurity,
parameters);
return (CannedQuery<BlogPostInfo>) cq;
}
@@ -112,7 +97,7 @@ public class DraftsAndPublishedBlogPostsCannedQueryFactory extends AbstractCanne
CannedQuerySortDetails cqsd = createCQSortDetails(ContentModel.PROP_PUBLISHED, SortOrder.DESCENDING);
// create query params holder
CannedQueryParameters params = new CannedQueryParameters(paramBean, cqpd, cqsd, AuthenticationUtil.getRunAsUser(), requestTotalCountMax, pagingReq.getQueryExecutionId());
CannedQueryParameters params = new CannedQueryParameters(paramBean, cqpd, cqsd, requestTotalCountMax, pagingReq.getQueryExecutionId());
// return canned query instance
return getCannedQuery(params);
@@ -142,7 +127,7 @@ public class DraftsAndPublishedBlogPostsCannedQueryFactory extends AbstractCanne
}
// page details
CannedQueryPageDetails cqpd = new CannedQueryPageDetails(skipCount, maxItems, CannedQueryPageDetails.DEFAULT_PAGE_NUMBER, CannedQueryPageDetails.DEFAULT_PAGE_COUNT);
CannedQueryPageDetails cqpd = new CannedQueryPageDetails(skipCount, maxItems);
return cqpd;
}
@@ -151,8 +136,6 @@ public class DraftsAndPublishedBlogPostsCannedQueryFactory extends AbstractCanne
{
super.afterPropertiesSet();
PropertyCheck.mandatory(this, "methodSecurityInterceptor", methodSecurityInterceptor);
PropertyCheck.mandatory(this, "methodService", methodService);
PropertyCheck.mandatory(this, "methodName", methodName);
PropertyCheck.mandatory(this, "methodSecurity", methodSecurity);
}
}

View File

@@ -32,7 +32,7 @@ import org.alfresco.query.CannedQuerySortDetails.SortOrder;
import org.alfresco.repo.blog.BlogService;
import org.alfresco.repo.blog.BlogService.BlogPostInfo;
import org.alfresco.repo.security.permissions.impl.acegi.AbstractCannedQueryPermissions;
import org.alfresco.repo.security.permissions.impl.acegi.MethodSecurityInterceptor;
import org.alfresco.repo.security.permissions.impl.acegi.MethodSecurityBean;
import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService;
@@ -55,13 +55,10 @@ public class GetBlogPostsCannedQuery extends AbstractCannedQueryPermissions<Blog
public GetBlogPostsCannedQuery(
NodeService rawNodeService,
MethodSecurityInterceptor methodSecurityInterceptor,
Object methodService,
String methodName,
CannedQueryParameters params,
String queryExecutionId)
MethodSecurityBean<BlogPostInfo> methodSecurity,
CannedQueryParameters params)
{
super(params, queryExecutionId, methodSecurityInterceptor, methodService, methodName);
super(params, methodSecurity);
this.rawNodeService = rawNodeService;
}

View File

@@ -31,12 +31,11 @@ import org.alfresco.query.CannedQueryFactory;
import org.alfresco.query.CannedQueryPageDetails;
import org.alfresco.query.CannedQueryParameters;
import org.alfresco.query.CannedQuerySortDetails;
import org.alfresco.query.PagingRequest;
import org.alfresco.query.CannedQuerySortDetails.SortOrder;
import org.alfresco.query.PagingRequest;
import org.alfresco.repo.blog.BlogService;
import org.alfresco.repo.blog.BlogService.BlogPostInfo;
import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.repo.security.permissions.impl.acegi.MethodSecurityInterceptor;
import org.alfresco.repo.security.permissions.impl.acegi.MethodSecurityBean;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.namespace.QName;
@@ -57,37 +56,23 @@ import org.alfresco.util.PropertyCheck;
*/
public class GetBlogPostsCannedQueryFactory extends AbstractCannedQueryFactory<BlogPostInfo>
{
private MethodSecurityInterceptor methodSecurityInterceptor;
private String methodName;
private Object methodService;
private MethodSecurityBean<BlogPostInfo> methodSecurity;
private NodeService rawNodeService;
public void setMethodSecurity(MethodSecurityBean<BlogPostInfo> methodSecurity)
{
this.methodSecurity = methodSecurity;
}
public void setRawNodeService(NodeService nodeService)
{
this.rawNodeService = nodeService;
}
public void setMethodSecurityInterceptor(MethodSecurityInterceptor methodSecurityInterceptor)
{
this.methodSecurityInterceptor = methodSecurityInterceptor;
}
public void setMethodName(String methodName)
{
this.methodName = methodName;
}
public void setMethodService(Object methodService)
{
this.methodService = methodService;
}
@Override
public CannedQuery<BlogPostInfo> getCannedQuery(CannedQueryParameters parameters)
{
String queryExecutionId = (parameters.getQueryExecutionId() == null ? super.getQueryExecutionId(parameters) : parameters.getQueryExecutionId());
final GetBlogPostsCannedQuery cq = new GetBlogPostsCannedQuery(rawNodeService, methodSecurityInterceptor, methodService, methodName, parameters, queryExecutionId);
final GetBlogPostsCannedQuery cq = new GetBlogPostsCannedQuery(rawNodeService, methodSecurity, parameters);
return (CannedQuery<BlogPostInfo>) cq;
}
@@ -111,7 +96,7 @@ public class GetBlogPostsCannedQueryFactory extends AbstractCannedQueryFactory<B
CannedQuerySortDetails cqsd = createCQSortDetails(ContentModel.PROP_CREATED, SortOrder.DESCENDING);
// create query params holder
CannedQueryParameters params = new CannedQueryParameters(paramBean, cqpd, cqsd, AuthenticationUtil.getRunAsUser(), requestTotalCountMax, pagingReq.getQueryExecutionId());
CannedQueryParameters params = new CannedQueryParameters(paramBean, cqpd, cqsd, requestTotalCountMax, pagingReq.getQueryExecutionId());
// return canned query instance
return getCannedQuery(params);
@@ -136,7 +121,7 @@ public class GetBlogPostsCannedQueryFactory extends AbstractCannedQueryFactory<B
CannedQuerySortDetails cqsd = createCQSortDetails(BlogIntegrationModel.PROP_POSTED, SortOrder.DESCENDING);
// create query params holder
CannedQueryParameters params = new CannedQueryParameters(paramBean, cqpd, cqsd, AuthenticationUtil.getRunAsUser(), requestTotalCountMax, pagingReq.getQueryExecutionId());
CannedQueryParameters params = new CannedQueryParameters(paramBean, cqpd, cqsd, requestTotalCountMax, pagingReq.getQueryExecutionId());
// return canned query instance
return getCannedQuery(params);
@@ -161,7 +146,7 @@ public class GetBlogPostsCannedQueryFactory extends AbstractCannedQueryFactory<B
CannedQuerySortDetails cqsd = createCQSortDetails(ContentModel.PROP_PUBLISHED, SortOrder.DESCENDING);
// create query params holder
CannedQueryParameters params = new CannedQueryParameters(paramBean, cqpd, cqsd, AuthenticationUtil.getRunAsUser(), requestTotalCountMax, pagingReq.getQueryExecutionId());
CannedQueryParameters params = new CannedQueryParameters(paramBean, cqpd, cqsd, requestTotalCountMax, pagingReq.getQueryExecutionId());
// return canned query instance
return getCannedQuery(params);
@@ -200,8 +185,6 @@ public class GetBlogPostsCannedQueryFactory extends AbstractCannedQueryFactory<B
{
super.afterPropertiesSet();
PropertyCheck.mandatory(this, "methodSecurityInterceptor", methodSecurityInterceptor);
PropertyCheck.mandatory(this, "methodService", methodService);
PropertyCheck.mandatory(this, "methodName", methodName);
PropertyCheck.mandatory(this, "methodSecurityInterceptor", methodSecurity);
}
}