Camel
  1. Camel
  2. CAMEL-5030

Allow smpp connection to be tunnelled through HTTP proxy

    Details

    • Type: Improvement Improvement
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.9.1, 2.10.0
    • Component/s: camel-smpp
    • Labels:
      None
    • Estimated Complexity:
      Unknown

      Description

      I can't use camel-smpp in my enterprise environment because all outbound connections have to go through a proxy. For SMPP, this means that using HTTP CONNECT is required similar to the implementation here:

      https://github.com/rtyley/jsch/blob/master/src/com/jcraft/jsch/ProxyHTTP.java

      1. wiki-update.txt
        1 kB
        chris snow
      2. camel-smpp-2.patch
        21 kB
        chris snow
      3. camel-smpp.patch
        7 kB
        chris snow

        Activity

        Hide
        Claus Ibsen added a comment -

        Thanks Chris for the wiki documentation. Its been added to the wiki page.

        Show
        Claus Ibsen added a comment - Thanks Chris for the wiki documentation. Its been added to the wiki page.
        Hide
        chris snow added a comment -

        attached wiki-update.txt containing the text changes required for the wiki.

        Show
        chris snow added a comment - attached wiki-update.txt containing the text changes required for the wiki.
        Hide
        Claus Ibsen added a comment -

        Chris, you can possible write up some suggestions for doc changes and attach as a .txt file to this JIRA and mark [x] in grant license.

        Show
        Claus Ibsen added a comment - Chris, you can possible write up some suggestions for doc changes and attach as a .txt file to this JIRA and mark [x] in grant license.
        Hide
        chris snow added a comment -

        Hi Hadrian - the icla is with my company's legal dept at the moment, so could be some time.

        Show
        chris snow added a comment - Hi Hadrian - the icla is with my company's legal dept at the moment, so could be some time.
        Hide
        Hadrian Zbarcea added a comment -

        The code is committed on both trunk and 2.9.x. The reason this jira is not closed is because of the doc, which I'll do when I'll have a bit of time. Chris, thanks for the offer to help. You cannot get edit rights until you submit an icla. As soon as you do that (if you can and/or want) we can grant you the necessary rights.

        Show
        Hadrian Zbarcea added a comment - The code is committed on both trunk and 2.9.x. The reason this jira is not closed is because of the doc, which I'll do when I'll have a bit of time. Chris, thanks for the offer to help. You cannot get edit rights until you submit an icla . As soon as you do that (if you can and/or want) we can grant you the necessary rights.
        Hide
        chris snow added a comment -

        Hi Claus - I'm getting permission denied when trying to update the wiki.

        Show
        chris snow added a comment - Hi Claus - I'm getting permission denied when trying to update the wiki.
        Hide
        Claus Ibsen added a comment -

        The wiki page needs to be updated
        http://camel.apache.org/smpp

        Show
        Claus Ibsen added a comment - The wiki page needs to be updated http://camel.apache.org/smpp
        Hide
        chris snow added a comment -

        Hi Hadrian - thanks for looking into this, and sorry for for the headache I've given you

        Show
        chris snow added a comment - Hi Hadrian - thanks for looking into this, and sorry for for the headache I've given you
        Hide
        Hadrian Zbarcea added a comment -

        Hi Chris,

        I looked into your patch and it's not bad but it required a bit of work. I had to fix a few typos and add the proper version for commons-codec in the pom (I wonder how it passed your tests, you probably had a hardcoded value when you tested). Then there were massive checkstyle violations I had to fix as the jsch style doesn't quite jive with ours. I also added the header indicating the origin of the code.

        The method of reading proxy response line was a bit crude, I replaced that. I wonder if anything could be done about the manual testing of the proxy and using dynamic ports. I will look into that tomorrow.

        Show
        Hadrian Zbarcea added a comment - Hi Chris, I looked into your patch and it's not bad but it required a bit of work. I had to fix a few typos and add the proper version for commons-codec in the pom (I wonder how it passed your tests, you probably had a hardcoded value when you tested). Then there were massive checkstyle violations I had to fix as the jsch style doesn't quite jive with ours. I also added the header indicating the origin of the code. The method of reading proxy response line was a bit crude, I replaced that. I wonder if anything could be done about the manual testing of the proxy and using dynamic ports. I will look into that tomorrow.
        Hide
        chris snow added a comment -

        Is it likely that this patch will make it into 2.9.1?

        Show
        chris snow added a comment - Is it likely that this patch will make it into 2.9.1?
        Hide
        chris snow added a comment -

        btw - the dependency on commons-codec was to base64 encode the proxy authentication username:password

        Show
        chris snow added a comment - btw - the dependency on commons-codec was to base64 encode the proxy authentication username:password
        Hide
        chris snow added a comment -

        Hopefully, this should be the full patch now!

        Show
        chris snow added a comment - Hopefully, this should be the full patch now!
        Hide
        Claus Ibsen added a comment -

        Is this the full patch?

        Wonder if there is a getInstance() method that the producer/consumer now uses?
        And how is the new http proxy options being used? The patch does not seem to check if they have been configured or not.

        Also why did you add a dependency on commons-codec? I assume this was a mistake.

        Show
        Claus Ibsen added a comment - Is this the full patch? Wonder if there is a getInstance() method that the producer/consumer now uses? And how is the new http proxy options being used? The patch does not seem to check if they have been configured or not. Also why did you add a dependency on commons-codec? I assume this was a mistake.
        Hide
        chris snow added a comment -

        Patch for 2.9.1-SNAPSHOT

        Show
        chris snow added a comment - Patch for 2.9.1-SNAPSHOT
        Hide
        chris snow added a comment -

        I'll aim to get a patch uploaded tomorrow.

        Show
        chris snow added a comment - I'll aim to get a patch uploaded tomorrow.

          People

          • Assignee:
            Hadrian Zbarcea
            Reporter:
            chris snow
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development