org.apache.jackrabbit.webdav.security.AclResource Maven / Gradle / Ivy
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.jackrabbit.webdav.security;
import org.apache.jackrabbit.webdav.DavException;
import org.apache.jackrabbit.webdav.DavResource;
import org.apache.jackrabbit.webdav.DavServletResponse;
import org.apache.jackrabbit.webdav.version.DeltaVResource;
import org.apache.jackrabbit.webdav.version.report.Report;
import org.apache.jackrabbit.webdav.version.report.ReportInfo;
/**
* AclResource
...
*/
public interface AclResource extends DavResource {
/**
* The AclResource must support the ACL method and the REPORT method in order
* to retrieve various security related reports.
*
* @see DeltaVResource#METHODS
* @see org.apache.jackrabbit.webdav.DavResource#METHODS
*/
public String METHODS = "ACL, REPORT";
/**
* Modify the DAV:acl property of this resource object.
* Note: RFC 3744 limits modification of access control elements (ACEs) to
* elements that are neither inherited nor protected.
*
* @param aclProperty DAV:acl property listing the set of ACEs to be modified
* by this call. This may be a subset of all access control elements
* present on this resource object only.
* @throws DavException If the request fails. RFC 3744 defines a set of
* preconditions which must be met for a successful ACL request.
* If these conditions are violated, this method must fail with
* {@link DavServletResponse#SC_FORBIDDEN 403 (Forbidden)} or
* {@link DavServletResponse#SC_CONFLICT 409 (Conflict)} and should provide
* a detailed error condition in the response body. See
* RFC 3744 Section 8.1.1
* (ACL Preconditions) for further details.
*/
public void alterAcl(AclProperty aclProperty) throws DavException;
/**
* Same as {@link DeltaVResource#getReport(ReportInfo)}.
*
* @param reportInfo specifying the report details retrieved from the REPORT
* request.
* @return the requested report.
* @throws DavException in case an error occurred or if the specified
* ReportInfo
is either not valid or cannot be run by this
* resource.
*/
public Report getReport(ReportInfo reportInfo) throws DavException;
}