Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SOAP client support #6504

Open
hodrigohamalho opened this issue Sep 4, 2019 · 24 comments
Open

SOAP client support #6504

hodrigohamalho opened this issue Sep 4, 2019 · 24 comments
Assignees
Labels
cat/discussion This issues requires a discussion cat/feature PR label for a new feature status/never-stale Marker that this issue should not be marked as stale

Comments

@hodrigohamalho
Copy link

hodrigohamalho commented Sep 4, 2019

Update: Getting support from the Product Side: https://issues.jboss.org/browse/ENTESB-12062

This is a Feature Request

Description

I think this is an always expected question in a customer meeting about Integration.
"How I can do SOAP to REST using low code Integration?" It would be nice to have this on Syndesis.

@pure-bot pure-bot bot added the notif/triage The issue needs triage. Applied automatically to all new issues. label Sep 4, 2019
@KurtStam
Copy link
Contributor

KurtStam commented Sep 11, 2019

Thanks @hodrigohamalho. What would be the 80% use case for SOAP support?

  1. No support and document how to wrap SOAP services like: http://redhatgov.io/workshops/agile_integrations_dev/lab04/
  2. Would it be a SOAP connector so that you call into a SOAP service, and if so what authentication scenarios would we need to support
  3. Do we also need to be able to support exposing as a SOAP service, or could this wait till later.
  4. Support SOAP as a payload in Syndesis and AtlasMap. (This would be a lot more involved..)
  5. ?

Finally, Syndesis support extensions (https://github.com/syndesisio/syndesis-extensions) so I could see the community contribute a soap connector that we could add the project. Would you be interested to help out on this? We can obviously help you with this. Most likely it would use the Camel CXF component (https://camel.apache.org/components/latest/cxf-component.html)

@KurtStam KurtStam added cat/discussion This issues requires a discussion cat/feature PR label for a new feature and removed notif/triage The issue needs triage. Applied automatically to all new issues. labels Sep 11, 2019
@gaughan
Copy link

gaughan commented Sep 16, 2019

IMHO,
Not 0
Yes to 1
Not 2
3 maybe but not in the first version

@hodrigohamalho
Copy link
Author

Hi @KurtStam,
0. No

  1. Yes, about the authentication I think it could be implemented on-demand, right now the customers that I have been talking isn't using any authentication (internal WS).
  2. Nice to be but not a must right now.

I can contribute but not lead this extension.

@christophd
Copy link
Contributor

If it is just 1. for the moment without any WS specific authentication mechanism I wonder if we could just use the existing Http connector.

SOAP is nothing but Http POST requests with some specific SOAP envelope payload and some SOAP action header eventually. That should be doable with plain Http connector.

@KurtStam
Copy link
Contributor

@christophd I think what we is being asked here something similar as the api-connector, where you give it a openapi document (in this case a soap-schema) like this: https://github.com/syndesisio/syndesis-quickstarts/tree/master/db-2-api-connector

@KurtStam
Copy link
Contributor

KurtStam commented Sep 17, 2019

@hodrigohamalho

I can contribute but not lead this extension.

Cool - we divi up the tasks once we identify them

@gaughan
Copy link

gaughan commented Sep 17, 2019

Yes similar to api client connector.
Auth should be included.

@zregvart
Copy link
Member

So when we say authentication should be included, what do we mean by that? WS-Security support?

I think in the first go we should disregard any security means other than TLS and then see from the feedback what authentication mechanisms are used so we know what to implement.

@gaughan
Copy link

gaughan commented Sep 17, 2019

WS-Security username and password at a minimum I would think.

@heiko-braun
Copy link
Collaborator

@hodrigohamalho What use cases do you have in mind?

  • Fuse Online SOAP Clients talking to external SOAP endpoints?
  • External SOAP Clients invoking on Fuse Online?

@dhirajsb
Copy link
Contributor

@tdiesler built a SOAP to REST bridge a little while ago for Camel. Perhaps we can leverage it here.

@hodrigohamalho
Copy link
Author

@heiko-braun
Fuse Online SOAP clients talking to external SOAP endpoints.

It's more to build a bridge to legacy systems, enabling new microservices to interact with it via REST/JSON.

Application -- ( REST ) --> Fuse Online -- (SOAP) ---> WS

Usually, people try to do it through the API Management Layer.

@tdiesler
Copy link

It's here
https://github.com/jboss-fuse/wsdl2rest

@KurtStam
Copy link
Contributor

OK so summarize the scope of what we talked about this far:

  1. We would replicate the api-connector functionality such that we have the ability to call into an external SOAP service from Syndesis and we'd be able to consume the response.

  2. We'd support minimal WS-Security with 'username and password'. If possible we should see if this can be managed by leveraging 3Scale. So in Syndesis we not need to support it and 3scale would add the security.

@KurtStam
Copy link
Contributor

@tdiesler is this a bridge or a endpoint generator? From what I read it takes a WSDL and creates REST endpoint? So it's not really a 'bridge' then?

@dhirajsb
Copy link
Contributor

dhirajsb commented Nov 7, 2019

@KurtStam In the flow diagram that @hodrigohamalho mentioned earlier:

Application -- ( REST ) --> Fuse Online -- (SOAP) ---> WS

The wsdl2rest project could be used to generate a Camel route from the SOAP endpoint's WSDL, which could possibly be packaged in an extension and somehow used in a Fuse Online flow.

Are you looking for tooling on top of that REST endpoint?

@zregvart
Copy link
Member

zregvart commented Nov 8, 2019

I think a better solution would be one that we use for REST clients, and that's to create a dynamic client connector for SOAP WS. That way we don't have additional artefacts (extension jar) and we don't have to do any code generation.

@valdar
Copy link
Contributor

valdar commented Nov 11, 2019

Hello, a bit late to the party probably and more related to have a general SOAP connector for syndesis, I would evaluate the use of Wise jboss project: https://wise.jboss.org/

In their words:

Wise is a Java framework for easily invoking webservices, which can be used as the base for zero-code webservice invocation applications. Wise can be the proper solution when total and effective client/server decoupling through WS is required.

and a more detailed presentation here: http://jbosswise.blogspot.com/2013/10/wise-presentation-at-jbug-milan.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+jbosswise+%28Wise+Invoke+Service+Easily%29

@dhirajsb
Copy link
Contributor

If all we need is a dynamic SOAP client connector and we expect the user to create a bridge using Fuse Online one operation at a time, then we could just use Camel CXF component to expose a SOAP endpoint. We don't need to go out of our own product ecosystem.

It would have to be wrapped with a dynamic connector to download and extract metadata (operations and types) from the WSDL to be exposed in Fuse Online.

@dhirajsb dhirajsb self-assigned this Nov 12, 2019
@zregvart
Copy link
Member

If we're converging on this issue targeting SOAP client support in Syndesis perhaps it would be good that the issue title also reflects that.

@hodrigohamalho hodrigohamalho changed the title SOAP to REST SOAP client support Nov 22, 2019
@stale
Copy link

stale bot commented Feb 20, 2020

This issue has been automatically marked as stale because it has not had any activity since 90 days. It will be closed if no further activity occurs within 7 days. Thank you for your contributions!

@stale stale bot added the status/stale Issue considered to be stale so that it can be closed soon label Feb 20, 2020
@dhirajsb
Copy link
Contributor

Added backend PR #7694

@stale stale bot removed the status/stale Issue considered to be stale so that it can be closed soon label Feb 21, 2020
@stale
Copy link

stale bot commented May 22, 2020

This issue has been automatically marked as stale because it has not had any activity since 90 days. It will be closed if no further activity occurs within 7 days. Thank you for your contributions!

@stale stale bot added the status/stale Issue considered to be stale so that it can be closed soon label May 22, 2020
@squakez squakez added the status/never-stale Marker that this issue should not be marked as stale label May 22, 2020
@stale stale bot removed the status/stale Issue considered to be stale so that it can be closed soon label May 22, 2020
@raraujo-dev
Copy link

Hi everybody.

Any update on this matter? Is there a SOAP connector in the roadmap?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cat/discussion This issues requires a discussion cat/feature PR label for a new feature status/never-stale Marker that this issue should not be marked as stale
Projects
None yet
Development

No branches or pull requests