/** * Converts a RequestCtx object to its string representation. * * @param reqCtx * the RequestCtx object * @return the String representation of the RequestCtx object */ public String makeRequestCtx(RequestCtx reqCtx) { ByteArrayOutputStream request = new ByteArrayOutputStream(); reqCtx.encode(request, new Indenter()); return new String(request.toByteArray()); }
requestRoot = request.getDocumentRoot(); setupSubjects(request.getSubjectsAsList()); setupResource(request.getResourceAsList()); mapAttributes(request.getActionAsList(), actionMap); mapAttributes(request.getEnvironmentAttributesAsList(), environmentMap);
private String getXacmlResourceId(RequestCtx req) { List<Attribute> attributes = req.getResourceAsList(); for (Attribute attr : attributes) { if (logger.isDebugEnabled()) { logger.debug("Attribute: " + attr.getId().toString()); } if (attr.getId().toString().equals(Constants.XACML1_RESOURCE.ID.uri)) { return attr.getValue().encode(); } } return null; } }
requestRoot = request.getDocumentRoot(); setupSubjects(request.getSubjectsAsList()); setupResource(request.getResourceAsList()); mapAttributes(request.getActionAsList(), actionMap); mapAttributes(request.getEnvironmentAttributesAsList(), environmentMap);
public ResponseCtx evaluate(RequestCtx request) throws PEPException { try { ByteArrayOutputStream bos = new ByteArrayOutputStream(); request.encode(bos); String response = this.client.evaluate(bos.toString()); ByteArrayInputStream bis = new ByteArrayInputStream(response.getBytes()); return ResponseCtx.getInstance(bis); } catch (Exception e) { logger.error("Error evaluating request.", e); throw new PEPException("Error evaluating request", e); } } /*
/** * Given a request, this method generates a hash. * * @param request * the request to hash * @return the hash * @throws CacheException */ private String makeHash(String request) throws CacheException { RequestCtx reqCtx = null; try { reqCtx = m_contextUtil.makeRequestCtx(request); } catch (MelcoeXacmlException pe) { throw new CacheException("Error converting request", pe); } byte[] hash = null; // ensure thread safety, don't want concurrent invocations of this method all modifying digest at once // (alternative is to construct a new digest for each( synchronized(digest) { digest.reset(); hashSubjectList(reqCtx.getSubjectsAsList(), digest); hashAttributeList(reqCtx.getResourceAsList(), digest); hashAttributeList(reqCtx.getActionAsList(), digest); hashAttributeList(reqCtx.getEnvironmentAttributesAsList(), digest); hash = digest.digest(); } return byte2hex(hash); }
private static String toString(RequestCtx req) { ByteArrayOutputStream buf = new ByteArrayOutputStream(); req.encode(buf); return new String(buf.toByteArray()); }