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
2025
2026
 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