dispatch-auth 0.0.3

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 1ec69785f12223e77e1d2a8c7911b440294b70f0
4
+ data.tar.gz: dc958f0cc9fc47af41c1e88acd6acf752b66a29e
5
+ SHA512:
6
+ metadata.gz: 8ccf167b6fda2df77bb92367b05f48bceeb4d949497c3323c4e4c3696b0676e298e03cb65e780701399b0cb65d019993f020c24b683cf17926f3caa03970144b
7
+ data.tar.gz: 6a1301a0beae0cc7ddaef7b63330b03695056691a9c6dc37911110bdfa9f440784b28fd613590ba1b9081630cfcca817bb57a9eed4b857167ac31599fa6fb1d8
data/README.md ADDED
@@ -0,0 +1,23 @@
1
+ # Dispatch::Auth
2
+
3
+ TODO: Write a gem description
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```ruby
10
+ gem 'dispatch-auth'
11
+ ```
12
+
13
+ And then execute:
14
+
15
+ $ bundle
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install dispatch-auth
20
+
21
+ ## Usage
22
+
23
+ TODO: Write usage instructions here
data/lib/dispatch.rb ADDED
@@ -0,0 +1 @@
1
+ require 'dispatch/auth'
@@ -0,0 +1,34 @@
1
+ require 'httparty'
2
+ require_relative 'auth/errors'
3
+
4
+ module Dispatch
5
+ module Auth
6
+ include HTTParty
7
+
8
+ class << self
9
+ def authenticate_request!(env)
10
+ headers.merge!('Content-Type' => 'application/json')
11
+ headers.merge!('Authorization' => get_auth_header(env)) || raise(Dispatch::Auth::TokenMissingError)
12
+
13
+ response = get(ENV['AUTH_ENDPOINT_URL'])
14
+
15
+ case response.code
16
+ when 401
17
+ raise Dispatch::Auth::NotAuthenticatedError
18
+ when 403
19
+ raise Dispatch::Auth::NotAuthorizedError
20
+ end
21
+ end
22
+
23
+ def get_auth_header(env)
24
+ r = Rack::Request.new(env)
25
+ header = r.env['HTTP_AUTHORIZATION']
26
+ token = r.params['access_token'] || r.params['bearer_token']
27
+ header ||= "Bearer #{token}" if token
28
+ raise(Dispatch::Auth::TokenMissingError) unless header
29
+ header
30
+ end
31
+ private :get_auth_header
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,21 @@
1
+ module Dispatch
2
+ module Auth
3
+ class TokenMissingError < StandardError
4
+ def message
5
+ 'Authorization header required.'
6
+ end
7
+ end
8
+
9
+ class NotAuthenticatedError < StandardError
10
+ def message
11
+ 'Request is not authenticated.'
12
+ end
13
+ end
14
+
15
+ class NotAuthorizedError < StandardError
16
+ def message
17
+ 'You are not authorized to access this page.'
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,5 @@
1
+ module Dispatch
2
+ module Auth
3
+ VERSION = '0.0.3'
4
+ end
5
+ end
metadata ADDED
@@ -0,0 +1,93 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dispatch-auth
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
+ platform: ruby
6
+ authors:
7
+ - rilian
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-11-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: httparty
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 0.13.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 0.13.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.7'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.7'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '10.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '10.0'
55
+ description: Gem to authenticate requests for Dispatch APIs, by passing Authorization
56
+ token to Dispatch Users API
57
+ email:
58
+ - dmitriyis@gmail.com
59
+ - creeonix@gmail.com
60
+ executables: []
61
+ extensions: []
62
+ extra_rdoc_files: []
63
+ files:
64
+ - README.md
65
+ - lib/dispatch.rb
66
+ - lib/dispatch/auth.rb
67
+ - lib/dispatch/auth/errors.rb
68
+ - lib/dispatch/auth/version.rb
69
+ homepage: http://dispatch.me
70
+ licenses:
71
+ - MIT
72
+ metadata: {}
73
+ post_install_message:
74
+ rdoc_options: []
75
+ require_paths:
76
+ - lib
77
+ required_ruby_version: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ required_rubygems_version: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ requirements: []
88
+ rubyforge_project:
89
+ rubygems_version: 2.2.2
90
+ signing_key:
91
+ specification_version: 4
92
+ summary: Gem to authenticate requests for Dispatch APIs
93
+ test_files: []