/** * Create a PepRequest just using Strings * * <p>Note to developers: all the newPepRequest methods eventually call {@link * #newPEPRequest}({@link PepRequestOperation}), which * * @param subjectName String representing the name of the subject ex: Josh * @param actionId String representing the action ex: read * @param resourceId String representing the resource ex: file1234 * @return a PepRequest populated with attributes mapped from the params * @throws PepException Indicates that there is some issue creating the <code>PEPRequest</code> */ public PepRequest newPepRequest(String subjectName, String actionId, String resourceId) throws PepException { if (log.isTraceEnabled()) log.trace("Start Simple Decide"); PepRequest request = this.newPEPRequest(PepRequestOperation.DECIDE); request.setAccessSubject(subjectName); request.setResourceAction(resourceId, actionId); // request.setEnvironment(new Date()); return request; }
/** * Create a PepRequest using any set of objects for the Subject, Action, Resource, Environment * entities. * * <p>Note: for this PepRequest to work, the appropriate {@link JavaObjectMapper} classes must be * configured and set using {@link RequestAttributesFactoryImpl#setMappers(List)} * * @param subjectObj Object representing the Subject ex: javax.auth.security.Subject * @param actionObj Object representing the Action ex: String (read) * @param resourceObj Object representing the Resource ex: String (file) or File * @param environmentObj Object representing the Environment ex: Map containing attributes name * and values * @return a PepRequest populated with attributes mapped from params * @throws PepException if there is no <code>JavObjectMapper</code> configured for the objects * passed into the factory. * @see JavaObjectMapper */ public PepRequest newPepRequest( Object subjectObj, Object actionObj, Object resourceObj, Object environmentObj) throws PepException { if (log.isTraceEnabled()) log.trace("\n\tBegin creation of Mapper-based PepRequest"); PepRequest request = this.newPEPRequest(PepRequestOperation.DECIDE); request.setAccessSubject(subjectObj); request.setResourceAction(resourceObj, actionObj); request.setEnvironment(environmentObj); if (log.isTraceEnabled()) log.trace("\n\tCompleted creation of Mapper-based PepRequest"); return request; }
/** * Create a PepRequest using objects, where a list of n action objects and a corresponding list of * n resource objects are provided to represent n resource-action pairs. A decision for each * resource-action pair will be returned, when PepRequest.decide() is invoked. * * @param subjectObj Object representing the Subject ex: javax.auth.security.Subject * @param actionObjects a list of length n, of actionObj Objects representing the Actions ex: * String (read) * @param resourceObjects a list of length n, of resourceObj Objects representing the Resources * ex: String (file) or File * @param environmentObj Object representing the Environment ex: Map containing attributes name * and values * @return a PepRequest populated with mapped Attributes * @throws PepException */ public PepRequest newBulkPepRequest( Object subjectObj, List actionObjects, List resourceObjects, Object environmentObj) throws PepException { if (log.isTraceEnabled()) log.trace("\n\tBegin creation of Bulk Mapper-based PepRequest"); PepRequest request = (PepRequestImpl) this.newPEPRequest(PepRequestOperation.BULK_DECIDE); request.setAccessSubject(subjectObj); // This sets up the correlations request.setBulkResourceActions(resourceObjects, actionObjects); request.setEnvironment(environmentObj); if (log.isTraceEnabled()) log.trace("\n\tCompleted creation of Mapper-based PepRequest"); return request; }
/** * Create a PepRequest using subject and environment objects, plus a "scope" String that * represents a PDP policy-specific resource representation. * * <p>When the PepRequest.decide() method is invoked, based on queryType it will return either * * <pre> * - a list of Allowed ResourceAction pairs within scope * - a list of Denied ResourceAction pairs within scope * - or a list of full detailed results for all * ResourceAction pairs within scope * </pre> * * @param subjectObj * @param environmentObj * @param scope a string containing a PDP policy-specific resource representation * @param queryType an enum containing a choice of allowed, denied, or full/verbose * @return a PepRequest populated with info mapper from the params * @throws PepException */ public PepRequest newQueryPepRequest( Object subjectObj, Object environmentObj, String scope, PepRequestQueryType queryType) throws PepException { PepRequest request = (PepRequestImpl) this.newPEPRequest( queryType == PepRequestQueryType.VERBOSE ? PepRequestOperation.QUERY_VERBOSE : PepRequestOperation.QUERY); request.setAccessSubject(subjectObj); request.setEnvironment(environmentObj); request.setScope(scope); if (queryType != PepRequestQueryType.VERBOSE) { // Set to true if allowed results requested, // otherwise false. request.setQueryReturnAllowed( queryType.equals(PepRequestQueryType.RETURN_ONLY_ALLOWED_RESULTS)); } return request; }