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; }
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); }
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 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); }
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);
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);