SVN and the overnight zip have been updated with three new major units and two new demos for REST, OAuth2, Jose and Json, a fourth new unit and sample for getting X509 certificates automatically will follow soon. Please note these new units should be considered early betas, and may change to add more functionality as they are used in real REST applications, including the new X509 cert component.
OverbyteIcsSslHttpRest.pas HTTPS REST functions for making REST (REpresentional State Transfer) client requests.The SslHttpRest component is a high level version of THttpCli that bundles all the extra components for extra functionality, including SSL configuration and certificate validation with a root bundle, SSL session caching, content compression, content code page decoding, persistent cookies, Json handling, logging, client SSL certificate. Includes functions for Auth2 authentication. OAuth1 is pending (need Twitter account). Includes new components: TRestParams - Defines a collection of REST parameters and allows them to be saved as URL encoded or Json. TSslHttpRest - This descends from THttpCli, and publishes all it's properties and events with additional methods and properties for making REST (REpresentional State Transfer) client requests. Using TSslHttpRest in new applications requires only a few lines of code and no event handlers to make SSL REST requests instead of much more code and many event handlers for THttpCli. TSimpleWebSrv - This is a simple web server primarily designed for accepting HTTP requests from REST servers which don't expect real pages to be sent, but also for .well-known responses generated by applications. Note this web server does not support SSL since that would require certificates. TRestOAuth - This for handling 0Auth authorization to web apps, by several means. Beware OAuth is really a concept with differing implementations, so that implementation may not always be straight forward. OAuth1 and 1A were originally developed for Twitter and use cryptography, OAuth2 is a simpler and easier to implement version now widely used by most cloud services without any cryptography (other than SSL). OverbyteIcsSslJose.pas JOSE - Json Object Signing and Encryption, used for: JWS (Json Web Signing), JWT (Json Web Tokens), JWK (Json Web Key) and JWE (Json Web Encryption). Variously used by OAuth1, ACME and other protocols. Includes OpenSSL Message Authentication Code functions used for signing JOSE structures with secret or private/public keys. OverbyteIcsSuperObject.pas An ICS version of Super Object Toolkit for Json, updated for the latest versions of Delphi, supported by Delphi 7 and later. Recent Delphi versions do include Json and ideally this would be used by ICS where possible, but that will add complexity to ICS. Sorry, currently only packages for Delphi 2007 and 10.2 Tokyo FMX/VCL have been updated, there are dozens that need doing. Any feedback from developers working with REST applications would be appreciated. These components are just my best effort attempt to specifically access REST apps from two suppliers of SSL certificates, and there may be other REST functionality that could usefully be added. Angus -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be