[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [xmlblaster] Msg Filter Plugin on Disptch?

David R Robison wrote:
What I want is to write a plugin that will filter messages dispatched by client ID. For example, when a message is published and delivered to tow subscribing clients (Dan and Dave) the plugin would deliver the message unchanged to Dan but modify the message (removing sensitive information) when delivering it to Dave. Is this possible with xmlBlaster 1.4?
The mime plugins can't change the message content as they reference the original message 'meat'
and a change in the plugin affects all others as well:
Note that the mime plugin is executed by the publisher thread during pushing
the message into the client specific callback queue.

You plugin must be behind the callback queue, only the security plugin is a
clone of the original (reference counted) message - so this is the place to go:
See http://www.xmlblaster.org/xmlBlaster/doc/requirements/security.development.serverPlugin.howto.html
which is a bit outdated.

The best place to look is into the htpasswd or the ldap plugin:
See org.xmlBlaster.authentication.plugins.htpasswd.Session.java:exportMessage()
Here you can intercept the message, check it and manipulate it.


Another approach would be to modify the message as it forwarded between nodes in a cluster. If the domain master is node A and there are two slaves, B and C, then the plugin would pass the messaged unchanged to node B but modify them when forwarding them to node C. Privileged users would then connect to node B and unprivileged users to node C. Are either approaches feasible? Any other suggestions?
You can achieve this by the above described authentication plugins or
by specific publish plugins (http://www.xmlblaster.org/xmlBlaster/doc/requirements/mime.plugin.publishfilter.html)