org.n52.security.common.xml.XMLPath类的使用及代码示例

x33g5p2x  于2022-02-03 转载在 其他  
字(16.8k)|赞(0)|评价(0)|浏览(113)

本文整理了Java中org.n52.security.common.xml.XMLPath类的一些代码示例,展示了XMLPath类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。XMLPath类的具体详情如下:
包路径:org.n52.security.common.xml.XMLPath
类名称:XMLPath

XMLPath介绍

[英]Represents an XPath and its evaluation.

You create a "source" XMLPath by using the XMLPathCtx#findIn methods. From there you can use the

  • #node(String)
  • #all(String)
  • #bool(String)
  • #number(String)
  • #text(String)
    methods to build a whole xpath. After creation of an whole xpath you can call the get() method of each concrete XMLPath instance, to get the result of the query.

Sample (finds a root node of a document):

XMLPathCtx ctx = XMLPathCtx.createNew() 
.addNamespace("t", "http://tempuri.org/test"); 
Node result = ctx.findIn(document).node("/*").get();

[中]表示XPath及其求值。
您可以使用XMLPathCtx#findIn方法创建一个“源”XMLPath。从那里你可以使用
*#节点(字符串)
*#全部(字符串)
*#布尔(弦)
*#编号(字符串)
*#文本(字符串)
方法来构建一个完整的xpath。创建完整的xpath后,可以调用每个具体XMLPath实例的get()方法,以获取查询结果。
示例(查找文档的根节点):

XMLPathCtx ctx = XMLPathCtx.createNew() 
.addNamespace("t", "http://tempuri.org/test"); 
Node result = ctx.findIn(document).node("/*").get();

代码示例

代码示例来源:origin: org.n52.security/52n-security-decision-xacml

private void debugPDPResponse(Element response) {
  StringBuilder text = new StringBuilder();
  String resourceId = XMLPathCtx.createNew().findIn(response).text("//*[local-name() = 'Result']/@ResourceId").get();
  String decision = XMLPathCtx.createNew().findIn(response).text("//*[local-name() = 'Result']/*[local-name() = 'Decision']/text()").get();
  text.append("Resource: \t").append(resourceId ).append("\n");
  text.append("Decision: \t").append(decision).append("\n");
  NodeList obligationNodes = XMLPathCtx.createNew().findIn(response).all("//*[local-name() = 'Obligation']").get();
  for (int i = 0; i < obligationNodes.getLength(); i++) {
    Element obligationElem = (Element) obligationNodes.item(i);
    String oblId = obligationElem.getAttribute("ObligationId");
    String fulfillOn = obligationElem.getAttribute("FulfillOn");
    text.append("Obligation: \t").append(oblId ).append("(fulfillOn:").append(fulfillOn).append(")\n");
    appendAttributeAssignments(text, XMLPathCtx.createNew().findIn(obligationElem).all(".//*[local-name()='AttributeAssignment']").get());
  }
  LOG.debug("PDP response\n" + text);
}

代码示例来源:origin: org.n52.security/52n-security-wss

private List<AuthenticationMethod> getSupportedAuthenticationMethods() {
    List<AuthenticationMethod> supportedAuthNMethods = new ArrayList<AuthenticationMethod>();
    NodeList authenticationMethodList = m_xPathCtx.findIn(m_capsDoc).all("//authn:AuthenticationMethod").get();
    for (int i = 0; i < authenticationMethodList.getLength(); i++) {
      org.w3c.dom.Node currentAuthMethod = authenticationMethodList.item(i);
      String type = m_xPathCtx.findIn(currentAuthMethod).text("@xsi:type").get();
      type = type.substring(type.lastIndexOf(":") + 1);
      String method = m_xPathCtx.findIn(currentAuthMethod).text("@method").get();
      AuthenticationMethod supportedAuthMethod;
      if (type.equals("WASType")) {
        org.w3c.dom.Node accAuthNServiceNode = m_xPathCtx.findIn(currentAuthMethod).node("//authn:AuthenticationService").get();
        String wasName = m_xPathCtx.findIn(accAuthNServiceNode).text("authn:Name/text()").get();
        String wasUrl = m_xPathCtx.findIn(accAuthNServiceNode).text("authn:OnlineResource/@xlink:href").get();
        supportedAuthMethod = new org.n52.security.authentication.WASAuthenticationMethod(wasName, wasUrl, "");
      } else {
        supportedAuthMethod = AuthenticationMethodFactory.getDefault().create(method);
      }
      supportedAuthNMethods.add(supportedAuthMethod);
    }
    return supportedAuthNMethods;
  }
}

代码示例来源:origin: org.n52.security/52n-security-core

if (XPathConstants.STRING == m_previous.getReturnType()) {
        + "this works only if the string is wellformed xml");
  return m_xPath.evaluate(new InputSource(new StringReader((String) m_previous.eval())), getReturnType());
} else if (XPathConstants.NODE == m_previous.getReturnType()) {
  return m_xPath.evaluate(m_previous.eval(), getReturnType());
} else if (XPathConstants.NODESET == m_previous.getReturnType()) {
  return evalNodeList((NodeList) m_previous.eval());
} else if (m_previous.getReturnType() == null) {
  return m_xPath.evaluate((InputSource) m_previous.eval(), getReturnType());
} else if (XPathConstants.NUMBER == m_previous.getReturnType()) {
} else if (XPathConstants.BOOLEAN == m_previous.getReturnType()) {
      "return type of unknown format expected <" + m_previous.getReturnType() + ">");

代码示例来源:origin: org.n52.metadata/smarteditor-api

public String getTemplateFor(Document document) {
  Node rootNode = context.findIn(document).node("/*[1]").get();
  String serviceType = getServiceTypeFrom(rootNode);
  String version = context.findIn(rootNode).text("@version").get();
  return version.equals("") ? templateMap.get(serviceType) : templateMap.get(serviceType + "_" + version);
}

代码示例来源:origin: org.n52.security/52n-security-decision-xacml

public void debugPDPRequest(final Element request) {
  StringBuilder text = new StringBuilder();
  NodeList requestChildNodes = XMLPathCtx.createNew().findIn(request).all("/*[local-name() = 'Request']/*").get();
  for (int i = 0; i < requestChildNodes.getLength(); i++) {
    Element requestChild = (Element) requestChildNodes.item(i);
    text.append(requestChild.getLocalName()).append("\n");
    appendAttributes(text, XMLPathCtx.createNew().findIn(requestChild).all(".//*[local-name()='AttributeValue']").get());
  }
  LOG.debug("PDP request\n" + text);
}

代码示例来源:origin: org.n52.security/52n-security-enforcement-impl

NodeList queryNodes = ctx.findIn(m_requestDocument).all("/GetFeature/Query").get();
  Node queryFilterSubNode = ctx.findIn(queryNode).node("Filter/*").get();

代码示例来源:origin: org.n52.metadata/smarteditor-api

public String getValue(Node rootNode, XMLPathCtx context) {
    String nameSpaceURI = getNamespaceURI(rootNode);
    if (startsWith ? nameSpaceURI.startsWith(namespace) : nameSpaceURI.equals(namespace)) {
      if (nodeExists != null && context.findIn(rootNode).node(nodeExists).get() != null) {
        return value;
      } else {
        return value;
      }
    }
    return null;
  }
}

代码示例来源:origin: org.n52.metadata/smarteditor-api

private void buildExtentTemplate(Document document, Map<String, String> hashMap, XMLPathCtx xmlPathCtx) {
  hashMap.put("west", xmlPathCtx.findIn(document).text("//gmd:westBoundLongitude/*/text()").get());
  hashMap.put("east", xmlPathCtx.findIn(document).text("//gmd:eastBoundLongitude/*/text()").get());
  hashMap.put("north", xmlPathCtx.findIn(document).text("//gmd:northBoundLatitude/*/text()").get());
  hashMap.put("south", xmlPathCtx.findIn(document).text("//gmd:southBoundLatitude/*/text()").get());
}

代码示例来源:origin: org.n52.security/52n-security-core

/**
 * Method evals a path on a NodeList.
 *
 * @param nodeList the nodeList.
 * @return Object.
 * @throws XPathExpressionException if error occurs.
 */
private Object evalNodeList(final NodeList nodeList) throws XPathExpressionException {
  if (getReturnType() != XPathConstants.NODESET) {
    for (int i = 0, l = nodeList.getLength(); i < l; ++i) {
      Object result = m_xPath.evaluate(nodeList.item(i), getReturnType());
      if (result != null) {
        return result;
      }
    }
    return null;
  } else {
    SimpleNodeList resultNodes = new SimpleNodeList();
    for (int i = 0, l = nodeList.getLength(); i < l; ++i) {
      resultNodes.addAll((NodeList) m_xPath.evaluate(nodeList.item(i), getReturnType()));
    }
    return resultNodes;
  }
}

代码示例来源:origin: org.n52.security/52n-security-enforcement-impl

/**
 * Get position from feature node.
 * 
 * @param node
 *            feature
 * @return position as text
 */
private String getPositionFromSamplingPoint(Node node) {
  NodeList nl =
      ctxResponse
          .findIn(node)
          .all("./" + SOSInterceptorGlobals.ELEMENT_SA_POSITION + "/"
              + SOSInterceptorGlobals.ELEMENT_GML_POINT + "/"
              + SOSInterceptorGlobals.ELEMENT_GML_POS).get();
  for (int i = 0; i < nl.getLength();) {
    return nl.item(i).getTextContent();
  }
  return "0 0";
}

代码示例来源:origin: org.n52.security/52n-security-enforcement-impl

ctx.findIn(doc).all("//*/sos:ObservationOfferingList/sos:ObservationOffering").get();
        NodeList procedureList =
            ctx.findIn(doc)
                .all("//*/sos:ObservationOfferingList/sos:ObservationOffering[@gml:id='"
                    + offeringID + "']/sos:procedure").get();
        NodeList observedPropertyList =
            ctx.findIn(doc)
                .all("//*/sos:ObservationOfferingList/sos:ObservationOffering[@gml:id='"
                    + offeringID + "']/sos:observedProperty").get();
        NodeList featureOfInterestList =
            ctx.findIn(doc)
                .all("//*/sos:ObservationOfferingList/sos:ObservationOffering[@gml:id='"
                    + offeringID + "']/sos:featureOfInterest").get();
        .node("//*/ows:OperationsMetadata/ows:Operation/ows:Parameter[@name='eventTime']/ows:AllowedValues/ows:Range/ows:MinimumValue")
        .get();
Node maximumValue =
    ctx.findIn(doc)
        .node("//*/ows:OperationsMetadata/ows:Operation/ows:Parameter[@name='eventTime']/ows:AllowedValues/ows:Range/ows:MaximumValue")
        .get();

代码示例来源:origin: org.n52.security/52n-security-wss

private Node getSecuredServiceTypeNode() {
  Node securedServiceTypeNode = m_xPathCtx.findIn(m_capsDoc).node("//wss:SecuredServiceType").get();
  return securedServiceTypeNode;
}

代码示例来源:origin: org.n52.metadata/smarteditor-api

private void buildPartyTemplate(Document document, Map<String, String> hashMap, XMLPathCtx xmlPathCtx) {
  hashMap.put("IndividualName", xmlPathCtx.findIn(document).text("//gmd:individualName/*/text()").get());
  hashMap.put("PositionName", xmlPathCtx.findIn(document).text("//gmd:positionName/*/text()").get());
  hashMap.put("OrganisationName", xmlPathCtx.findIn(document).text("//gmd:organisationName/*/text()").get());
  hashMap.put("Voice", xmlPathCtx.findIn(document).text("//gmd:contactInfo/*/gmd:phone/*/gmd:voice/*/text()").get());
  hashMap.put("Fax", xmlPathCtx.findIn(document).text("//gmd:contactInfo/*/gmd:phone/*/gmd:facsimile/*/text()").get());
  hashMap.put("DeliveryPoint", xmlPathCtx.findIn(document).text("//gmd:contactInfo/*/gmd:address/*/gmd:deliveryPoint/*/text()").get());
  hashMap.put("City", xmlPathCtx.findIn(document).text("//gmd:contactInfo/*/gmd:address/*/gmd:city/*/text()").get());
  hashMap.put("AdministrativeArea", xmlPathCtx.findIn(document).text("//gmd:contactInfo/*/gmd:address/*/gmd:administrativeArea/*/text()").get());
  hashMap.put("PostalCode", xmlPathCtx.findIn(document).text("//gmd:contactInfo/*/gmd:address/*/gmd:postalCode/*/text()").get());
  hashMap.put("Country", xmlPathCtx.findIn(document).text("//gmd:contactInfo/*/gmd:address/*/gmd:country/*/text()").get());
  hashMap.put("MailAddress", xmlPathCtx.findIn(document).text("//gmd:contactInfo/*/gmd:address/*/gmd:electronicMailAddress/*/text()").get());
  hashMap.put("Role", xmlPathCtx.findIn(document).text("//gmd:role/*/@codeListValue").get());
  hashMap.put("Url", xmlPathCtx.findIn(document).text("//gmd:contactInfo/*/gmd:onlineResource/*/gmd:linkage/gmd:URL").get());
}

代码示例来源:origin: org.n52.security/52n-security-wss

/**
 * @return
 */
public LicensePrecondition getLicensePrecondition() {
  org.w3c.dom.Node licBroClientElement = m_xPathCtx.findIn(m_capsDoc).node("/wss:WSS_Capabilities/wss:Capability/licb:LicensePrecondition/licb:LicenseBrokerClient").get();
  if (licBroClientElement == null) {
    return null;
  }
  String licenseRedirectURL = m_xPathCtx.findIn(licBroClientElement).text("licb:RedirectURL/text()").get();
  String ssoGetURL = m_xPathCtx.findIn(licBroClientElement).text("licb:SSOGetURL").get();
  if (licenseRedirectURL == null && ssoGetURL == null) {
    String baseUrl = m_xPathCtx.findIn(licBroClientElement).text("ows:DCP/ows:HTTP/ows:Post/text()").get();
    if (baseUrl == null) {
      return null;
    }
    baseUrl = ensureSingleEndingSlash(baseUrl);
    licenseRedirectURL = baseUrl + "getOrCreateLicenseToken.faces";
    ssoGetURL = baseUrl + "getLicenseToken.faces";
  }
  LicensePrecondition licensePrecondition = new LicensePrecondition(ssoGetURL.trim(), licenseRedirectURL.trim(), null);
  return licensePrecondition;
}

代码示例来源:origin: org.n52.metadata/smarteditor-api

for (Document record : records) {
  Map<String, Object> innerMap = new HashMap<>();
  String fileIdentifier = context.findIn(record).text("//gmd:fileIdentifier[1]/*/text()").get();
  String title = context.findIn(record).text("//gmd:identificationInfo[1]/*/gmd:citation/*/gmd:title/*/text()").get();
  String lResourceType = context.findIn(record).text("//gmd:hierarchyLevel[1]/*/@codeListValue").get();
  innerMap.put("title", title);
  innerMap.put("resourceType", lResourceType);
  NodeList identifiers = context.findIn(record).all("//gmd:identificationInfo[1]/*/gmd:citation/*/gmd:identifier/*").get();
  List<String> resourceIdList = new ArrayList<>();
  for (int i = 0; i < identifiers.getLength(); i++) {
    Node node = identifiers.item(i);
    String code = context.findIn(node).text("gmd:code/*/text()").get();
    String codeSpace = context.findIn(node).text("gmd:codeSpace/*/text()").get();
    StringBuilder stringBuilder = new StringBuilder();
    if (!StringUtils.isEmpty(codeSpace)) {

代码示例来源:origin: org.n52.security/52n-security-enforcement-impl

/**
 * Get position from feature node.
 * 
 * @param node
 *            feature
 * @return position as text
 */
private String getPositionFromSamplingPoint(Node node) {
  NodeList nl =
      ctx.findIn(node)
          .all("./" + SOSInterceptorGlobals.ELEMENT_SA_POSITION + "/"
              + SOSInterceptorGlobals.ELEMENT_GML_POINT + "/"
              + SOSInterceptorGlobals.ELEMENT_GML_POS).get();
  for (int i = 0; i < nl.getLength();) {
    return nl.item(i).getTextContent();
  }
  return "0 0";
}

代码示例来源:origin: org.n52.security/52n-security-enforcement-impl

ctx.findIn(doc).all("//*/sos:Contents/sos:ObservationOfferingList/sos:ObservationOffering").get();
      .node("//*/sos:Contents/sos:ObservationOfferingList/sos:ObservationOffering[@gml:id='"
          + offeringID + "']/sos:time/gml:TimePeriod/gml:beginPosition").get();
      .node("//*/sos:Contents/sos:ObservationOfferingList/sos:ObservationOffering[@gml:id='"
          + offeringID + "']/sos:time/gml:TimePeriod/gml:endPosition").get();

代码示例来源:origin: org.n52.security/52n-security-facade

public static SAML2IdPMetadata createFrom(Element idpSsoDescrElement) throws MalformedURLException {
  XMLPathCtx xpathCtx = XMLPathCtx.createNew().addNamespace("md", "urn:oasis:names:tc:SAML:2.0:metadata");
  NodeList nodeList = xpathCtx.findIn(idpSsoDescrElement).all("md:SingleSignOnService").get();
  SAML2IdPMetadata metadata = new SAML2IdPMetadata();
  for (int i = 0; i < nodeList.getLength(); i++) {
    Element ssoService = (Element) nodeList.item(i);
    String binding = ssoService.getAttribute("Binding");
    String location = ssoService.getAttribute("Location");
    metadata.addSSOBinding(binding, new URL(location));
  }
  Element organizationElem = (Element) xpathCtx.findIn(idpSsoDescrElement).node("./../md:Organization").get();
  if (organizationElem == null) {
    String entityID = xpathCtx.findIn(idpSsoDescrElement).text("./../@entityID").get();
    metadata.setOrganisationDisplayName(entityID);
  } else {
    String idpDisplayName = xpathCtx.findIn(organizationElem).text("md:OrganizationDisplayName/text()").get();
    metadata.setOrganisationDisplayName(idpDisplayName);
  }
  return metadata;
}

代码示例来源:origin: org.n52.security/52n-security-wss

public void setAuthenticationMethods(Collection<AuthenticationMethod> methods) {
  Node newSuppAuthMethodsElem = m_capsDoc.createElementNS("http://www.gdi-nrw.org/wss", "SupportedAuthenticationMethodList");
  Node capabilityElement = m_xPathCtx.findIn(m_capsDoc).node("//wss:Capability").get();
  Node lOldSuppAuthMethodsElem =
      m_xPathCtx.findIn(capabilityElement).node("//wss:Capability/wss:SupportedAuthenticationMethodList").get();
  if (lOldSuppAuthMethodsElem != null) {
    capabilityElement.removeChild(lOldSuppAuthMethodsElem);
  }
  AuthenticationMethodDOMRenderer renderer = new AuthenticationMethodDOMRenderer();
  for (AuthenticationMethod method : methods) {
    Element authMethodElem = renderer.render(method);
    Node importedNode = m_capsDoc.importNode(authMethodElem, true);
    newSuppAuthMethodsElem.appendChild(importedNode);
  }
  capabilityElement.appendChild(newSuppAuthMethodsElem);
}

代码示例来源:origin: org.n52.metadata/smarteditor-api

/**
 * Load a builder class defined in '/catalog_api_factory.xml'
 *
 * @param pType xml or kvp is standard, any other type might be given also
 * @param pName Name of the REquest (GetRecords, GetCapabilities, ect)
 * @return Class or null, if not loaded
 */
protected Class loadClass(String pType, String pName) {
  String lExpression = "//api:BuilderFactory/api:Group[@type='" + pType + "']/api:Builder[@name='" + pName + "']/api:class";
  LOG.debug("Evaluating expression: {} ", lExpression);
  String className = xmlPathCtx.findIn(mRoot).text(lExpression).get();
  if (className == null) {
    LOG.warn(lExpression + " could not be evaluated. Result is null.");
    return null;
  }
  try {
    return Class.forName(className);
  } catch (ClassNotFoundException e) {
    LOG.error(e.getMessage());
    return null;
  }
}

相关文章