warden-oauthed 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +2 -0
- data/Gemfile +1 -1
- data/Guardfile +7 -6
- data/README.md +3 -1
- data/Rakefile +3 -2
- data/config.ru +4 -3
- data/lib/warden-oauthed/proxy.rb +14 -5
- data/lib/warden-oauthed/strategy.rb +30 -20
- data/lib/warden-oauthed/user.rb +4 -5
- data/lib/warden-oauthed/version.rb +1 -1
- data/spec/app.rb +5 -7
- data/spec/oauth_spec.rb +6 -10
- data/spec/proxy_spec.rb +13 -10
- data/spec/spec_helper.rb +5 -0
- data/warden-oauthed.gemspec +18 -17
- metadata +84 -22
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: f92341ab7e33153157360cd3386b9408a085e62d
         | 
| 4 | 
            +
              data.tar.gz: aee8b78372bd816e9c5e99cb53c5a400e9526444
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 00204cf50b4846001a83b67ca9204f61427438f6bac28d4f3cb2802b3be854853d752ccf5d746310ed9a3d4cb36b78f57124f37f3c272d290e91db99617ed22d
         | 
| 7 | 
            +
              data.tar.gz: a91596bd6744ad437a62ca16f86dacb3de404dd1aa5dc282103a78cf896e74ec021e8208d15acb37b7a763ef9f76ccb1be0764ae6b96614d58f8e6fd569b7f16
         | 
    
        data/.rubocop.yml
    ADDED
    
    
    
        data/Gemfile
    CHANGED
    
    
    
        data/Guardfile
    CHANGED
    
    | @@ -1,10 +1,11 @@ | |
| 1 1 | 
             
            group :red_green_refactor, halt_on_fail: true do
         | 
| 2 | 
            -
              guard :rspec, cmd:  | 
| 2 | 
            +
              guard :rspec, cmd: 'bundle exec rspec', failed_mode: 'focus' do
         | 
| 3 3 | 
             
                watch(%r{^spec/.+_spec\.rb$})
         | 
| 4 | 
            -
                watch(%r{^lib/(.+)\.rb$}) | 
| 4 | 
            +
                watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
         | 
| 5 | 
            +
              end
         | 
| 6 | 
            +
             | 
| 7 | 
            +
              guard :rubocop, all_on_start: false do
         | 
| 8 | 
            +
                watch(/.+\.rb$/)
         | 
| 9 | 
            +
                watch(%r{(?:.+/)?\.rubocop\.yml$}) { |m| File.dirname(m[0]) }
         | 
| 5 10 | 
             
              end
         | 
| 6 | 
            -
              # guard :rubocop, all_on_start: false do
         | 
| 7 | 
            -
              #   watch(/.+\.rb$/)
         | 
| 8 | 
            -
              #   watch(%r{(?:.+/)?\.rubocop\.yml$}) { |m| File.dirname(m[0]) }
         | 
| 9 | 
            -
              # end
         | 
| 10 11 | 
             
            end
         | 
    
        data/README.md
    CHANGED
    
    | @@ -4,6 +4,8 @@ A [warden](https://github.com/hassox/warden) strategy that provides OAuth authen | |
| 4 4 |  | 
| 5 5 | 
             
            Check out [sinatra_oauthed_template](https://github.com/sethherr/sinatra_oauthed_template), a sinatra template that uses this strategy to set up authentication without a database.
         | 
| 6 6 |  | 
| 7 | 
            +
            Importantly, `sinatra_oauthed_template` sets all the environmental variables in the `.env` file so this will work.
         | 
| 8 | 
            +
             | 
| 7 9 | 
             
            ---
         | 
| 8 10 |  | 
| 9 | 
            -
            Draws inspiration from [warden-github](https://github.com/ | 
| 11 | 
            +
            Draws inspiration from [warden-github](https://github.com/atmos/warden-github/) :shipit:
         | 
    
        data/Rakefile
    CHANGED
    
    | @@ -3,10 +3,11 @@ require 'rubygems/specification' | |
| 3 3 | 
             
            require 'date'
         | 
| 4 4 | 
             
            require 'bundler'
         | 
| 5 5 |  | 
| 6 | 
            -
            task : | 
| 6 | 
            +
            task default: [:spec]
         | 
| 7 7 |  | 
| 8 8 | 
             
            require 'rspec/core/rake_task'
         | 
| 9 | 
            -
             | 
| 9 | 
            +
             | 
| 10 | 
            +
            desc 'Run specs'
         | 
| 10 11 | 
             
            RSpec::Core::RakeTask.new do |t|
         | 
| 11 12 | 
             
              t.pattern = 'spec/**/*_spec.rb'
         | 
| 12 13 | 
             
            end
         | 
    
        data/config.ru
    CHANGED
    
    | @@ -10,8 +10,9 @@ end | |
| 10 10 |  | 
| 11 11 | 
             
            Bundler.require(:runtime)
         | 
| 12 12 |  | 
| 13 | 
            -
             | 
| 14 | 
            -
             | 
| 15 | 
            -
            require File.expand_path(File.join( | 
| 13 | 
            +
            file_dir = File.dirname(__FILE__)
         | 
| 14 | 
            +
            $LOAD_PATH << file_dir + '/lib'
         | 
| 15 | 
            +
            require File.expand_path(File.join(file_dir, 'lib', 'warden-oauthed'))
         | 
| 16 | 
            +
            require File.expand_path(File.join(file_dir, 'spec', 'app'))
         | 
| 16 17 |  | 
| 17 18 | 
             
            run Example.app
         | 
    
        data/lib/warden-oauthed/proxy.rb
    CHANGED
    
    | @@ -4,7 +4,11 @@ module Warden | |
| 4 4 | 
             
                  class Proxy
         | 
| 5 5 | 
             
                    attr_accessor :client_id, :secret, :scopes, :oauth_domain, :callback_url
         | 
| 6 6 | 
             
                    def initialize(client_id, secret, scopes, oauth_domain, callback_url)
         | 
| 7 | 
            -
                      @client_id | 
| 7 | 
            +
                      @client_id = client_id
         | 
| 8 | 
            +
                      @secret = secret
         | 
| 9 | 
            +
                      @scopes = scopes
         | 
| 10 | 
            +
                      @oauth_domain = oauth_domain
         | 
| 11 | 
            +
                      @callback_url = callback_url
         | 
| 8 12 | 
             
                    end
         | 
| 9 13 |  | 
| 10 14 | 
             
                    def ssl_options
         | 
| @@ -12,20 +16,25 @@ module Warden | |
| 12 16 | 
             
                    end
         | 
| 13 17 |  | 
| 14 18 | 
             
                    def client
         | 
| 15 | 
            -
                      @client ||= OAuth2::Client.new( | 
| 19 | 
            +
                      @client ||= OAuth2::Client.new(
         | 
| 20 | 
            +
                        @client_id,
         | 
| 21 | 
            +
                        @secret,
         | 
| 16 22 | 
             
                        ssl: ssl_options,
         | 
| 17 23 | 
             
                        site: oauth_domain,
         | 
| 18 24 | 
             
                        authorize_url: '/oauth/authorize')
         | 
| 19 25 | 
             
                    end
         | 
| 20 26 |  | 
| 21 27 | 
             
                    def api_for(code)
         | 
| 22 | 
            -
                      client.auth_code.get_token( | 
| 28 | 
            +
                      client.auth_code.get_token(
         | 
| 29 | 
            +
                        code,
         | 
| 30 | 
            +
                        redirect_uri: callback_url
         | 
| 31 | 
            +
                      )
         | 
| 23 32 | 
             
                    end
         | 
| 24 33 |  | 
| 25 34 | 
             
                    def authorize_url
         | 
| 26 35 | 
             
                      client.auth_code.authorize_url(
         | 
| 27 | 
            -
                        : | 
| 28 | 
            -
                        : | 
| 36 | 
            +
                        scope:        scopes,
         | 
| 37 | 
            +
                        redirect_uri: callback_url
         | 
| 29 38 | 
             
                      )
         | 
| 30 39 | 
             
                    end
         | 
| 31 40 | 
             
                  end
         | 
| @@ -12,25 +12,29 @@ Warden::Strategies.add(:oauthed) do | |
| 12 12 | 
             
              def authenticate!
         | 
| 13 13 | 
             
                if params['code']
         | 
| 14 14 | 
             
                  begin
         | 
| 15 | 
            -
                     | 
| 16 | 
            -
             | 
| 17 | 
            -
                    resp = api.get "#{api_url}/me" do |request|
         | 
| 18 | 
            -
                      request.params['access_token'] = api.token
         | 
| 19 | 
            -
                    end.body
         | 
| 20 | 
            -
             | 
| 21 | 
            -
                    user = MultiJson.load(resp)
         | 
| 22 | 
            -
                    success!(Warden::Oauthed::Oauth::User.new(user['user'], api.token))
         | 
| 15 | 
            +
                    get_user_api_response(params)
         | 
| 23 16 | 
             
                  rescue OAuth2::Error
         | 
| 24 | 
            -
                    %(<p>Outdated ?code=#{params['code']}:</p><p>#{ | 
| 17 | 
            +
                    %(<p>Outdated ?code=#{params['code']}:</p><p>#{$ERROR_INFO}</p>
         | 
| 18 | 
            +
                      <p><a href="/auth/oauthed">Retry</a></p>)
         | 
| 25 19 | 
             
                  end
         | 
| 26 20 | 
             
                else
         | 
| 27 21 | 
             
                  env['rack.session']['return_to'] = env['REQUEST_URI']
         | 
| 28 | 
            -
                  throw(:warden, [ | 
| 22 | 
            +
                  throw(:warden, [302, { 'Location' => authorize_url }, []])
         | 
| 29 23 | 
             
                end
         | 
| 30 24 | 
             
              end
         | 
| 31 25 |  | 
| 32 26 | 
             
              private
         | 
| 33 27 |  | 
| 28 | 
            +
              def get_user_api_response(params)
         | 
| 29 | 
            +
                api = api_for(params['code'])
         | 
| 30 | 
            +
                resp = api.get "#{api_url}/me" do |request|
         | 
| 31 | 
            +
                  request.params['access_token'] = api.token
         | 
| 32 | 
            +
                end.body
         | 
| 33 | 
            +
             | 
| 34 | 
            +
                user = MultiJson.load(resp)
         | 
| 35 | 
            +
                success!(Warden::Oauthed::Oauth::User.new(user['user'], api.token))
         | 
| 36 | 
            +
              end
         | 
| 37 | 
            +
             | 
| 34 38 | 
             
              def oauth_client
         | 
| 35 39 | 
             
                oauth_proxy.client
         | 
| 36 40 | 
             
              end
         | 
| @@ -44,26 +48,32 @@ Warden::Strategies.add(:oauthed) do | |
| 44 48 | 
             
              end
         | 
| 45 49 |  | 
| 46 50 | 
             
              def oauth_proxy
         | 
| 47 | 
            -
                @oauth_proxy ||= Warden::Oauthed::Oauth::Proxy.new( | 
| 51 | 
            +
                @oauth_proxy ||= Warden::Oauthed::Oauth::Proxy.new(
         | 
| 52 | 
            +
                  env['warden'].config[:oauthed_client_id],
         | 
| 48 53 | 
             
                  env['warden'].config[:oauthed_secret],
         | 
| 49 54 | 
             
                  env['warden'].config[:oauthed_scopes],
         | 
| 50 55 | 
             
                  env['warden'].config[:oauthed_oauth_domain],
         | 
| 51 | 
            -
                  callback_url | 
| 56 | 
            +
                  callback_url
         | 
| 57 | 
            +
                )
         | 
| 52 58 | 
             
              end
         | 
| 53 59 |  | 
| 54 60 | 
             
              def callback_url
         | 
| 55 | 
            -
                absolute_url( | 
| 61 | 
            +
                absolute_url(
         | 
| 62 | 
            +
                  request,
         | 
| 63 | 
            +
                  env['warden'].config[:oauthed_callback_url],
         | 
| 64 | 
            +
                  env['HTTP_X_FORWARDED_PROTO']
         | 
| 65 | 
            +
                )
         | 
| 56 66 | 
             
              end
         | 
| 57 67 |  | 
| 58 | 
            -
              def absolute_url(request, suffix = nil, proto =  | 
| 59 | 
            -
                port_part = | 
| 68 | 
            +
              def absolute_url(request, suffix = nil, proto = 'http')
         | 
| 69 | 
            +
                port_part =
         | 
| 60 70 | 
             
                  case request.scheme
         | 
| 61 | 
            -
                  when  | 
| 62 | 
            -
                    request.port == 80 ?  | 
| 63 | 
            -
                  when  | 
| 64 | 
            -
                    request.port == 443 ?  | 
| 71 | 
            +
                  when 'http'
         | 
| 72 | 
            +
                    request.port == 80 ? '' : ":#{request.port}"
         | 
| 73 | 
            +
                  when 'https'
         | 
| 74 | 
            +
                    request.port == 443 ? '' : ":#{request.port}"
         | 
| 65 75 | 
             
                  end
         | 
| 66 | 
            -
                proto =  | 
| 76 | 
            +
                proto = 'http' if proto.nil?
         | 
| 67 77 | 
             
                "#{proto}://#{request.host}#{port_part}#{suffix}"
         | 
| 68 78 | 
             
              end
         | 
| 69 79 | 
             
            end
         | 
    
        data/lib/warden-oauthed/user.rb
    CHANGED
    
    | @@ -2,14 +2,13 @@ module Warden | |
| 2 2 | 
             
              module Oauthed
         | 
| 3 3 | 
             
                module Oauth
         | 
| 4 4 | 
             
                  class User < Struct.new(:attribs, :token)
         | 
| 5 | 
            -
                    
         | 
| 6 | 
            -
             | 
| 7 | 
            -
                       | 
| 8 | 
            -
                      req = Faraday.new(url: "#{ENV['API_BASE_URL'] }/#{path}")
         | 
| 5 | 
            +
                    def oauthed_raw_request(path, _params = {})
         | 
| 6 | 
            +
                      puts "#{ENV['API_BASE_URL']}/#{path}"
         | 
| 7 | 
            +
                      req = Faraday.new(url: "#{ENV['API_BASE_URL']}/#{path}")
         | 
| 9 8 | 
             
                      req.authorization :Bearer, token
         | 
| 10 9 | 
             
                      req.get.body
         | 
| 11 10 | 
             
                    end
         | 
| 12 | 
            -
             | 
| 11 | 
            +
             | 
| 13 12 | 
             
                    def oauthed_request(path, params = {})
         | 
| 14 13 | 
             
                      MultiJson.load(oauthed_raw_request(path, params))
         | 
| 15 14 | 
             
                    end
         | 
    
        data/spec/app.rb
    CHANGED
    
    | @@ -2,8 +2,8 @@ require 'sinatra' | |
| 2 2 |  | 
| 3 3 | 
             
            module Example
         | 
| 4 4 | 
             
              class App < Sinatra::Base
         | 
| 5 | 
            -
                enable | 
| 6 | 
            -
                enable | 
| 5 | 
            +
                enable :sessions
         | 
| 6 | 
            +
                enable :raise_errors
         | 
| 7 7 | 
             
                disable :show_exceptions
         | 
| 8 8 |  | 
| 9 9 | 
             
                use Warden::Manager do |manager|
         | 
| @@ -18,9 +18,7 @@ module Example | |
| 18 18 |  | 
| 19 19 | 
             
                helpers do
         | 
| 20 20 | 
             
                  def ensure_authenticated
         | 
| 21 | 
            -
                    unless env['warden'].authenticate!
         | 
| 22 | 
            -
                      throw(:warden)
         | 
| 23 | 
            -
                    end
         | 
| 21 | 
            +
                    throw(:warden) unless env['warden'].authenticate!
         | 
| 24 22 | 
             
                  end
         | 
| 25 23 |  | 
| 26 24 | 
             
                  def user
         | 
| @@ -45,14 +43,14 @@ module Example | |
| 45 43 |  | 
| 46 44 | 
             
                get '/logout' do
         | 
| 47 45 | 
             
                  env['warden'].logout
         | 
| 48 | 
            -
                   | 
| 46 | 
            +
                  'Peace!'
         | 
| 49 47 | 
             
                end
         | 
| 50 48 | 
             
              end
         | 
| 51 49 |  | 
| 52 50 | 
             
              class BadAuthentication < Sinatra::Base
         | 
| 53 51 | 
             
                get '/unauthenticated' do
         | 
| 54 52 | 
             
                  status 403
         | 
| 55 | 
            -
                   | 
| 53 | 
            +
                  'Unable to authenticate, sorry bud.'
         | 
| 56 54 | 
             
                end
         | 
| 57 55 | 
             
              end
         | 
| 58 56 |  | 
    
        data/spec/oauth_spec.rb
    CHANGED
    
    | @@ -2,21 +2,17 @@ require File.dirname(__FILE__) + '/spec_helper' | |
| 2 2 |  | 
| 3 3 | 
             
            describe 'Warden::Oauthed' do
         | 
| 4 4 | 
             
              it 'requesting an url that requires authentication redirects to github' do
         | 
| 5 | 
            -
                ENV['OAUTH_BASE_URL'] = 'http://localhost:3000'
         | 
| 6 | 
            -
                ENV['APPLICATION_SCOPES_REQUESTED'] = 'public'
         | 
| 7 | 
            -
                ENV['APPLICATION_CLIENT_ID'] = 'fd6df6f74658a9202d401aaba38223a7f79e7572926ce845e5268f5171e5b2d5'
         | 
| 8 | 
            -
                ENV['APPLICATION_CLIENT_SECRET'] = 'afee0e20322e5d73dff82f29baf5989afd3422557056129aad29d974e56df677'
         | 
| 9 5 | 
             
                response = get '/'
         | 
| 10 6 |  | 
| 11 7 | 
             
                uri = Addressable::URI.parse(response.headers['Location'])
         | 
| 12 8 |  | 
| 13 | 
            -
                uri.scheme. | 
| 14 | 
            -
                uri.host. | 
| 9 | 
            +
                expect(uri.scheme).to eq 'http'
         | 
| 10 | 
            +
                expect(uri.host).to eq 'localhost'
         | 
| 15 11 |  | 
| 16 12 | 
             
                params = uri.query_values
         | 
| 17 | 
            -
                params['response_type']. | 
| 18 | 
            -
                params['scope']. | 
| 19 | 
            -
                params['client_id']. | 
| 20 | 
            -
                params['redirect_uri']. | 
| 13 | 
            +
                expect(params['response_type']).to eq 'code'
         | 
| 14 | 
            +
                expect(params['scope']).to eq 'public'
         | 
| 15 | 
            +
                expect(params['client_id']).to match(/\w{20}/)
         | 
| 16 | 
            +
                expect(params['redirect_uri']).to eq 'http://example.org/auth/oauthed/callback'
         | 
| 21 17 | 
             
              end
         | 
| 22 18 | 
             
            end
         | 
    
        data/spec/proxy_spec.rb
    CHANGED
    
    | @@ -1,12 +1,15 @@ | |
| 1 1 | 
             
            require File.dirname(__FILE__) + '/spec_helper'
         | 
| 2 2 |  | 
| 3 3 | 
             
            describe 'Warden::Oauthed::Oauth::Proxy' do
         | 
| 4 | 
            -
              before | 
| 4 | 
            +
              before :all do
         | 
| 5 5 | 
             
                sha = Digest::SHA1.hexdigest(Time.now.to_s)
         | 
| 6 | 
            -
                @proxy = | 
| 6 | 
            +
                @proxy = Warden::Oauthed::Oauth::Proxy.new(
         | 
| 7 | 
            +
                  sha[0..19],
         | 
| 8 | 
            +
                  sha[0..39],
         | 
| 7 9 | 
             
                  'public',
         | 
| 8 10 | 
             
                  'http://localhost:3000',
         | 
| 9 | 
            -
                  'http://example.org/auth/oauthed/callback' | 
| 11 | 
            +
                  'http://example.org/auth/oauthed/callback'
         | 
| 12 | 
            +
                )
         | 
| 10 13 | 
             
              end
         | 
| 11 14 |  | 
| 12 15 | 
             
              it 'returns an authorize url' do
         | 
| @@ -16,17 +19,17 @@ describe 'Warden::Oauthed::Oauth::Proxy' do | |
| 16 19 | 
             
                uri.host.should eql('localhost')
         | 
| 17 20 |  | 
| 18 21 | 
             
                params = uri.query_values
         | 
| 19 | 
            -
                params['response_type']. | 
| 20 | 
            -
                params['scope']. | 
| 21 | 
            -
                params['client_id']. | 
| 22 | 
            -
                params['redirect_uri']. | 
| 22 | 
            +
                expect(params['response_type']).to eq 'code'
         | 
| 23 | 
            +
                expect(params['scope']).to eq 'public'
         | 
| 24 | 
            +
                expect(params['client_id']).to match(/\w{20}/)
         | 
| 25 | 
            +
                expect(params['redirect_uri']).to eq 'http://example.org/auth/oauthed/callback'
         | 
| 23 26 | 
             
              end
         | 
| 24 27 |  | 
| 25 | 
            -
              it  | 
| 26 | 
            -
                @proxy. | 
| 28 | 
            +
              it 'has a client object' do
         | 
| 29 | 
            +
                expect(@proxy).not_to be nil
         | 
| 27 30 | 
             
              end
         | 
| 28 31 |  | 
| 29 32 | 
             
              # it "returns access tokens" do
         | 
| 30 | 
            -
              #  lambda { @proxy.access_token_for(/\w{20}/.gen) }.should_not raise_error | 
| 33 | 
            +
              #  lambda { @proxy.access_token_for(/\w{20}/.gen) }.should_not raise_error
         | 
| 31 34 | 
             
              # end
         | 
| 32 35 | 
             
            end
         | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    | @@ -25,3 +25,8 @@ RSpec.configure do |config| | |
| 25 25 | 
             
                Example.app
         | 
| 26 26 | 
             
              end
         | 
| 27 27 | 
             
            end
         | 
| 28 | 
            +
             | 
| 29 | 
            +
            ENV['OAUTH_BASE_URL'] ||= 'http://localhost:3000'
         | 
| 30 | 
            +
            ENV['APPLICATION_SCOPES_REQUESTED'] ||= 'public'
         | 
| 31 | 
            +
            ENV['APPLICATION_CLIENT_ID'] ||= 'fd6df6f74658a9202d401aaba38223a7f79e7572926ce845e5268f5171e5b2d5'
         | 
| 32 | 
            +
            ENV['APPLICATION_CLIENT_SECRET'] ||= 'afee0e20322e5d73dff82f29baf5989afd3422557056129aad29d974e56df677'
         | 
    
        data/warden-oauthed.gemspec
    CHANGED
    
    | @@ -5,30 +5,31 @@ require 'warden-oauthed/version' | |
| 5 5 | 
             
            Gem::Specification.new do |s|
         | 
| 6 6 | 
             
              s.name        = 'warden-oauthed'
         | 
| 7 7 | 
             
              s.version     = Warden::Oauthed::VERSION
         | 
| 8 | 
            -
              s.platform    = Gem::Platform::RUBY
         | 
| 9 8 | 
             
              s.authors     = ['David Jaress', 'Seth Herr']
         | 
| 10 9 | 
             
              s.homepage    = 'https://github.com/Zensaburou/warden-oauthed'
         | 
| 11 | 
            -
              s.summary     = 'A warden strategy for easy oauth integration with OAuth2 provided by Doorkeeper'
         | 
| 12 10 | 
             
              s.license     = 'MIT'
         | 
| 11 | 
            +
              s.summary     = 'A warden strategy for easy OAuth2 rack based
         | 
| 12 | 
            +
                               authentication'
         | 
| 13 13 | 
             
              s.description = s.summary
         | 
| 14 14 |  | 
| 15 15 | 
             
              s.add_dependency 'json', '~>1.5'
         | 
| 16 | 
            -
              s.add_dependency 'multi_json', '~>1.11.2'
         | 
| 17 | 
            -
              s.add_dependency 'warden', ' | 
| 18 | 
            -
              s.add_dependency 'oauth2', '~>0.5.2'
         | 
| 16 | 
            +
              s.add_dependency 'multi_json', '~> 1.11', '>= 1.11.2'
         | 
| 17 | 
            +
              s.add_dependency 'warden', '>=1.0'
         | 
| 18 | 
            +
              s.add_dependency 'oauth2', '~>0.5', '>=0.5.2'
         | 
| 19 19 |  | 
| 20 | 
            -
              s.add_development_dependency 'rack', | 
| 21 | 
            -
              s.add_development_dependency 'rake'
         | 
| 22 | 
            -
              s.add_development_dependency 'rerun'
         | 
| 23 | 
            -
              s.add_development_dependency 'rspec', | 
| 24 | 
            -
              s.add_development_dependency 'webrat'
         | 
| 25 | 
            -
              s.add_development_dependency 'sinatra'
         | 
| 26 | 
            -
              s.add_development_dependency 'shotgun'
         | 
| 27 | 
            -
              s.add_development_dependency 'addressable', '~>2.2.0'
         | 
| 28 | 
            -
              s.add_development_dependency 'rack-test', | 
| 20 | 
            +
              s.add_development_dependency 'rack', '~> 1.6', '>=1.6.0'
         | 
| 21 | 
            +
              s.add_development_dependency 'rake', '~> 10.4', '>=10.4.2'
         | 
| 22 | 
            +
              s.add_development_dependency 'rerun', '~> 0.11', '>=0.11.0'
         | 
| 23 | 
            +
              s.add_development_dependency 'rspec', '~> 2.8', '>=2.8.0'
         | 
| 24 | 
            +
              s.add_development_dependency 'webrat', '~> 0.7', '>=0.7.3'
         | 
| 25 | 
            +
              s.add_development_dependency 'sinatra', '~> 1.4', '>=1.4.6'
         | 
| 26 | 
            +
              s.add_development_dependency 'shotgun', '~> 0.9', '>=0.9.1'
         | 
| 27 | 
            +
              s.add_development_dependency 'addressable', '~> 2.2', '>=2.2.0'
         | 
| 28 | 
            +
              s.add_development_dependency 'rack-test', '~> 0.5', '>=0.5.3'
         | 
| 29 29 |  | 
| 30 30 | 
             
              s.files         = `git ls-files`.split("\n")
         | 
| 31 | 
            -
              s.test_files    = `git ls-files -- { | 
| 32 | 
            -
              s.executables   = `git ls-files -- bin/*`.split("\n") | 
| 33 | 
            -
             | 
| 31 | 
            +
              s.test_files    = `git ls-files -- {spec}/*`.split("\n")
         | 
| 32 | 
            +
              s.executables   = `git ls-files -- bin/*`.split("\n")
         | 
| 33 | 
            +
                .map { |f| File.basename(f) }
         | 
| 34 | 
            +
              s.require_paths = ['lib']
         | 
| 34 35 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: warden-oauthed
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0. | 
| 4 | 
            +
              version: 0.0.4
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - David Jaress
         | 
| @@ -9,7 +9,7 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2015-10- | 
| 12 | 
            +
            date: 2015-10-14 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: json
         | 
| @@ -30,6 +30,9 @@ dependencies: | |
| 30 30 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 31 31 | 
             
                requirements:
         | 
| 32 32 | 
             
                - - "~>"
         | 
| 33 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 34 | 
            +
                    version: '1.11'
         | 
| 35 | 
            +
                - - ">="
         | 
| 33 36 | 
             
                  - !ruby/object:Gem::Version
         | 
| 34 37 | 
             
                    version: 1.11.2
         | 
| 35 38 | 
             
              type: :runtime
         | 
| @@ -37,20 +40,23 @@ dependencies: | |
| 37 40 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 38 41 | 
             
                requirements:
         | 
| 39 42 | 
             
                - - "~>"
         | 
| 43 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 44 | 
            +
                    version: '1.11'
         | 
| 45 | 
            +
                - - ">="
         | 
| 40 46 | 
             
                  - !ruby/object:Gem::Version
         | 
| 41 47 | 
             
                    version: 1.11.2
         | 
| 42 48 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 43 49 | 
             
              name: warden
         | 
| 44 50 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 45 51 | 
             
                requirements:
         | 
| 46 | 
            -
                - - " | 
| 52 | 
            +
                - - ">="
         | 
| 47 53 | 
             
                  - !ruby/object:Gem::Version
         | 
| 48 54 | 
             
                    version: '1.0'
         | 
| 49 55 | 
             
              type: :runtime
         | 
| 50 56 | 
             
              prerelease: false
         | 
| 51 57 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 52 58 | 
             
                requirements:
         | 
| 53 | 
            -
                - - " | 
| 59 | 
            +
                - - ">="
         | 
| 54 60 | 
             
                  - !ruby/object:Gem::Version
         | 
| 55 61 | 
             
                    version: '1.0'
         | 
| 56 62 | 
             
            - !ruby/object:Gem::Dependency
         | 
| @@ -58,6 +64,9 @@ dependencies: | |
| 58 64 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 59 65 | 
             
                requirements:
         | 
| 60 66 | 
             
                - - "~>"
         | 
| 67 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 68 | 
            +
                    version: '0.5'
         | 
| 69 | 
            +
                - - ">="
         | 
| 61 70 | 
             
                  - !ruby/object:Gem::Version
         | 
| 62 71 | 
             
                    version: 0.5.2
         | 
| 63 72 | 
             
              type: :runtime
         | 
| @@ -65,6 +74,9 @@ dependencies: | |
| 65 74 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 66 75 | 
             
                requirements:
         | 
| 67 76 | 
             
                - - "~>"
         | 
| 77 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 78 | 
            +
                    version: '0.5'
         | 
| 79 | 
            +
                - - ">="
         | 
| 68 80 | 
             
                  - !ruby/object:Gem::Version
         | 
| 69 81 | 
             
                    version: 0.5.2
         | 
| 70 82 | 
             
            - !ruby/object:Gem::Dependency
         | 
| @@ -72,6 +84,9 @@ dependencies: | |
| 72 84 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 73 85 | 
             
                requirements:
         | 
| 74 86 | 
             
                - - "~>"
         | 
| 87 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 88 | 
            +
                    version: '1.6'
         | 
| 89 | 
            +
                - - ">="
         | 
| 75 90 | 
             
                  - !ruby/object:Gem::Version
         | 
| 76 91 | 
             
                    version: 1.6.0
         | 
| 77 92 | 
             
              type: :development
         | 
| @@ -79,41 +94,59 @@ dependencies: | |
| 79 94 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 80 95 | 
             
                requirements:
         | 
| 81 96 | 
             
                - - "~>"
         | 
| 97 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 98 | 
            +
                    version: '1.6'
         | 
| 99 | 
            +
                - - ">="
         | 
| 82 100 | 
             
                  - !ruby/object:Gem::Version
         | 
| 83 101 | 
             
                    version: 1.6.0
         | 
| 84 102 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 85 103 | 
             
              name: rake
         | 
| 86 104 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 87 105 | 
             
                requirements:
         | 
| 106 | 
            +
                - - "~>"
         | 
| 107 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 108 | 
            +
                    version: '10.4'
         | 
| 88 109 | 
             
                - - ">="
         | 
| 89 110 | 
             
                  - !ruby/object:Gem::Version
         | 
| 90 | 
            -
                    version:  | 
| 111 | 
            +
                    version: 10.4.2
         | 
| 91 112 | 
             
              type: :development
         | 
| 92 113 | 
             
              prerelease: false
         | 
| 93 114 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 94 115 | 
             
                requirements:
         | 
| 116 | 
            +
                - - "~>"
         | 
| 117 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 118 | 
            +
                    version: '10.4'
         | 
| 95 119 | 
             
                - - ">="
         | 
| 96 120 | 
             
                  - !ruby/object:Gem::Version
         | 
| 97 | 
            -
                    version:  | 
| 121 | 
            +
                    version: 10.4.2
         | 
| 98 122 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 99 123 | 
             
              name: rerun
         | 
| 100 124 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 101 125 | 
             
                requirements:
         | 
| 126 | 
            +
                - - "~>"
         | 
| 127 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 128 | 
            +
                    version: '0.11'
         | 
| 102 129 | 
             
                - - ">="
         | 
| 103 130 | 
             
                  - !ruby/object:Gem::Version
         | 
| 104 | 
            -
                    version:  | 
| 131 | 
            +
                    version: 0.11.0
         | 
| 105 132 | 
             
              type: :development
         | 
| 106 133 | 
             
              prerelease: false
         | 
| 107 134 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 108 135 | 
             
                requirements:
         | 
| 136 | 
            +
                - - "~>"
         | 
| 137 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 138 | 
            +
                    version: '0.11'
         | 
| 109 139 | 
             
                - - ">="
         | 
| 110 140 | 
             
                  - !ruby/object:Gem::Version
         | 
| 111 | 
            -
                    version:  | 
| 141 | 
            +
                    version: 0.11.0
         | 
| 112 142 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 113 143 | 
             
              name: rspec
         | 
| 114 144 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 115 145 | 
             
                requirements:
         | 
| 116 146 | 
             
                - - "~>"
         | 
| 147 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 148 | 
            +
                    version: '2.8'
         | 
| 149 | 
            +
                - - ">="
         | 
| 117 150 | 
             
                  - !ruby/object:Gem::Version
         | 
| 118 151 | 
             
                    version: 2.8.0
         | 
| 119 152 | 
             
              type: :development
         | 
| @@ -121,55 +154,79 @@ dependencies: | |
| 121 154 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 122 155 | 
             
                requirements:
         | 
| 123 156 | 
             
                - - "~>"
         | 
| 157 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 158 | 
            +
                    version: '2.8'
         | 
| 159 | 
            +
                - - ">="
         | 
| 124 160 | 
             
                  - !ruby/object:Gem::Version
         | 
| 125 161 | 
             
                    version: 2.8.0
         | 
| 126 162 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 127 163 | 
             
              name: webrat
         | 
| 128 164 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 129 165 | 
             
                requirements:
         | 
| 166 | 
            +
                - - "~>"
         | 
| 167 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 168 | 
            +
                    version: '0.7'
         | 
| 130 169 | 
             
                - - ">="
         | 
| 131 170 | 
             
                  - !ruby/object:Gem::Version
         | 
| 132 | 
            -
                    version:  | 
| 171 | 
            +
                    version: 0.7.3
         | 
| 133 172 | 
             
              type: :development
         | 
| 134 173 | 
             
              prerelease: false
         | 
| 135 174 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 136 175 | 
             
                requirements:
         | 
| 176 | 
            +
                - - "~>"
         | 
| 177 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 178 | 
            +
                    version: '0.7'
         | 
| 137 179 | 
             
                - - ">="
         | 
| 138 180 | 
             
                  - !ruby/object:Gem::Version
         | 
| 139 | 
            -
                    version:  | 
| 181 | 
            +
                    version: 0.7.3
         | 
| 140 182 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 141 183 | 
             
              name: sinatra
         | 
| 142 184 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 143 185 | 
             
                requirements:
         | 
| 186 | 
            +
                - - "~>"
         | 
| 187 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 188 | 
            +
                    version: '1.4'
         | 
| 144 189 | 
             
                - - ">="
         | 
| 145 190 | 
             
                  - !ruby/object:Gem::Version
         | 
| 146 | 
            -
                    version:  | 
| 191 | 
            +
                    version: 1.4.6
         | 
| 147 192 | 
             
              type: :development
         | 
| 148 193 | 
             
              prerelease: false
         | 
| 149 194 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 150 195 | 
             
                requirements:
         | 
| 196 | 
            +
                - - "~>"
         | 
| 197 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 198 | 
            +
                    version: '1.4'
         | 
| 151 199 | 
             
                - - ">="
         | 
| 152 200 | 
             
                  - !ruby/object:Gem::Version
         | 
| 153 | 
            -
                    version:  | 
| 201 | 
            +
                    version: 1.4.6
         | 
| 154 202 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 155 203 | 
             
              name: shotgun
         | 
| 156 204 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 157 205 | 
             
                requirements:
         | 
| 206 | 
            +
                - - "~>"
         | 
| 207 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 208 | 
            +
                    version: '0.9'
         | 
| 158 209 | 
             
                - - ">="
         | 
| 159 210 | 
             
                  - !ruby/object:Gem::Version
         | 
| 160 | 
            -
                    version:  | 
| 211 | 
            +
                    version: 0.9.1
         | 
| 161 212 | 
             
              type: :development
         | 
| 162 213 | 
             
              prerelease: false
         | 
| 163 214 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 164 215 | 
             
                requirements:
         | 
| 216 | 
            +
                - - "~>"
         | 
| 217 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 218 | 
            +
                    version: '0.9'
         | 
| 165 219 | 
             
                - - ">="
         | 
| 166 220 | 
             
                  - !ruby/object:Gem::Version
         | 
| 167 | 
            -
                    version:  | 
| 221 | 
            +
                    version: 0.9.1
         | 
| 168 222 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 169 223 | 
             
              name: addressable
         | 
| 170 224 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 171 225 | 
             
                requirements:
         | 
| 172 226 | 
             
                - - "~>"
         | 
| 227 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 228 | 
            +
                    version: '2.2'
         | 
| 229 | 
            +
                - - ">="
         | 
| 173 230 | 
             
                  - !ruby/object:Gem::Version
         | 
| 174 231 | 
             
                    version: 2.2.0
         | 
| 175 232 | 
             
              type: :development
         | 
| @@ -177,6 +234,9 @@ dependencies: | |
| 177 234 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 178 235 | 
             
                requirements:
         | 
| 179 236 | 
             
                - - "~>"
         | 
| 237 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 238 | 
            +
                    version: '2.2'
         | 
| 239 | 
            +
                - - ">="
         | 
| 180 240 | 
             
                  - !ruby/object:Gem::Version
         | 
| 181 241 | 
             
                    version: 2.2.0
         | 
| 182 242 | 
             
            - !ruby/object:Gem::Dependency
         | 
| @@ -184,6 +244,9 @@ dependencies: | |
| 184 244 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 185 245 | 
             
                requirements:
         | 
| 186 246 | 
             
                - - "~>"
         | 
| 247 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 248 | 
            +
                    version: '0.5'
         | 
| 249 | 
            +
                - - ">="
         | 
| 187 250 | 
             
                  - !ruby/object:Gem::Version
         | 
| 188 251 | 
             
                    version: 0.5.3
         | 
| 189 252 | 
             
              type: :development
         | 
| @@ -191,10 +254,12 @@ dependencies: | |
| 191 254 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 192 255 | 
             
                requirements:
         | 
| 193 256 | 
             
                - - "~>"
         | 
| 257 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 258 | 
            +
                    version: '0.5'
         | 
| 259 | 
            +
                - - ">="
         | 
| 194 260 | 
             
                  - !ruby/object:Gem::Version
         | 
| 195 261 | 
             
                    version: 0.5.3
         | 
| 196 | 
            -
            description: A warden strategy for easy  | 
| 197 | 
            -
              Doorkeeper
         | 
| 262 | 
            +
            description: A warden strategy for easy OAuth2 rack based authentication
         | 
| 198 263 | 
             
            email: 
         | 
| 199 264 | 
             
            executables: []
         | 
| 200 265 | 
             
            extensions: []
         | 
| @@ -202,6 +267,7 @@ extra_rdoc_files: [] | |
| 202 267 | 
             
            files:
         | 
| 203 268 | 
             
            - ".gitignore"
         | 
| 204 269 | 
             
            - ".rspec"
         | 
| 270 | 
            +
            - ".rubocop.yml"
         | 
| 205 271 | 
             
            - ".travis.yml"
         | 
| 206 272 | 
             
            - Gemfile
         | 
| 207 273 | 
             
            - Guardfile
         | 
| @@ -242,9 +308,5 @@ rubyforge_project: | |
| 242 308 | 
             
            rubygems_version: 2.4.8
         | 
| 243 309 | 
             
            signing_key: 
         | 
| 244 310 | 
             
            specification_version: 4
         | 
| 245 | 
            -
            summary: A warden strategy for easy  | 
| 246 | 
            -
            test_files:
         | 
| 247 | 
            -
            - spec/app.rb
         | 
| 248 | 
            -
            - spec/oauth_spec.rb
         | 
| 249 | 
            -
            - spec/proxy_spec.rb
         | 
| 250 | 
            -
            - spec/spec_helper.rb
         | 
| 311 | 
            +
            summary: A warden strategy for easy OAuth2 rack based authentication
         | 
| 312 | 
            +
            test_files: []
         |