Provide an HTTP anthentification over XMPP (XEP-0070).
Go to file
Chteufleur e6cd478d81 Add demo location into README 2016-07-10 08:22:23 +02:00
http Replace HTTP Forbidden by HTTP Unauthorized 2016-06-20 20:49:09 +02:00
xmpp Make a different map for iq stanza + handle iq response without containing HTTP Auth namespace 2016-07-10 08:16:36 +02:00
.gitignore initial commit 2016-05-18 10:16:14 +02:00
LICENSE Modification License file 2016-06-20 22:12:35 +02:00
README.md Add demo location into README 2016-07-10 08:22:23 +02:00
httpAuth.cfg Make some config with default value 2016-06-21 21:03:32 +02:00
main.go Make a different map for iq stanza + handle iq response without containing HTTP Auth namespace 2016-07-10 08:16:36 +02:00

README.md

HTTPAuthentificationOverXMPP

Provide an HTTP anthentification over XMPP. Implementation of XEP-0070.

Compilation

Dependencies

  • go-xmpp for the XMPP part.
  • cfg for the configuration file.

Download the CA at https://kingpenguin.tk/ressources/cacert.pem, then install it on your operating system. Once installed, go into your $GOPATH directory and go get the source code.

go get git.kingpenguin.tk/chteufleur/HTTPAuthentificationOverXMPP.git

Configure

Configure the gateway by editing the httpAuth.cfg file in order to give all XMPP component and HTTP server informations.

XMPP

  • xmpp_server_address : Component server address connection (default: 127.0.0.1)
  • xmpp_server_port : Component server port connection (default: 5347)
  • xmpp_hostname : Component hostname
  • xmpp_secret : Component password
  • xmpp_debug : Enable debug log at true (default: false)

HTTP

  • http_port : HTTP port to bind (default: 9090)
  • http_timeoute_sec : Define a timeout if user did not give an answer to the request (default: 60)

Utilization

To ask authorization, just send an HTTP request to the path /auth with parameters:

  • jid : JID of the user (user@host/resource or user@host)
  • domain : Domain you want to access
  • method : Method you access the domain
  • transaction_id : Transaction identifier

Example:

GET /auth?jid=user@host/resource&domain=example.org&method=POST&transaction_id=WhatEverYouWant HTTP/1.1

This will send a request to the given JID. If the user accept, the server will return HTTP code 200, otherwise it will return HTTP code 401.

A demo version can be found at auth.xmpp.kingpenguin.tk for test purpose only.

Help

To get any help, please visit the XMPP conference room at httpauth@muc.kingpenguin.tk with your prefered client, or with your browser.