Open COM8 opened 4 years ago
force_node_config:
storage:bookmarks:
access_model: whitelist
"xmpp.iot.**": # [...]
"xmpp.iot.**"
looks wrong. Does it work if you match "xmpp.iot.*"
?
<publish-options>
Why do you use publishing options? Does it work as expected if you explicitly configure the node (during creation or afterwards)? (However, I do agree that your traffic looks wrong, as I'd either expect your own publish request to fail or the other user's request to succeed.)
"xmpp.iot.**"
was a typo. But it does not change the result.
I'm using publish options as a quick way to test node publishing without having to create nodes first.
When I request the node configuration, pubsub#publish_model
is set to open
.
<iq type="get" from="testiot0@xmpp.example.org/2234684552" id="2601013173-1448578218-1105205319-3440505447-2234684552">
<pubsub xmlns="http://jabber.org/protocol/pubsub#owner">
<configure node="xmpp.iot.actuators"/>
</pubsub>
</iq>
<field var='pubsub#publish_model' type='list-single' label='Specify the publisher model'>
<value>open</value>
</field>
<iq xml:lang='en' to='testiot0@xmpp.example.org/2234684552' from='testiot0@xmpp.example.org' type='result' id='2601013173-1448578218-1105205319-3440505447-2234684552'>
<pubsub xmlns='http://jabber.org/protocol/pubsub#owner'>
<configure node='xmpp.iot.actuators'>
<x type='form'
xmlns='jabber:x:data'>
<field var='FORM_TYPE' type='hidden'>
<value>http://jabber.org/protocol/pubsub#node_config</value>
</field>
<field var='pubsub#access_model' type='list-single' label='Specify the access model'>
<value>presence</value>
<option label='Subscription requests must be approved and only subscribers may retrieve items'>
<value>authorize</value>
</option>
<option label='Anyone may subscribe and retrieve items'>
<value>open</value>
</option>
<option label='Anyone with a presence subscription of both or from may subscribe and retrieve items'>
<value>presence</value>
</option>
<option label='Anyone in the specified roster group(s) may subscribe and retrieve items'>
<value>roster</value>
</option>
<option label='Only those on a whitelist may subscribe and retrieve items'>
<value>whitelist</value>
</option>
</field>
<field var='pubsub#deliver_notifications' type='boolean' label='Deliver event notifications'>
<value>1</value>
</field>
<field var='pubsub#deliver_payloads' type='boolean' label='Deliver payloads with event notifications'>
<value>1</value>
</field>
<field var='pubsub#itemreply' type='list-single' label='Whether owners or publisher should receive replies to items'>
<value>none</value>
<option label='Statically specify a replyto of the node owner(s)'>
<value>owner</value>
</option>
<option label='Dynamically specify a replyto of the item publisher'>
<value>publisher</value>
</option>
<option>
<value>none</value>
</option>
</field>
<field var='pubsub#max_items' type='text-single' label='Max # of items to persist'>
<value>1</value>
</field>
<field var='pubsub#max_payload_size' type='text-single' label='Max payload size in bytes'>
<value>250000</value>
</field>
<field var='pubsub#notification_type' type='list-single' label='Specify the event message type'>
<value>headline</value>
<option label='Messages of type normal'>
<value>normal</value>
</option>
<option label='Messages of type headline'>
<value>headline</value>
</option>
</field>
<field var='pubsub#notify_config' type='boolean' label='Notify subscribers when the node configuration changes'>
<value>0</value>
</field>
<field var='pubsub#notify_delete' type='boolean' label='Notify subscribers when the node is deleted'>
<value>0</value>
</field>
<field var='pubsub#notify_retract' type='boolean' label='Notify subscribers when items are removed from the node'>
<value>0</value>
</field>
<field var='pubsub#persist_items' type='boolean' label='Persist items to storage'>
<value>1</value>
</field>
<field var='pubsub#presence_based_delivery' type='boolean' label='Only deliver notifications to available users'>
<value>1</value>
</field>
<field var='pubsub#publish_model' type='list-single' label='Specify the publisher model'>
<value>open</value>
<option label='Only publishers may publish'>
<value>publishers</value>
</option>
<option label='Subscribers may publish'>
<value>subscribers</value>
</option>
<option label='Anyone may publish'>
<value>open</value>
</option>
</field>
<field var='pubsub#purge_offline' type='boolean' label='Purge all items when the relevant publisher goes offline'>
<value>0</value>
</field>
<field var='pubsub#roster_groups_allowed' type='list-multi' label='Roster groups allowed to subscribe'/>
<field var='pubsub#send_last_published_item' type='list-single' label='When to send the last published item'>
<value>on_sub_and_presence</value>
<option label='Never'>
<value>never</value>
</option>
<option label='When a new subscription is processed'>
<value>on_sub</value>
</option>
<option label='When a new subscription is processed and whenever a subscriber comes online'>
<value>on_sub_and_presence</value>
</option>
</field>
<field var='pubsub#subscribe' type='boolean' label='Whether to allow subscriptions'>
<value>1</value>
</field>
</x>
</configure>
</pubsub>
</iq>
Environment
Configuration
Errors from error.log/crash.log
No errors
Bug description
It looks like the
pubsub#publish_model
property is ignored for PEP nodes.When I publish a node with
pubsub#publish_model
set toopen
it succeeds. But when I then try to change this node from an other user I get error 403 (forbidden).I also tried to enforce
pubsub#publish_model
toopen
by setting it in theejabberd.yml
Publishing a Node
Publishing a new Value from an other User
Server Response