0.0
No commit activity in last 3 years
No release in over 3 years
XMPP protocol extension for Vines server
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.5
>= 0
~> 2.14

Runtime

>= 0.4.5
 Project Readme

Build Status Code Climate

Vines::Backdoor

Allows you to authenticate and generate bosh session for Vines user by sigle request without password. All that you need – a secret key from backdoor of your Vines

Standart http-bind flow requires 4 requests with 4 responses from Vines (last is binding result). With vines-backdoor you need just 1 request and 1 response from Vines 😤

Installation

Add this line to your application's Gemfile:

gem 'vines-backdoor'

And then execute:

$ bundle

Or install it yourself as:

$ gem install vines-backdoor

⚠️ Attention ⚠️

Never, ever, ever use this for external client authentication. This extension is only for internal server use

Usage

Modify your vines config file

# conf/config.rb

require 'vines/backdoor'

# http bind section
http '0.0.0.0', 5280 do
  bind '/http-bind'
  max_stanza_size 65536
  max_resources_per_account 5
  root 'web'
  vroute ''
  backdoor 'my-secret-backdoor-key'
end

Now http service accept extended requests with some extra data in it. All response messages (errors and success responses) are RFC compatible

Send authentication and binding request in a batch

<body xmlns="http://jabber.org/protocol/httpbind" xmlns:xmpp="urn:xmpp:xbosh" xmpp:version="1.0"
	  content="text/xml; charset=utf-8" rid="235205804" to="localhost" secure="true" wait="60" hold="1"
	  backdoor="my-secret-backdoor-key">
  <auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl" mechanism="INTERNAL">user@localhost</auth>
  <bind xmlns="urn:ietf:params:xml:ns:xmpp-bind">
    <resource>pidgin</resource>
  </bind>
</body>

And get a successful response

<iq type="result" id="235205804">
  <bind xmlns="urn:ietf:params:xml:ns:xmpp-bind">
    <jid>user@localhost/pidgin</jid>
    <sid>f27c71df-f124-4829-b415-5855b8c04109</sid>
  </bind>
</iq>

Contributing

  1. Fork it ( http://github.com/Strech/vines-backdoor/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request