Details

    • Type: New Feature New Feature
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.9.2
    • Component/s: C# - Library
    • Labels:
      None
    • Environment:

      VS 2008

      Description

      I Created TSecureSocket and TSecureSocketServer classes which wrap tcpclient with ssl.

      1. TSSLServerSocket.cs
        5 kB
        Anthony Abate
      2. TSSLSocket.cs
        11 kB
        Anthony Abate

        Issue Links

          Activity

          Anthony Abate created issue -
          Hide
          Anthony Abate added a comment -

          SSL Socket Server

          Show
          Anthony Abate added a comment - SSL Socket Server
          Anthony Abate made changes -
          Field Original Value New Value
          Attachment TSSLServerSocket.cs [ 12392792 ]
          Hide
          Anthony Abate added a comment -

          SSL Socket

          Show
          Anthony Abate added a comment - SSL Socket
          Anthony Abate made changes -
          Attachment TSSLSocket.cs [ 12392793 ]
          Anthony Abate made changes -
          Summary SSL Support C# SSL Support
          Hide
          Michael Greene added a comment -

          I haven't had a chance to use these classes, but speaking to the code:

          • The TODOs shouldn't enter the codebase. If they still need to be done, they should be taken care of before these patches are accepted.
          • -1 for author information
          • -1 for dependency on log4net. One way you can get around this is by allowing a logger delegate a la THRIFT-25.
          • The spacing should be done in tabs to match the existing library.

          I do think SSL is something sorely lacking in the C# implementation and would like to see this further developed. This is a great start.

          Show
          Michael Greene added a comment - I haven't had a chance to use these classes, but speaking to the code: The TODOs shouldn't enter the codebase. If they still need to be done, they should be taken care of before these patches are accepted. -1 for author information -1 for dependency on log4net. One way you can get around this is by allowing a logger delegate a la THRIFT-25 . The spacing should be done in tabs to match the existing library. I do think SSL is something sorely lacking in the C# implementation and would like to see this further developed. This is a great start.
          Hide
          Anthony Abate added a comment -

          This was never intended to be merged directly into thrift, but it was meant to start the ball rolling.

          I never heard anything so I assumed it got lost backlog of tickets as there doesn't really seem to be much momentum on the C# side in thrift.

          log4net is pretty ubiquitous, and I suspect that anyone who doesn't like this dependency can easily modify that. The original TServerSocket.cs code used "Console.Error" which did not serve my needs.

          The TODO refers to 2 way certificate look ups. That is, the client will also have a certificate that is verified by the server. Most times, the client just verifies the server as in https because its impossible for public websites to know each client that connects.. I personally do not need this feature, nor do most people, so I left it out but indicated where it would be implemented if needed.

          What information should I supply? Its used inplace of TSocket and TServerSocket. You just need to supply a certificate.

          Show
          Anthony Abate added a comment - This was never intended to be merged directly into thrift, but it was meant to start the ball rolling. I never heard anything so I assumed it got lost backlog of tickets as there doesn't really seem to be much momentum on the C# side in thrift. log4net is pretty ubiquitous, and I suspect that anyone who doesn't like this dependency can easily modify that. The original TServerSocket.cs code used "Console.Error" which did not serve my needs. The TODO refers to 2 way certificate look ups. That is, the client will also have a certificate that is verified by the server. Most times, the client just verifies the server as in https because its impossible for public websites to know each client that connects.. I personally do not need this feature, nor do most people, so I left it out but indicated where it would be implemented if needed. What information should I supply? Its used inplace of TSocket and TServerSocket. You just need to supply a certificate.
          Hide
          Jeff Brown added a comment -

          Please don't take a dependency on log4net. I'm in a position where I have to take as few dependencies as possible because my code (Gallio / MbUnit) may be linked with other people's arbitrary code that might have different conflicting dependencies. I'm even considering internalizing Thrift.dll using ILMerge...

          So I second adding a very basic logging interface or delegate that clients can wire up as needed.

          Show
          Jeff Brown added a comment - Please don't take a dependency on log4net. I'm in a position where I have to take as few dependencies as possible because my code (Gallio / MbUnit) may be linked with other people's arbitrary code that might have different conflicting dependencies. I'm even considering internalizing Thrift.dll using ILMerge... So I second adding a very basic logging interface or delegate that clients can wire up as needed.
          Hide
          James E. King, III added a comment -

          There is a SSL implementation with full certificate support in the patch I uploaded for THRIFT-66. It is not attached here because the C# runtime was overhauled a fair amount by the patch and TTransport changed slightly to accomodate new logging functions.

          Show
          James E. King, III added a comment - There is a SSL implementation with full certificate support in the patch I uploaded for THRIFT-66 . It is not attached here because the C# runtime was overhauled a fair amount by the patch and TTransport changed slightly to accomodate new logging functions.
          Kevin Worth made changes -
          Link This issue relates to THRIFT-1068 [ THRIFT-1068 ]
          Jens Geyer made changes -
          Link This issue is superceded by THRIFT-2347 [ THRIFT-2347 ]
          Hide
          Hudson added a comment -

          ABORTED: Integrated in Thrift #1140 (See https://builds.apache.org/job/Thrift/1140/)
          THRIFT-2347 C# TLS Transport based on THRIFT-181 (jensg: rev c1d7943a7ed78fb434eaa90feb1a3a17b446fc97)

          • lib/csharp/src/Thrift.csproj
          • test/test.sh
          • lib/csharp/src/Transport/TTLSServerSocket.cs
          • lib/csharp/test/ThriftTest/maketest.sh
          • lib/csharp/src/Transport/TTLSSocket.cs
          • lib/csharp/test/ThriftTest/TestClient.cs
          • lib/csharp/test/ThriftTest/TestServer.cs
          • lib/csharp/Makefile.am
          Show
          Hudson added a comment - ABORTED: Integrated in Thrift #1140 (See https://builds.apache.org/job/Thrift/1140/ ) THRIFT-2347 C# TLS Transport based on THRIFT-181 (jensg: rev c1d7943a7ed78fb434eaa90feb1a3a17b446fc97) lib/csharp/src/Thrift.csproj test/test.sh lib/csharp/src/Transport/TTLSServerSocket.cs lib/csharp/test/ThriftTest/maketest.sh lib/csharp/src/Transport/TTLSSocket.cs lib/csharp/test/ThriftTest/TestClient.cs lib/csharp/test/ThriftTest/TestServer.cs lib/csharp/Makefile.am
          Hide
          Hans-Peter Klett added a comment -

          It seems this was resolved with THRIFT-2347?

          Show
          Hans-Peter Klett added a comment - It seems this was resolved with THRIFT-2347 ?
          Hide
          Jens Geyer added a comment -

          Indeed, thanks!

          Show
          Jens Geyer added a comment - Indeed, thanks!
          Jens Geyer made changes -
          Link This issue is duplicated by THRIFT-2347 [ THRIFT-2347 ]
          Jens Geyer made changes -
          Status Open [ 1 ] Closed [ 6 ]
          Fix Version/s 0.9.2 [ 12324954 ]
          Resolution Fixed [ 1 ]

            People

            • Assignee:
              Unassigned
              Reporter:
              Anthony Abate
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development