/** * @deprecated use getResourceId() to get the id of the resource */ public String getResource() { return getResourceId(); }
/** * @deprecated use getActionId to get the id of the action. */ public String getAction() { return getActionId(); }
public PDPRequestCollection(final PDPRequest pdpRequest) { this.add(pdpRequest); }
private void store(final PDPRequest request, final PDPResponse resp) { if (m_stopped || m_maxCacheTime < 0) { return; } // store copy to ensure no memory leeks because of pdp responses/requests! CacheEntry entry = new CacheEntry(new PDPResponse(resp.getDecision(), new PDPRequest(new Target()), resp.getObligations())); String key = getCacheKey(request); synchronized (m_lock) { int size = m_decisionCache.size(); if (size > m_maxEntries) { // don't insert if limit is exceeded! return; } m_decisionCache.put(key, entry); } }
private RequestDocument convert52nRequestToXACMLRequest(final PDPRequest pRequest) throws XmlException { RequestDocument lDoc = RequestDocument.Factory.newInstance(); RequestType lRequest = lDoc.addNewRequest(); Target target = pRequest.getTarget(); convertEnvironmentToXACMLEnvironment(pRequest.getEnvironment(), lRequest); convertSubjectToXACMLSubject(target.getSubject(), lRequest); convertLicensePrincipalOfSubjectToXACMLEnvironment(target.getSubject(), lRequest); // todo: support complex resource and action attributes and not only id's convertResourceToXACMLResource(target.getResourceId(), lRequest); convertActionToXACMLAction(target.getActionId(), lRequest); // type is ignored ! return lDoc; }
/** * @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; } }
private PDPRequestCollection findNonCachedRequests(final PDPRequestCollection reqInCol, final Map<PDPRequest, PDPResponse> allRequestsLookup) { PDPRequestCollection reqcol = new PDPRequestCollection(); for (Iterator<PDPRequest> reqIt = reqInCol.iterator(); reqIt.hasNext();) { PDPRequest req = reqIt.next(); // here check for cache PDPResponse resp = lookUp(req); // if not in cache... if (resp == null) { reqcol.add(req); } // also add with null to ensure correct order! allRequestsLookup.put(req, resp); } return reqcol; }
public String toString() { final StringBuffer sb = new StringBuffer(); sb.append("org.n52.security.decision.PDPResponse"); sb.append("{decision=").append(getDecision()); sb.append(", obligations=").append(getObligations()); sb.append(", request=").append(getRequest()); sb.append('}'); return sb.toString(); }
/** * 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); } }
public String toString() { final StringBuffer sb = new StringBuffer(); sb.append("org.n52.security.decision.PDPRequest"); sb.append("{target=").append(getTarget()); sb.append(", environment=").append(getEnvironment()); sb.append('}'); return sb.toString(); } }
public String toString() { final StringBuffer sb = new StringBuffer(); sb.append("org.n52.security.decision.Target"); sb.append("{subject=").append(getSubject()); sb.append(", resourceAttributes=").append(getResourceAttributes()); sb.append(", actionAttributes=").append(getActionAttributes()); sb.append('}'); return sb.toString(); } }
private String getCacheKey(PDPRequestCollection reqCol) { StringBuilder key = new StringBuilder(); for (Iterator<PDPRequest> requests = reqCol.iterator(); requests.hasNext();) { key.append(getCacheKey(requests.next())); } return key.toString(); }
public PDPResponseCollection(final PDPResponse pdpResponse) { this.add(pdpResponse); }
protected Target buildPolicyTarget(Subject subject, String resourceId, String actionId) { return new Target(subject, resourceId, actionId); }
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); } } });
/** * @deprecated use a application specific type attribute. */ public String getType() { return getResourceAttributes().getStringAttributeValue(RESOURCE_TYPE); }
public int hashCode() { int result; result = m_decision; result = 31 * result + m_request.hashCode(); result = 31 * result + m_obligations.hashCode(); return result; }
public int hashCode() { int result; result = m_target.hashCode(); result = 31 * result + m_environment.hashCode(); return result; }
public String getResourceId() { return getResourceAttributes().getStringAttributeValue(RESOURCE_ID); }
public void setResourceId(final String resourceId) { getResourceAttributes().putAttribute(RESOURCE_ID, resourceId); }