public boolean attributePresent(String name) { return attributePresent("", name); }
public XMLElementVerifier getVerifier() { if (xmlElementVerifier == null) xmlElementVerifier = new XMLElementVerifier(this); return xmlElementVerifier; } }
/** * Checks whether only the given attributes are present on the element. * * @param names * the attributes to check * @return true iff only the given attributes are present, false otherwise */ public boolean onlyAttributesPresent(String... names) { if (names == null) { return false; } return element.getAttributes().size() == names.length && allAttributesPresent(names); }
protected boolean verifyInnerElementWorker(Stanza stanza, String firstInnerElement) { return stanza != null && stanza.getVerifier().subElementsPresentExact(1) && stanza.getVerifier().subElementPresent(firstInnerElement); }
boolean jabberNamespace = NamespaceURIs.HTTP_ETHERX_JABBER_ORG_STREAMS.equals(stanza.getNamespaceURI()); boolean clientCall = xmlElementVerifier.namespacePresent(NamespaceURIs.JABBER_CLIENT); boolean serverCall = xmlElementVerifier.namespacePresent(NamespaceURIs.JABBER_SERVER); if (xmlElementVerifier.attributePresent("id")) {
protected boolean verifyInnerNamespace(Stanza stanza, String namespace) { XMLElementVerifier xmlElementVerifier = stanza.getVerifier(); if (!xmlElementVerifier.subElementsPresentAtLeast(1)) return false; List<XMLElement> innerElements = stanza.getInnerElements(); XMLElement firstInnerElement = innerElements.get(0); return firstInnerElement.getVerifier().namespacePresent(namespace); }
public boolean verify(Stanza stanza) { if (stanza == null) return false; if (!getName().equals(stanza.getName())) return false; String namespaceURI = stanza.getNamespaceURI(); if (namespaceURI == null) return false; XMLElementVerifier xmlElementVerifier = stanza.getVerifier(); boolean clientCall = xmlElementVerifier.namespacePresent(NamespaceURIs.JABBER_CLIENT); boolean serverCall = xmlElementVerifier.namespacePresent(NamespaceURIs.JABBER_SERVER); return clientCall || serverCall; }
public boolean toAttributeEquals(String toValue) { return attributeEquals("to", toValue); }
protected boolean verifyInnerNamespace(Stanza stanza, String namespace) { XMLElementVerifier xmlElementVerifier = stanza.getVerifier(); if (!xmlElementVerifier.subElementsPresentAtLeast(1)) return false; List<XMLElement> innerElements = stanza.getInnerElements(); XMLElement firstInnerElement = innerElements.get(0); return firstInnerElement.getNamespaceURI().equals(namespace); }
public String getUniqueXMLNSValue() { Attribute found = null; for (Attribute attribute : element.getAttributes()) { if (isNamespaceAttribute(attribute)) { if (found != null) return null; // not unique else { found = attribute; } } } if (found == null) return null; return found.getValue(); }
if (!stanza.getVerifier().subElementPresent("error")) { errorDescription = "stanza of type error must include an 'error' child"; if (stanza.getVerifier().subElementPresent("error")) { errorDescription = "stanza which is not of type error must not include an 'error' child";
if(stanza.getVerifier().onlySubelementEquals("x", NamespaceURIs.JABBER_X_DATA)) { } else if(stanza.getVerifier().onlySubelementEquals("x", NamespaceURIs.XEP0045_MUC_USER)) {
boolean jabberNamespace = NamespaceURIs.HTTP_ETHERX_JABBER_ORG_STREAMS.equals(stanza.getNamespaceURI()); boolean clientCall = xmlElementVerifier.namespacePresent(NamespaceURIs.JABBER_CLIENT); boolean serverCall = xmlElementVerifier.namespacePresent(NamespaceURIs.JABBER_SERVER); if (xmlElementVerifier.attributePresent("id")) {
protected boolean verifyInnerNamespace(Stanza stanza, String namespace) { XMLElementVerifier xmlElementVerifier = stanza.getVerifier(); if (!xmlElementVerifier.subElementsPresentAtLeast(1)) return false; List<XMLElement> innerElements = stanza.getInnerElements(); XMLElement firstInnerElement = innerElements.get(0); return firstInnerElement.getVerifier().namespacePresent(namespace); }
public ResponseStanzaContainer execute(Stanza stanza, ServerRuntimeContext serverRuntimeContext, boolean isOutboundStanza, SessionContext sessionContext, SessionStateHolder sessionStateHolder) { XMLElementVerifier xmlElementVerifier = stanza.getVerifier(); boolean tlsNamespace = xmlElementVerifier.namespacePresent(NamespaceURIs.URN_IETF_PARAMS_XML_NS_XMPP_TLS); if (!tlsNamespace) { return respondTLSFailure(); } if (sessionStateHolder.getState() != SessionState.STARTED) { return respondTLSFailure(); } Stanza responseStanza = new ServerResponses().getTLSProceed(); // if all is correct, go to next phase sessionStateHolder.setState(SessionState.ENCRYPTION_STARTED); sessionContext.switchToTLS(true, false); return new ResponseStanzaContainerImpl(responseStanza); }
public boolean fromAttributeEquals(String fromValue) { return attributeEquals("from", fromValue); }
/** * Checks whether all given attributes are present on the element. * * @param names * the attributes to check * @return true iff all attributes are present, false otherwise */ public boolean allAttributesPresent(String... names) { if (names == null) { return false; } for (String name : names) { if (!attributePresent(name)) { return false; } } return true; }
public ResponseStanzaContainer execute(Stanza stanza, ServerRuntimeContext serverRuntimeContext, boolean isOutboundStanza, SessionContext sessionContext, SessionStateHolder sessionStateHolder) throws AuthorizationFailedException { if (!AuthorizationRetriesCounter.getFromSession(sessionContext).hasTriesLeft()) { AuthorizationFailedException failedException = new AuthorizationFailedException("too many retries"); failedException.setErrorStanza(ServerErrorResponses.getStreamError( StreamErrorCondition.POLICY_VIOLATION, null, null, null)); throw failedException; } XMLElementVerifier xmlElementVerifier = stanza.getVerifier(); boolean saslNamespace = xmlElementVerifier.namespacePresent(NamespaceURIs.URN_IETF_PARAMS_XML_NS_XMPP_SASL); if (!saslNamespace) { return respondSASLFailure(); } if (sessionStateHolder.getState() != SessionState.ENCRYPTED) { return respondSASLFailure(); } return executeWorker(stanza, sessionContext, sessionStateHolder); }
public boolean attributeEquals(String name, String value) { return attributeEquals("", name, value); }
/** * Checks whether any of the given attributes are present on the element. * * @param names * the attributes to check * @return true iff at least one of the given attributes is present, false * otherwise */ public boolean anyAttributePresent(String... names) { if (names == null) { return false; } for (String name : names) { if (attributePresent(name)) { return true; } } return false; }