powered by Jive Software

Allow components to do create nodes for publish/subscribe

I am not sure if this is the right place for this discussion, sorry if i am in the wrong arena.

We having started using Openfire, and found that it’s pub/sub mechanism does not allow components to create nodes.

The xep http://xmpp.org/extensions/xep-0060.html actually does not specify about components unless i misred it wrong, probably because components get a more standard protocol later http://xmpp.org/extensions/xep-0114.html.

We were able to find pretty easily where in the code (PubSubEngine) where this is not allowed,

private void createNode(PubSubService service, IQ iq, Element childElement, Element createElement) {
     // Get sender of the IQ packet
     JID from = iq.getFrom();
     // Verify that sender has permissions to create nodes
     if (!service.canCreateNode(from) || !UserManager.getInstance().isRegisteredUser(from)) {
          // The user is not allowed to create nodes so return an error
            sendErrorPacket(iq, PacketError.Condition.forbidden, null);
            return;
        }

The componenet is not a registered user, local or remote.

We were able to quickly allow components with some code changes for a one off build for us. We were looking to doing a more official patch to allow registered components to create nodes, but we were unsure if this is even something the openfire community would be interested or want to allow?

I would suggest you raise it on the pubsub discussion forum here to find out if it can be added to a future version of the spec. I don’t recall anything specifically related in the current version (of which OpenFire is an older version 1.8 I believe).

I would be very interested in this, because I just stumbled upon the same issues.