Class PrincipalSearchReport

All Implemented Interfaces:
Report, XmlSerializable

public class PrincipalSearchReport extends AbstractSecurityReport
The PrincipalSearchReport performs a search for all principals that match the search criteria specified in the request.

The following XML structure is required in the request body:

 <!ELEMENT principal-property-search ((property-search+), prop?, apply-to-principal-collection-set?) >
 <!ELEMENT property-search (prop, match) >
  prop: see RFC 2518, Section 12.11
 <!ELEMENT match #PCDATA >
 <!ELEMENT apply-to-principal-collection-set #EMPTY >
 
DAV:property-search contains lists the properties to be searched inside the DAV:prop element and the query string inside the DAV:match element. Multiple DAV:property-search elements or multiple elements within the DAV:prop element will be interpreted with a logical AND.

DAV:prop lists the property names to be reported in the response for each of the principle resources found.

DAV:apply-to-principal-collection-set: Optional empty element. If present in the request body the search will be executed over all members of the collections that are listed as values in the DAV:principal-collection-set property present on the resource the report has been requested for. Otherwise the search is limited to all members (at any depth) of that resource itself.

The response body must contain a single DAV:multistatus XML element.

  • Field Details

  • Constructor Details

    • PrincipalSearchReport

      public PrincipalSearchReport()
  • Method Details

    • getType

      public ReportType getType()
      Description copied from interface: Report
      Returns the registered type of this report.
      Returns:
      the type of this report.
      See Also:
    • init

      public void init(DavResource resource, ReportInfo info) throws DavException
      Description copied from class: AbstractSecurityReport
      Checks if the given resource and report info are not null, that the requested report type matches this implementation and that no other Depth header than 0 is present.
      Specified by:
      init in interface Report
      Overrides:
      init in class AbstractSecurityReport
      Parameters:
      resource -
      info -
      Throws:
      DavException
      See Also:
    • getSearchRoots

      public String[] getSearchRoots()
      Retrieve the the locations where the search should be performed.
      Note, that the search result must be converted to MultiStatusResponses that must be returned back to this report.
      Returns:
      href of collections that act as start for the search.
      See Also:
    • getSearchArguments

      public org.apache.jackrabbit.webdav.security.report.PrincipalSearchReport.SearchArgument[] getSearchArguments()
      Retrieve the search arguments used to run the search for principals.
      Note, that the search result must be converted to MultiStatusResponses that must be returned back to this report.
      Returns:
      array of SearchArgument used to run the principal search.
      See Also:
    • setResponses

      public void setResponses(MultiStatusResponse[] responses)
      Write the search result back to the report.
      Parameters:
      responses -