/* The contents of this file are subject to the license and copyright terms
* detailed in the license directory at the root of the source tree (also
* available online at http://fedora-commons.org/license/).
*/
package fedora.server.security;
import java.util.Date;
import fedora.server.Context;
import fedora.server.errors.authorization.AuthzException;
/**
* @author Bill Niebel
*/
public interface Authorization {
//subject
public static final String SUBJECT_CATEGORY =
"urn:oasis:names:tc:xacml:1.0:subject";
public static final String SUBJECT_CATEGORY_ACCESS =
"urn:oasis:names:tc:xacml:1.0:subject-category:access-subject";
//action
public static final String ACTION_CATEGORY =
"urn:oasis:names:tc:xacml:1.0:action";
public static final String ACTION_CATEGORY_ACCESS =
"urn:oasis:names:tc:xacml:1.0:action-category:access-action";
//resource
public static final String RESOURCE_CATEGORY =
"urn:oasis:names:tc:xacml:1.0:resource";
public static final String RESOURCE_CATEGORY_ACCESS =
"urn:oasis:names:tc:xacml:1.0:resource-category:access-resource";
//environment
public static final String ENVIRONMENT_CATEGORY =
"urn:oasis:names:tc:xacml:1.0:environment";
public static final String ENVIRONMENT_CATEGORY_ACCESS =
"urn:oasis:names:tc:xacml:1.0:environment-category:access-environment";
public static final String FEDORA_ROLE_KEY = "fedoraRole";
public void reloadPolicies(Context context) throws Exception;
public void enforceAddDatastream(Context context,
String pid,
String dsId,
String[] altIDs,
String MIMEType,
String formatURI,
String dsLocation,
String controlGroup,
String dsState,
String checksumType,
String checksum) throws AuthzException;
public void enforceExport(Context context,
String pid,
String format,
String exportContext,
String exportEncoding) throws AuthzException;
@Deprecated
public void enforceExportObject(Context context,
String pid,
String format,
String exportContext,
String exportEncoding)
throws AuthzException;
public void enforceGetDatastream(Context context,
String pid,
String datastreamId,
Date asOfDateTime) //x
throws AuthzException;
public void enforceGetDatastreamHistory(Context context,
String pid,
String datastreamId)
throws AuthzException;
public void enforceGetDatastreams(Context context,
String pid,
Date asOfDate,
String state) throws AuthzException;
public void enforceGetNextPid(Context context,
String namespace,
int nNewPids) throws AuthzException;
public void enforceGetObjectXML(Context context,
String pid,
String objectXmlEncoding)
throws AuthzException;
public void enforceIngest(Context context,
String pid,
String format,
String ingestEncoding) throws AuthzException;
@Deprecated
public void enforceIngestObject(Context context,
String pid,
String format,
String ingestEncoding)
throws AuthzException;
public void enforceListObjectInFieldSearchResults(Context context,
String pid)
throws AuthzException;
public void enforceListObjectInResourceIndexResults(Context context,
String pid)
throws AuthzException;
public void enforceModifyDatastreamByReference(Context context,
String pid,
String datastreamId,
String[] altIDs,
String mimeType,
String formatURI,
String datastreamNewLocation,
String checksumType,
String checksum)
throws AuthzException;
public void enforceModifyDatastreamByValue(Context context,
String pid,
String datastreamId,
String[] altIDs,
String mimeType,
String formatURI,
String checksumType,
String checksum)
throws AuthzException;
public void enforceModifyObject(Context context,
String pid,
String objectState,
String ownerId) throws AuthzException;
public void enforcePurgeDatastream(Context context,
String pid,
String datastreamId,
Date endDT) throws AuthzException;
public void enforcePurgeObject(Context context, String pid)
throws AuthzException;
public void enforceSetDatastreamState(Context context,
String pid,
String datastreamId,
String datastreamNewState)
throws AuthzException;
public void enforceSetDatastreamVersionable(Context context,
String pid,
String datastreamId,
boolean versionableNewState)
throws AuthzException;
public void enforceCompareDatastreamChecksum(Context context,
String pid,
String datastreamId,
Date versionDate)
throws AuthzException;
public void enforceGetRelationships(Context context,
String pid,
String predicate) throws AuthzException;
public void enforceAddRelationship(Context context,
String pid,
String predicate,
String object,
boolean isLiteral,
String datatype) throws AuthzException;
public void enforcePurgeRelationship(Context context,
String pid,
String predicate,
String object,
boolean isLiteral,
String datatype) throws AuthzException;
//APIA
public void enforceDescribeRepository(Context context)
throws AuthzException;
public void enforceFindObjects(Context context) throws AuthzException;
public void enforceRIFindObjects(Context context) throws AuthzException;
public void enforceGetDatastreamDissemination(Context context,
String pid,
String datastreamId,
Date asOfDate)
throws AuthzException;
public void enforceGetDissemination(Context context,
String pid,
String sDefPID,
String methodName,
Date asOfDate,
String authzAux_objState,
String authzAux_sdefState,
String authzAux_sDepPID,
String authzAux_sDepState,
String authzAux_dissState)
throws AuthzException;
public void enforceGetObjectHistory(Context context, String pid)
throws AuthzException;
public void enforceGetObjectProfile(Context context,
String pid,
Date asOfDate) throws AuthzException;
public void enforceListDatastreams(Context context,
String pid,
Date asOfDate) throws AuthzException;
public void enforceListMethods(Context context, String pid, Date ofAsDate)
throws AuthzException;
public void enforceServerStatus(Context context) throws AuthzException;
public void enforceOAIRespond(Context context) throws AuthzException;
public void enforceUpload(Context context) throws AuthzException;
public void enforce_Internal_DSState(Context context,
String PID,
String state) throws AuthzException;
public void enforceResolveDatastream(Context context, Date ticketDateTime)
throws AuthzException;
public void enforceReloadPolicies(Context context) throws AuthzException;
public void enforceRetrieveFile(Context context, String fileURI)
throws AuthzException;
}