Search in sources :

Example 16 with IQ

use of org.xmpp.packet.IQ in project Openfire by igniterealtime.

the class IQRosterPayloadProcessor method sendRosterToComponent.

private void sendRosterToComponent(IQ requestPacket, Collection<RosterItem> items, String subdomain) {
    IQ response = IQ.createResultIQ(requestPacket);
    response.setTo(subdomain);
    Element query = new DefaultElement(QName.get("query", "jabber:iq:roster"));
    for (RosterItem i : items) {
        String jid = i.getJid().toString();
        if (!jid.equals(subdomain) && jid.contains(subdomain)) {
            Log.debug("Roster exchange for external component " + subdomain + ". Sending user " + i.getJid().toString());
            Element item = new DefaultElement("item", null);
            item.add(new DefaultAttribute("jid", i.getJid().toString()));
            item.add(new DefaultAttribute("name", i.getNickname()));
            item.add(new DefaultAttribute("subscription", "both"));
            for (String s : i.getGroups()) {
                Element group = new DefaultElement("group");
                group.setText(s);
                item.add(group);
            }
            query.add(item);
        }
    }
    response.setChildElement(query);
    dispatchPacket(response);
}
Also used : RosterItem(org.jivesoftware.openfire.roster.RosterItem) DefaultElement(org.dom4j.tree.DefaultElement) DefaultElement(org.dom4j.tree.DefaultElement) Element(org.dom4j.Element) IQ(org.xmpp.packet.IQ) DefaultAttribute(org.dom4j.tree.DefaultAttribute)

Example 17 with IQ

use of org.xmpp.packet.IQ in project Openfire by igniterealtime.

the class IQRosterPayloadProcessor method process.

@Override
public void process(Packet packet, String subdomain, String to, String from) throws PacketRejectedException {
    Log.debug("Processing packet in IQRosterPayloadProcessor for " + subdomain + " : " + packet.toString());
    IQ myPacket = (IQ) packet;
    String username = getUsernameFromJid(to);
    if (myPacket.getType().equals(IQ.Type.get)) {
        handleIQget(myPacket, subdomain, username);
    } else if (myPacket.getType().equals(IQ.Type.set)) {
        handleIQset(myPacket, subdomain, username);
    }
}
Also used : IQ(org.xmpp.packet.IQ)

Example 18 with IQ

use of org.xmpp.packet.IQ in project Openfire by igniterealtime.

the class IQRosterPayloadProcessor method sendEmptyRoster.

private void sendEmptyRoster(Packet requestPacket, String subdomain) {
    IQ iq = (IQ) requestPacket;
    IQ response = IQ.createResultIQ(iq);
    response.setTo(subdomain);
    Element query = new DefaultElement(QName.get("query", "jabber:iq:roster"));
    response.setChildElement(query);
    dispatchPacket(response);
}
Also used : DefaultElement(org.dom4j.tree.DefaultElement) DefaultElement(org.dom4j.tree.DefaultElement) Element(org.dom4j.Element) IQ(org.xmpp.packet.IQ)

Example 19 with IQ

use of org.xmpp.packet.IQ in project Openfire by igniterealtime.

the class MucFilterProcessor method process.

/**
	 * At this Point we know: MucBlock = true, !incoming, !processed Package is
	 * IQ with Namespace disco#info, from equals the watched subdomain given
	 * through subdomain
	 */
@Override
public void process(Packet packet, String subdomain, String to, String from) throws PacketRejectedException {
    IQ iqPacket = (IQ) packet;
    if (iqPacket.getType().equals(IQ.Type.result) && to.length() > 0) {
        Element root = iqPacket.getChildElement();
        List<Node> nodes = XpathHelper.findNodesInDocument(root.getDocument(), "//disco:feature");
        for (Node node : nodes) {
            String var = node.valueOf("@var");
            if (var.equals("http://jabber.org/protocol/muc"))
                root.remove(node);
        }
    }
}
Also used : Element(org.dom4j.Element) Node(org.dom4j.Node) IQ(org.xmpp.packet.IQ)

Example 20 with IQ

use of org.xmpp.packet.IQ in project Openfire by igniterealtime.

the class WhitelistProcessor method process.

/**
	 * If this is valid disco#items package for this Use-Case we iterate through
	 * the nodes and check if we have to remove nodes, this way they are not
	 * shown to the user receiving this disco#items.
	 * 
	 * @param subdomain
	 *            not the actual Subdomain here, as we have to use our set.
	 */
@Override
public void process(Packet packet, String subdomain, String to, String from) throws PacketRejectedException {
    IQ myPacket = (IQ) packet;
    if (myPacket.getType().equals(IQ.Type.result) && (from.length() == 0 || from.equals(_server.getServerInfo().getXMPPDomain()))) {
        Log.debug("Processing packet in Whitelistprocessor for " + to + "Packet: " + packet.toString());
        Element root = myPacket.getChildElement();
        List<Node> nodes = XpathHelper.findNodesInDocument(root.getDocument(), "//discoitems:item");
        for (Node node : nodes) {
            String node_domain = node.valueOf("@jid");
            if (watchedSubdomains.contains(node_domain)) {
                if (_permissions.isGatewayLimited(node_domain) && !_permissions.allowedForUser(node_domain, myPacket.getTo()))
                    root.remove(node);
            }
        }
    }
}
Also used : Element(org.dom4j.Element) Node(org.dom4j.Node) IQ(org.xmpp.packet.IQ)

Aggregations

IQ (org.xmpp.packet.IQ)208 Element (org.dom4j.Element)141 JID (org.xmpp.packet.JID)49 PacketError (org.xmpp.packet.PacketError)35 Presence (org.xmpp.packet.Presence)19 UserNotFoundException (org.jivesoftware.openfire.user.UserNotFoundException)18 Message (org.xmpp.packet.Message)17 UnauthorizedException (org.jivesoftware.openfire.auth.UnauthorizedException)16 ClientSession (org.jivesoftware.openfire.session.ClientSession)14 DataForm (org.xmpp.forms.DataForm)13 ArrayList (java.util.ArrayList)11 AgentNotFoundException (org.jivesoftware.xmpp.workgroup.AgentNotFoundException)10 Packet (org.xmpp.packet.Packet)10 PacketException (org.jivesoftware.openfire.PacketException)9 User (org.jivesoftware.openfire.user.User)8 List (java.util.List)7 PrivacyList (org.jivesoftware.openfire.privacy.PrivacyList)7 Iterator (java.util.Iterator)6 Test (org.junit.Test)6 FormField (org.xmpp.forms.FormField)6