Today I was struggling with the File Connector in combination with CARS authentication and the multi-tenancy within Cordys. I really like the multi-tenancy concept, but some features in Cordys are not mature yet.
We have a project with a lot of Organizations using the same BPM processes. These processes are deployed within the System Organization. The Organizations (the number can be up to 2000 !) are provisioned using Cordys Cloud Provisioning (CCP). The (Cordys) Users are authenticated through WS-Security within the soap headers.
In one of the processes we want to do a call within the context of another Organization.
When I read the community blogs and asked some people they came up with
1 - UDDI Interceptor
In this case you call a webservice of Cordys through a UDDI connector and use an interceptor to add the WS-Security header. The user authenticated has been put within a default Organization, so this way the call is done within the context of that users Organization.
Note: There is a lot of information within the community to write such an interceptor.
Note2: It is not a very elegant solution, because you would expect this to be configurable within the UDDI connector itself (just like any other EAI/BPM tool)
However there was a catch, so that this option did not work. All processes are deployed within System and the BPM process is deployed within a BPM Service Container with namespace N and operation OP. When this method is to be called from within a UDDI connector (and this UDDI connector is also in System Organization), this is done with the same namespace N and operation OP.
So Cordys has actually two Service Containers where to send the message to
2 - File Poller
Because the call has to be done after a file has been placed on some directory, the file poller would be another option. In this case the trigger of the file poller would be a call to the BPM webservice with another Organization as context.
So the XML Poller configuration looks something like:
However this time you ran into the problem that the trigger does not insert a WS-Security header.
(see also http://code.google.com/p/cordysfilecon/issues/detail?id=33)
The way this could be solved was by using another soap request:
Thanks, Roger van de Kimmenade