Expose only specific webservice methods to specific clients
Joined: Apr 21, 2009
I have wsdl created which exposes different webservice methods. I need to give wsdl path to different clients with only their required service methods to be exposed.
How do i achieve this?
I have used apache cxf with spring, created separate bean.xml which describes serviceImpl as the endpoint for the webservice.
Joined: Jun 28, 2010
Say you have different services like
a) CreditCardDtls,b)AddressDtls, c)SubmitApplDtls.
And you want to have a& b service to be given to one client and C for other client.
You can create separate XSD's and import the resource accordingly in different wsdl.
If you are using WLSD 2.0, then an interface can extend another interface.
In this case, you can set up a hierarchy which shares operations; the operations in the interface at the bottom of the hierarchy is available to all interfaces higher up in the hierarchy.
If you are use WSDL 1.1, then you cannot extend <portType> declarations. What I would consider is having multiple portType declarations; one for each kind of client.
Then you can assign endpoints depending on the type of client; client A would only be able to access and endpoint on which the operations in PortTypeA are available while, for instance, client B would be able to access two endpoints, one on which the operations in PortTypeA are available and another on which the operations in PortTypeB are available.
The different kind of clients would still be able to know about other kinds of operations being available to other clients, albeit not be able to invoke them.
If you want to completely hide operations not available to a client, then one WSDL per client is the only way I can think of that will accomplish this.