Package com.calclab.emite.base.xml

Examples of com.calclab.emite.base.xml.XMLPacket


   *            the stanza to get the delay from
   * @return the date stamp if present, {@code null} otherwise
   */
  @Nullable
  public static final Date getDelayStamp(final Stanza stanza) {
    XMLPacket x = stanza.getExtension("delay", XmppNamespaces.DELAY);
    if (x != null)
      return XmppDateTime.parseXMPPDateTime(x.getAttribute("stamp"));
   
    x = stanza.getExtension("x", XmppNamespaces.DELAY_LEGACY);
    if (x != null)
      return XmppDateTime.parseLegacyFormatXMPPDateTime(x.getAttribute("stamp"));
   
    return null;
  }
View Full Code Here


    }
  }

  @Override
  public void onPacketReceived(final PacketReceivedEvent event) {
    final XMLPacket stanza = event.getPacket();
    final String name = stanza.getTagName();
    final String xmlns = stanza.getNamespace();
   
    if (mode == SessionMode.login) {
      if (("stream:features".equals(name) || "features".equals(name)) && stanza.hasChild("mechanisms", XmppNamespaces.SASL)) {
        setStatus(SessionStatus.connecting);
       
        List<String> mechanisms = Lists.newArrayList();
        for (final XMLPacket mechanism : stanza.getFirstChild("mechanisms", XmppNamespaces.SASL).getChildren("mechanism")) {
          mechanisms.add(mechanism.getText());
        }
       
        if (credentials.isAnoymous()) {
          if (!mechanisms.contains("ANONYMOUS")) {
            setStatus(SessionStatus.notAuthorized);
            mode = SessionMode.offline;
            connection.disconnect();
          }
         
          connection.send(XMLBuilder.create("auth", XmppNamespaces.SASL).attribute("mechanism", "ANONYMOUS").getXML());
          return;
        }
       
        if (mechanisms.contains("SCRAM-SHA-1")) {
          saslClient = new ScramSHA1Client(credentials);
        }
        else if (mechanisms.contains("PLAIN")) {
          saslClient = new PlainClient(credentials);
        }
        else {
          setStatus(SessionStatus.notAuthorized);
          mode = SessionMode.offline;
          connection.disconnect();
        }
       
        final String encondedAuth = Base64.toBase64(saslClient.getInitialResponse());
        connection.send(XMLBuilder.create("auth", XmppNamespaces.SASL).attribute("mechanism", saslClient.getMechanismName()).text(encondedAuth).getXML());
      } else if ("challenge".equals(name) && XmppNamespaces.SASL.equals(xmlns)) {
        final byte[] challenge = Base64.fromBase64(stanza.getText());
        try {
          final String encondedAuth = Base64.toBase64(saslClient.evaluateChallenge(challenge));
          connection.send(XMLBuilder.create("response", XmppNamespaces.SASL).text(encondedAuth).getXML());
        } catch (SaslException e) {
          setStatus(SessionStatus.notAuthorized);
          mode = SessionMode.offline;
          connection.disconnect();
        }
      } else if ("success".equals(name) && XmppNamespaces.SASL.equals(xmlns)) {
        final byte[] challenge = Base64.fromBase64(stanza.getText());
        if (challenge != null && challenge.length > 0) {
          try {
            saslClient.evaluateChallenge(challenge);
          } catch (SaslException e) {
            setStatus(SessionStatus.notAuthorized);
View Full Code Here

          if (res.getStatusCode() != Response.SC_OK) {
            callback.onError(new RequestException("Invalid status "+res.getStatusCode()+": "+res.getStatusText()));
            return;
          }
         
          final XMLPacket response = XMLBuilder.fromXML(res.getText());
          if (response == null || !"body".equals(response.getTagName())){
            callback.onError(new RequestException("Bad response: " + res.getText()));
            return;
          }
         
          callback.onSuccess(response);
View Full Code Here

  @Test
  public void shoudAddQuery() {
    final IQ iq = new IQ(IQ.Type.get);
    iq.addChild("query", "xmlns:query");
    final XMLPacket query = iq.getChild("query", "xmlns:query");
    assertNotNull(query);
    assertEquals("xmlns:query", query.getAttribute("xmlns"));
  }
View Full Code Here

  @Test
  public void testToXML() {
    final String textXml = "<test attr=\"&quot;&lt;&amp;&gt;&#39;\"><child /><childWithText>&quot;&lt;&amp;&gt;&#39;</childWithText></test>";

    final XMLPacket result = XMLBuilder.fromXML(textXml);

    assertEquals("Root has wrong number of attributes", 1, result.getAttributes().size());
    assertEquals("Attribute not correct", "\"<&>'", result.getAttribute("attr"));

    final List<XMLPacket> children = result.getChildren();

    assertEquals("First child not found", "child", children.get(0).getTagName());
    assertEquals("First child has wrong number of children", 0, children.get(0).getChildren().size());
    assertEquals("First child has wrong number of attributes", 0, children.get(0).getAttributes().size());
View Full Code Here

  }

  @Test
  public void shouldSendAnonymousIfAnonymousProvided() {
    manager.sendAuthorizationRequest(Credentials.createAnonymous());
    final XMLPacket packet = XMLBuilder.create("auth", "urn:ietf:params:xml:ns:xmpp-sasl").attribute("mechanism", "ANONYMOUS").getXML();
    assertTrue(connection.hasSent(packet));
  }
View Full Code Here

  }

  @Test
  public void shouldSendPlainAuthorizationUnlessAnonymous() {
    manager.sendAuthorizationRequest(credentials(uri("node@domain/resource"), "password"));
    final XMLPacket packet = XMLBuilder.create("auth", "urn:ietf:params:xml:ns:xmpp-sasl").attribute("mechanism", "PLAIN").getXML();
    assertTrue(connection.hasSent(packet));
  }
View Full Code Here

  }

  @Test
  public void shouldSendPlainAuthorizationWithoutNode() {
    manager.sendAuthorizationRequest(credentials(uri("domain/resource"), ""));
    final XMLPacket packet = XMLBuilder.create("auth", "urn:ietf:params:xml:ns:xmpp-sasl").attribute("mechanism", "PLAIN").getXML();
    assertTrue(connection.hasSent(packet));
  }
View Full Code Here

TOP

Related Classes of com.calclab.emite.base.xml.XMLPacket

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.