#624 Test Server supporting Auth and HTTPS

Ian Davies Fri 10 Aug 2018

Hi All,

I have been working on expanding the .NET C# haystack client for the same full functionality as the Java Toolkit. I have completed it based on the Java toolkit and with the starting point of the C# .NET light client as per the downloads of the site. I have also downloaded and got running the server for the Java Toolkit and the NodeHaystack in an Ubuntu Linux VM however I can not see any evidence that any of the server examples support Auth over HTTPS.

My intention is to build up a WPF client showing the different uses of the C# toolkit using the newly expanded C# toolkit that also demonstrates the use of HTTPS and Auth methods. I see within the different project downloads that the tests are referencing either Niagara, Skyfoundry or other products that they rely on for this side of the tests. My preference is to have a independent Haystack server implementation on HTTPS supporting Auth with similar test database as is implemented in the current Java toolkit.

I would like to have this independent server and a set of my own tests completed before looking to provide the open source developed.

Before I look at customizing the Java toolkit to include an Auth HTTPS server (as my main intention is to expand the capability of the C# client not do further work on the Java Server Toolkit), I was wondering if anyone has headed down this track without using other vendors products?

Thanks in advance.

Kind Regards

Ian Davies

Matthew Giannini Fri 10 Aug 2018

Ian - are you enhancing the existing C# client, or creating your own new client? If you are enhancing the existing client will you be planning on submitting a pull request for that?

I had started work on enhancing the Java Toolkit to have a working server that could do the authentication protocol, but just got bogged down in other work. I'd be willing to share some of that work with you if you wanted to pick it up for the java toolkit.

I am not aware of any non-vendor-specific servers that you could use.

Ian Davies Fri 10 Aug 2018

Hi Matthew,

Thanks for the quick reply.

Yes when complete I was going to start the discussion on a pull request as the starting point for this was the C# existing client on the project-haystack site. So the aim was not an independent client but rather an expansion of the C# client to provide the community. However fundamentally some items had to change to have the full functionality reflected in the Java Toolkit like CallErrException and CallException refactored to use HGrid rather than Dictionary. I haven't really done any work on the unit tests project yet (yes I know this does not follow TDD but without a fully functioning server I could only write tests and prove they fail without the server and I could not prove the authentication worked without a server that supported it).

Would be happy to get any work that expands the Java toolkit to include an authentication protocol.

I too are have limited time on this (when on leave or on weekends - purely out of hours work to keep to the open source nature of the project) as I am only doing this as a hobby project.

I work as a different role these days not a developer (although I use to have different development roles/projects and I would have always loved to keep in it but times have moved and I now do this purely as a hobby interest using community edition IDE's), so happy to contribute work done thus far but would preference to complete it as a VS solution project with the toolkit, test project and WPF tool (else may have bugs not forseen if not yet unit tested at least - while overall I think I understand each of the implementations in the porting from Java to C#, the overall working and some changes around OO design for some C# differences in approach compared to Java may need to be tested before they commit to a public project).

My motivation for this was partly to work on a development project again as a hobby but also because the products I am working with are introducing more Haystack functionality - so wanted to have some demonstration software. However I did want to prove it from an independent perspective first before using a vendor specific device.

Thanks again for any support you can provide, the alternative I had is I have found an open source Java implementation of SCRAM but haven't got into it yet to see how it aligns to the Haystack RFC referenced on it's SCRAM implementation.

Kind Regards

Ian Davies

Matthew Giannini Mon 13 Aug 2018

Ian - I will try to pull together my java changes for you this week and I will send them to you offline.

Ian Davies Mon 20 Aug 2018

Thanks Matthew, Sorry for the late reply, was working on Unit tests of library classes this past week. So no rush, I still have a few things that I can work on in parallel.

Ian Davies Sun 26 Aug 2018

Hi All,

I have completed unit tests on the ported code and updated the README.md and appropriate files.

I was trying to use Atlassian SourceTree to update the repository but couldn't get it to work.

I tested my own private repository (mercurial) and source tree which worked fine, also in my login for bit bucket I can see I am registered with my own repository and the NodeHaystack repository but note haystack-csharp.

I have done the following:

  1. Created a branch
  2. Updated the files
  3. Commit the changes to the branch
  4. Try to create a push or pull request for the branch fails with: Output: hg push -b dataModel-javaToolkitPort --new-branch default pushing to https://<mybitbucketuser>@bitbucket.org/skyfoundry/haystack-csharp

searching for changes abort: authorization failed

Seems like I am not authorized to be able to create a branch, push and associated web pull request.

Any ideas? Do others on this repository use Source Tree?

Ian

Matthew Giannini Wed 12 Sep 2018

Ian - I have merged your pull request into the haystack-csharp repo. Thanks for that contribution, the community will really benefit from it!

Login or Signup to reply.