/** * @see org.n52.security.decision.DecisionService#request(PDPRequestCollection) */ public PDPResponseCollection request(final PDPRequestCollection reqCol) throws DecisionProcessingException { PDPResponseCollection respCol = new PDPResponseCollection(); Iterator itreq = reqCol.iterator(); while (itreq.hasNext()) { PDPRequest pdpRequest = (PDPRequest) itreq.next(); if (LOG.isDebugEnabled()) { LOG.debug("pdp request <" + pdpRequest + "> is permitted"); } respCol.add(new PDPResponse(PDPResponse.DECISION_PERMIT, pdpRequest)); } return respCol; } }
/** * Responsible for storing new found responses in the cache. * * @param lastResponse * @param allRequestsLookup */ private void putInCache(final PDPResponseCollection responseCol, final Map<PDPRequest, PDPResponse> allRequestsLookup) { for (Iterator<PDPResponse> resIt = responseCol.iterator(); resIt.hasNext();) { PDPResponse resp = resIt.next(); // put in cache... store(resp.getRequest(), resp); allRequestsLookup.put(resp.getRequest(), resp); } }
if (lastResponse != null && lastResponse.size() == reqCol.size()) { return lastResponse; PDPResponseCollection response = new PDPResponseCollection(); for (Iterator<PDPRequest> requests = reqCol.iterator(); requests.hasNext();) { PDPResponse resp = allRequestsLookup.get(requests.next()); response.add(resp);
public PDPResponseCollection(final PDPResponse pdpResponse) { this.add(pdpResponse); }
/** * Check for open(unanswered) requests and the filling of the allResponse map. * * @param lastResponse * the last response of a single decision service. * @param allResponses * a insertion-ordered map of request to responses. * @return all open (undefined) requests. */ private PDPRequestCollection findOpenRequests(final PDPResponseCollection lastResponse, final Map<PDPRequest,PDPResponse> allResponses) { PDPRequestCollection reqcol = new PDPRequestCollection(); for (Iterator<PDPResponse> respIt = lastResponse.iterator(); respIt.hasNext();) { PDPResponse resp = respIt.next(); if (resp.isUndefined()) { reqcol.add(resp.getRequest()); } allResponses.put(resp.getRequest(), resp); } return reqcol; }
@Override public PDPResponseCollection request(final PDPRequestCollection reqCol) throws DecisionProcessingException { PDPRequestCollection openRequests = reqCol; Map<PDPRequest, PDPResponse> allResponses = new LinkedHashMap<PDPRequest, PDPResponse>(); PDPResponseCollection lastResponse = null; for (Iterator<DecisionService> serviceIt = m_decisionServices.iterator(); serviceIt.hasNext() && !openRequests.isEmpty(); openRequests = findOpenRequests(lastResponse, allResponses)) { DecisionService decisionService = serviceIt.next(); lastResponse = decisionService.request(openRequests); } // little optimization if (m_decisionServices.size() == 1 && lastResponse != null) { return lastResponse; } PDPResponseCollection response = new PDPResponseCollection(); for (Iterator<PDPRequest> requests = reqCol.iterator(); requests.hasNext();) { PDPResponse resp = allResponses.get(requests.next()); response.add(resp); } return response; }
PDPResponseCollection resCollection = getPolicyDecisionFromPDP(subject, allIds, actionId); Iterator<PDPResponse> resIterator = resCollection.iterator(); while (resIterator.hasNext()) { PDPResponse response = resIterator.next();
public PDPResponseCollection request(PDPRequestCollection pdpReqCol) throws DecisionProcessingException { PDPResponseCollection resColl = new PDPResponseCollection(); LOG.info("PDP performs request"); Iterator it = pdpReqCol.iterator(); // iterate through request collection while (it.hasNext()) { PDPRequest request = (PDPRequest) it.next(); // only one target imaginable Target target = request.getTarget(); if (LOG.isDebugEnabled()) { LOG.debug(request); } int lPermission = permissionExists(target) ? PDPResponse.DECISION_PERMIT : PDPResponse.DECISION_DENY; PDPResponse response = new PDPResponse(lPermission, request); if (LOG.isDebugEnabled()) { LOG.debug(response); } resColl.add(response); } return resColl; }
Iterator<PDPResponse> resIterator = resCollection.iterator(); Set<String> notAllowedIds = new HashSet<String>(); while (resIterator.hasNext()) {
private PDPResponseCollection executeSingleRequest(final PDPRequestCollection pPDPRequestCollection) { final ArrayList<PDPRequest> orgRequests = new ArrayList<>(); Iterator converter = IteratorUtils.transformedIterator(pPDPRequestCollection.iterator(), new Transformer() { public Object transform(final Object input) { PDPRequest request = (PDPRequest) input; orgRequests.add(request); try { return convert52nRequestToXACMLRequest(request); } catch (XmlException e) { throw new DecisionProcessingException("can't convert pdp request: " + e, e); } } }); RequestDocument[] requests = (RequestDocument[]) IteratorUtils.toArray(converter, RequestDocument.class); ResponseDocument[] responses = m_requester.executeRequest(requests); PDPResponseCollection responseCol = new PDPResponseCollection(); for (int i = 0, j = responses.length; i < j; ++i) { ResponseDocument response = responses[i]; PDPResponse pdpresponse = convertXACMLResponseToPDPResponse(response, orgRequests.get(i)); responseCol.add(pdpresponse); } return responseCol; }
Iterator<PDPResponse> resIterator = resCollection.iterator();
public PDPResponseCollection request(PDPRequestCollection pdpReqCol) throws DecisionProcessingException { PDPResponseCollection resColl = new PDPResponseCollection(); LOG.info("PDP performs request"); resColl.add(response);
Iterator<PDPResponse> resIterator = resCollection.iterator(); Set<String> notAllowedIds = new HashSet<String>(); while (resIterator.hasNext()) {
Iterator<PDPResponse> resIterator = resCollection.iterator(); Set<String> allowedIds = new HashSet<String>(); while (resIterator.hasNext()) {
Iterator<PDPResponse> resIterator = resCollection.iterator();
Iterator<PDPResponse> resIterator = resCollection.iterator(); while (resIterator.hasNext()) { PDPResponse response = resIterator.next();
Iterator<PDPResponse> resIterator = resCollection.iterator(); while (resIterator.hasNext()) { PDPResponse response = resIterator.next();