rack-simple_auth 1.0.0rc → 1.0.0

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.
Files changed (57) hide show
  1. checksums.yaml +7 -7
  2. data/MANIFEST +26 -26
  3. data/README.rdoc +121 -0
  4. data/checksum/rack-simple_auth-1.0.0.gem.sha512 +1 -0
  5. data/checksum/rack-simple_auth-1.0.0rc.gem.sha512 +1 -0
  6. data/doc/Rack.html +128 -0
  7. data/doc/Rack/SimpleAuth.html +252 -0
  8. data/doc/Rack/SimpleAuth/HMAC.html +128 -0
  9. data/doc/Rack/SimpleAuth/HMAC/Config.html +1003 -0
  10. data/doc/Rack/SimpleAuth/HMAC/Middleware.html +1418 -0
  11. data/doc/Rack/SimpleAuth/Logger.html +264 -0
  12. data/doc/_index.html +185 -0
  13. data/doc/class_list.html +54 -0
  14. data/doc/css/common.css +1 -0
  15. data/doc/css/full_list.css +57 -0
  16. data/doc/css/style.css +339 -0
  17. data/doc/examples/index.php +32 -0
  18. data/{test/rack/simple_auth/hmac/config.ru → doc/examples/rack_lobster.ru} +1 -2
  19. data/doc/file.README.html +221 -0
  20. data/doc/file_list.html +56 -0
  21. data/doc/frames.html +26 -0
  22. data/doc/index.html +221 -0
  23. data/doc/js/app.js +219 -0
  24. data/doc/js/full_list.js +178 -0
  25. data/doc/js/jquery.js +4 -0
  26. data/doc/method_list.html +179 -0
  27. data/doc/top-level-namespace.html +112 -0
  28. data/lib/rack/simple_auth.rb +3 -1
  29. data/lib/rack/simple_auth/hmac/config.rb +46 -8
  30. data/lib/rack/simple_auth/hmac/middleware.rb +102 -75
  31. data/lib/rack/simple_auth/logger.rb +8 -3
  32. data/lib/rack/simple_auth/version.rb +1 -1
  33. metadata +91 -105
  34. data/.gitignore +0 -18
  35. data/.rubocop.yml +0 -1
  36. data/.travis.yml +0 -22
  37. data/.yardopts +0 -1
  38. data/Gemfile +0 -4
  39. data/README.md +0 -68
  40. data/Rakefile +0 -8
  41. data/rubocop-todo.yml +0 -19
  42. data/task/build.rake +0 -4
  43. data/task/checksum.rake +0 -15
  44. data/task/console.rake +0 -7
  45. data/task/default.rake +0 -6
  46. data/task/floodtest.rake +0 -34
  47. data/task/manifest.rake +0 -8
  48. data/task/test.rake +0 -23
  49. data/test/rack/simple_auth/hmac/config_fail.ru +0 -23
  50. data/test/rack/simple_auth/hmac/config_fail_option.ru +0 -24
  51. data/test/rack/simple_auth/hmac/config_fail_run.ru +0 -22
  52. data/test/rack/simple_auth/hmac/config_fail_step.ru +0 -23
  53. data/test/rack/simple_auth/hmac/config_fail_tolerance.ru +0 -23
  54. data/test/rack/simple_auth/hmac/hmac_fail_run_test.rb +0 -26
  55. data/test/rack/simple_auth/hmac/hmac_fail_test.rb +0 -38
  56. data/test/rack/simple_auth/hmac/hmac_test.rb +0 -128
  57. data/test/test_helper.rb +0 -50
@@ -12,7 +12,9 @@ module Rack
12
12
  # Module which Contains different Authorization / Authentication Classes (HMAC, ..)
13
13
  module SimpleAuth
14
14
  class << self
15
- # Method to return Gem Root Dir
15
+ ##
16
+ # Method to return Gem Root Dir from everywhere in the gem
17
+ #
16
18
  # @return [String] Gem Root Folder
17
19
  def root
18
20
  ::File.dirname(::File.dirname(::File.expand_path('..', __FILE__)))
@@ -1,30 +1,68 @@
1
1
  module Rack
2
2
  module SimpleAuth
3
3
  module HMAC
4
- # class Config
4
+ ##
5
5
  # Config objects will be instantiated out of this class when using Rack::SimpleAuth::HMAC::Middleware
6
6
  # Also the public instance attributes / virtual attributes will be populated via the Middleware DSL
7
+ #
8
+ # @!attribute [w] tolerance
9
+ # @return [Fixnum|Float]
10
+ #
11
+ # @!attribute [w] secret
12
+ # @return [String]
13
+ #
14
+ # @!attribute [w] signature
15
+ # @return [String]
16
+ #
17
+ # @!attribute [rw] logpath
18
+ # @return [String]
19
+ #
20
+ # @!attribute [rw] request_config
21
+ # @return [Hash]
22
+ #
23
+ # @!attribute [rw] verbose
24
+ # @return [TrueClass|NilClass]
25
+ #
7
26
  class Config < Hash
8
- attr_writer :tolerance, :stepsize
27
+ attr_writer :tolerance
9
28
  attr_writer :secret, :signature
29
+
30
+ attr_accessor :verbose
10
31
  attr_accessor :logpath, :request_config
11
32
 
33
+ ##
34
+ # Throw Runtime error for unknown attribute
35
+ #
36
+ # @param [Symbol] name
37
+ # @param [Array] args
38
+ #
12
39
  def method_missing(name, *args)
13
- fail "Unkown option #{name.to_s.gsub!('=', '')}"
40
+ fail "Unknown option #{name.to_s.gsub!('=', '')}"
14
41
  end
15
42
 
43
+ ##
44
+ # Tolerance Attribute with nil guard
45
+ #
46
+ # @return [Fixnum] tolerance
47
+ #
16
48
  def tolerance
17
- @tolerance || 1
18
- end
19
-
20
- def stepsize
21
- @stepsize || 1
49
+ @tolerance || 1000
22
50
  end
23
51
 
52
+ ##
53
+ # Secret Attribute with nil guard
54
+ #
55
+ # @return [String] secret
56
+ #
24
57
  def secret
25
58
  @secret || ''
26
59
  end
27
60
 
61
+ ##
62
+ # Signature Attribute with nil guard
63
+ #
64
+ # @return [String] signature
65
+ #
28
66
  def signature
29
67
  @signature || ''
30
68
  end
@@ -1,39 +1,43 @@
1
1
  module Rack
2
- # Module which Contains different Authorization / Authentication Classes (HMAC, ..)
3
2
  module SimpleAuth
4
- # module HMAC
5
3
  # Contains different classes for authorizing against a hmac signed request
6
4
  module HMAC
7
- # class Middleware
8
- # Middleware class which represents the interface to the rack api via Middleware#call
5
+ ##
6
+ # Middleware class which represents the interface to the rack api via {#call}
9
7
  # and checks if a request is hmac authorized.
10
8
  #
11
- # Usage:
9
+ # @example Basic Usage
10
+ # "request_config = {
11
+ # 'GET' => 'path',
12
+ # 'POST' => 'params',
13
+ # 'DELETE' => 'path',
14
+ # 'PUT' => 'path',
15
+ # 'PATCH' => 'path'
16
+ # }
12
17
  #
13
- # require 'rack/lobster'
14
- # require 'rack/simple_auth'
18
+ # use Rack::SimpleAuth::HMAC::Middleware do |options|
19
+ # options.tolerance = 1500
15
20
  #
16
- # request_config = {
17
- # 'GET' => 'path',
18
- # 'POST' => 'params',
19
- # 'DELETE' => 'path',
20
- # 'PUT' => 'path',
21
- # 'PATCH' => 'path'
22
- # }
21
+ # options.secret = 'test_secret'
22
+ # options.signature = 'test_signature'
23
23
  #
24
- # use Rack::SimpleAuth::HMAC::Middleware do |options|
25
- # options.tolerance = 0.5
26
- # options.stepsize = 0.01
24
+ # options.logpath = "#{File.expand_path('..', __FILE__)}/logs"
25
+ # options.request_config = request_config
27
26
  #
28
- # options.secret = 'test_secret'
29
- # options.signature = 'test_signature'
27
+ # options.verbose = true
28
+ # end
30
29
  #
31
- # options.logpath = "#{File.expand_path('..', __FILE__)}/logs"
32
- # options.request_config = request_config
33
- # end
30
+ # run Rack::Lobster.new"
34
31
  #
35
- # run Rack::Lobster.new
36
32
  class Middleware
33
+ ##
34
+ # Throw NoMethodError and give hint if method who was called is Rack::SimpleAuth::Middleware.call
35
+ #
36
+ # @param [Symbol] name
37
+ # @param [Array] args
38
+ #
39
+ # @raise [NoMethodError] if the method isn't defined
40
+ # and outputs additional hint for calling Rack::SimpleAuth::Middleware.call
37
41
  def self.method_missing(name, *args)
38
42
  msg = "Did you try to use HMAC Middleware as Rack Application via 'run'?\n" if name.eql?(:call)
39
43
  msg << "method: #{name}\n"
@@ -42,21 +46,27 @@ module Rack
42
46
 
43
47
  fail NoMethodError, msg
44
48
  end
49
+
50
+ ##
45
51
  # Constructor for Rack Middleware (passing the rack stack)
52
+ #
46
53
  # @param [Rack Application] app [next middleware or rack app which gets called]
47
- # @param [Hash] config [config hash where tolerance, secret, signature etc.. are set]
54
+ # @param [Proc] block [the dsl block which will be yielded into the config object]
55
+ #
48
56
  def initialize(app, &block)
49
57
  @app, @config = app, Config.new
50
- yield @config if block_given?
51
58
 
52
- valid_stepsize?(0.01)
53
- valid_tolerance?
59
+ yield @config if block_given?
54
60
  end
55
61
 
62
+ ##
56
63
  # call Method for Rack Middleware/Application
64
+ #
57
65
  # @param [Hash] env [Rack Env Hash which contains headers etc..]
66
+ #
58
67
  def call(env)
59
68
  @request = Rack::Request.new(env)
69
+ @allowed_messages = allowed_messages
60
70
 
61
71
  if valid_request?
62
72
  @app.call(env)
@@ -66,68 +76,95 @@ module Rack
66
76
  end
67
77
  end
68
78
 
69
- # checks for valid HMAC Request
70
- # @return [boolean] ValidationStatus [If authorized returns true, else false]
79
+ private
80
+
81
+ ##
82
+ # Checks for valid HMAC Request
83
+ #
84
+ # @return [TrueClass] if request is authorized
85
+ # @return [FalseClass] if request is not authorized or HTTP_AUTHORIZATION Header is not set
86
+ #
71
87
  def valid_request?
72
- if @request.env['HTTP_AUTHORIZATION'].nil?
73
- log
88
+ log
74
89
 
75
- return false
76
- end
90
+ return false if empty_header? || !authorized?
77
91
 
78
- if request_signature == @config.signature && allowed_messages.include?(request_message)
79
- true
80
- else
81
- log
92
+ true
93
+ end
82
94
 
83
- false
84
- end
95
+ ##
96
+ # Check if HTTP_AUTHORIZATION Header is set
97
+ #
98
+ # @return [TrueClass] if header is set
99
+ # @return [FalseClass] if header is not set
100
+ #
101
+ def empty_header?
102
+ @request.env['HTTP_AUTHORIZATION'].nil?
85
103
  end
86
104
 
87
- private
105
+ ##
106
+ # Check if request is authorized
107
+ #
108
+ # @return [TrueClass] if request is authorized -> {#request_signature} is correct & {#request_message} is included
109
+ # in {#allowed_messages}
110
+ # @return [FalseClass] if request is not authorized
111
+ #
112
+ def authorized?
113
+ request_signature.eql?(@config.signature) && @allowed_messages.include?(request_message)
114
+ end
88
115
 
116
+ ##
89
117
  # Get request signature
118
+ #
119
+ # @return [String] signature of current request
120
+ #
90
121
  def request_signature
91
122
  @request.env['HTTP_AUTHORIZATION'].split(':').last
92
123
  end
93
124
 
125
+ ##
94
126
  # Get encrypted request message
127
+ #
128
+ # @return [String] message of current request
129
+ #
95
130
  def request_message
96
131
  @request.env['HTTP_AUTHORIZATION'].split(':').first
97
132
  end
98
133
 
99
- # Builds Array of allowed message hashs
100
- # @return [Array] hash_array [allowed message hashes as array]
134
+ ##
135
+ # Builds Array of allowed message hashs between @tolerance via {#message}
136
+ #
137
+ # @return [Array]
101
138
  def allowed_messages
102
139
  messages = []
103
140
 
104
- date = Time.now.to_i.freeze
105
- (-(@config.tolerance)..@config.tolerance).step(@config.stepsize) do |i|
106
- i = i.round(2)
141
+ # Timestamp with milliseconds as Fixnum
142
+ date = (Time.now.to_f.freeze * 1000).to_i
143
+ (-(@config.tolerance)..@config.tolerance).step(1) do |i|
107
144
  messages << OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha256'), @config.secret, message(date, i))
108
145
  end
109
146
 
110
147
  messages
111
148
  end
112
149
 
150
+ ##
113
151
  # Get Message for current Request and delay
152
+ #
114
153
  # @param [Fixnum] date [current date in timestamp format]
115
154
  # @param [Fixnum] delay [delay in timestamp format]
116
- # @return [Hash] message [message which will be encrypted]
155
+ #
156
+ # @return [String] message
117
157
  def message(date, delay = 0)
118
158
  date += delay
119
- date = date.to_i if delay.eql?(0.0)
120
159
 
121
- # Print out Delay and Timestamp for each range step in development environment
122
- puts "Delay: #{delay}, Timestamp: #{date}" if ENV['RACK_ENV'].eql?('development')
123
-
124
- { 'method' => @request.request_method, 'date' => date, 'data' => request_data(@config) }.to_json
160
+ { 'method' => @request.request_method, 'date' => date, 'data' => request_data }.to_json
125
161
  end
126
162
 
127
- # Get Request Data specified by Config
128
- # @param [Hash] config [Config Hash containing what type of info is data for each request]
129
- # @return [String|Hash] data [Data for each request]
130
- def request_data(config)
163
+ ##
164
+ # Get Request Data specified by @config.request_config
165
+ #
166
+ # @return [String|Hash] data
167
+ def request_data
131
168
  if @config.request_config[@request.request_method] == 'path' || @config.request_config[@request.request_method] == 'params'
132
169
  @request.send(@config.request_config[@request.request_method].to_sym)
133
170
  else
@@ -135,43 +172,33 @@ module Rack
135
172
  end
136
173
  end
137
174
 
138
- # Log to @config.logpath if request is unathorized
175
+ ##
176
+ # Log to @config.logpath
139
177
  # Contains:
140
178
  # - allowed messages and received message
141
179
  # - time when request was made
142
180
  # - type of request
143
181
  # - requested path
182
+ #
183
+ # Note: This is kinda slow under Rubinius
184
+ # (Rack::SimpleAuth::Logger.log has IO action, i think there are some performance issues)
185
+ #
144
186
  def log
145
187
  if @config.logpath
146
- msg = "#{Time.new} - #{@request.request_method} #{@request.path} - 400 Unauthorized\n"
188
+ msg = "#{Time.new} - #{@request.request_method} #{@request.path} - 400 Unauthorized\n"
147
189
  msg << "HTTP_AUTHORIZATION: #{@request.env['HTTP_AUTHORIZATION']}\n"
148
190
  msg << "Auth Message Config: #{@config.request_config[@request.request_method]}\n"
149
191
 
150
- if allowed_messages
192
+ if @allowed_messages
151
193
  msg << "Allowed Encrypted Messages:\n"
152
- allowed_messages.each do |hash|
194
+ @allowed_messages.each do |hash|
153
195
  msg << "#{hash}\n"
154
196
  end
155
197
  end
156
198
 
157
199
  msg << "Auth Signature: #{@config.signature}"
158
200
 
159
- Rack::SimpleAuth::Logger.log(@config.logpath, ENV['RACK_ENV'], msg)
160
- end
161
- end
162
-
163
- # Check if Stepsize is valid, if > min ensure stepsize is min stepsize
164
- # @param [float] min [minimum allowed stepsize]
165
- # check @config.stepsize < min
166
- def valid_stepsize?(min)
167
- fail "Minimum allowed stepsize is #{min}" if @config.stepsize < min
168
- end
169
-
170
- # Check if tolerance is valid, tolerance must be greater than stepsize
171
- # check @config.tolerance < @config.stepsize
172
- def valid_tolerance?
173
- if @config.tolerance < @config.stepsize
174
- fail "Tolerance must be greater than stepsize - Tolerance: #{@config.tolerance}, Stepsize: #{@config.stepsize}"
201
+ Rack::SimpleAuth::Logger.log(@config.logpath, @config.verbose, ENV['RACK_ENV'], msg)
175
202
  end
176
203
  end
177
204
  end # Middleware
@@ -4,14 +4,19 @@ module Rack
4
4
  # This class receives a logpath, env and message and
5
5
  # prints the message to the specified logpath for the proper env file (eg.: /path/to/file/test_error.log for test env)
6
6
  module Logger
7
- def self.log(logpath, env = 'development', msg)
7
+ # Create Logfile
8
+ #
9
+ # @param [String] logpath [path to logfile]
10
+ # @param [TrueClass|FalseClass] verbose [if true print to stdout]
11
+ # @param [String] msg [Message defined by each Authorization class]
12
+ #
13
+ def self.log(logpath, verbose = false, env, msg)
8
14
  system("mkdir #{logpath}") unless Dir.exist?("#{logpath}")
9
15
  open("#{logpath}/#{env}_error.log", 'a') do |f|
10
16
  f << "#{msg}\n"
11
17
  end
12
18
 
13
- # Print out log to stdout for dev env
14
- puts msg if ENV['RACK_ENV'].eql?('development')
19
+ puts msg if verbose
15
20
  end
16
21
  end # Logger
17
22
  end # SimpleAuth
@@ -2,6 +2,6 @@ module Rack
2
2
  # Module which Contains different Authorization / Authentication Classes (HMAC, ..)
3
3
  module SimpleAuth
4
4
  # Current Gem Version
5
- VERSION = '1.0.0rc'
5
+ VERSION = '1.0.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,152 +1,138 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: rack-simple_auth
3
- version: !ruby/object:Gem::Version
4
- version: 1.0.0rc
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
5
  platform: ruby
6
- authors:
6
+ authors:
7
7
  - Benny1992
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-29 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
11
+
12
+ date: 2014-04-30 00:00:00 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
14
15
  name: rack
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :runtime
21
16
  prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
- - !ruby/object:Gem::Dependency
17
+ requirement: &id001 !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - &id006
20
+ - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: "0"
23
+ type: :runtime
24
+ version_requirements: *id001
25
+ - !ruby/object:Gem::Dependency
28
26
  name: bundler
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '1.6'
34
- type: :development
35
27
  prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '1.6'
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.3'
28
+ requirement: &id002 !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: "1.6"
48
33
  type: :development
34
+ version_requirements: *id002
35
+ - !ruby/object:Gem::Dependency
36
+ name: rake
49
37
  prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '10.3'
55
- - !ruby/object:Gem::Dependency
56
- name: coveralls
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '0.7'
38
+ requirement: &id003 !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ~>
41
+ - !ruby/object:Gem::Version
42
+ version: "10.3"
62
43
  type: :development
44
+ version_requirements: *id003
45
+ - !ruby/object:Gem::Dependency
46
+ name: coveralls
63
47
  prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '0.7'
69
- - !ruby/object:Gem::Dependency
70
- name: rack-test
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '0.6'
48
+ requirement: &id004 !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ~>
51
+ - !ruby/object:Gem::Version
52
+ version: "0.7"
76
53
  type: :development
54
+ version_requirements: *id004
55
+ - !ruby/object:Gem::Dependency
56
+ name: rack-test
77
57
  prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '0.6'
58
+ requirement: &id005 !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ~>
61
+ - !ruby/object:Gem::Version
62
+ version: "0.6"
63
+ type: :development
64
+ version_requirements: *id005
83
65
  description: SimpleAuth HMAC authentication
84
- email:
66
+ email:
85
67
  - r3qnbenni@gmail.com
86
68
  executables: []
69
+
87
70
  extensions: []
71
+
88
72
  extra_rdoc_files: []
89
- files:
90
- - ".gitignore"
91
- - ".rubocop.yml"
92
- - ".travis.yml"
93
- - ".yardopts"
94
- - Gemfile
73
+
74
+ files:
95
75
  - LICENSE.txt
96
76
  - MANIFEST
97
- - README.md
98
- - Rakefile
77
+ - README.rdoc
99
78
  - checksum/rack-simple_auth-0.0.9.gem.sha512
100
79
  - checksum/rack-simple_auth-0.1.0.gem.sha512
101
80
  - checksum/rack-simple_auth-0.1.1.gem.sha512
102
81
  - checksum/rack-simple_auth-0.1.2.gem.sha512
82
+ - checksum/rack-simple_auth-1.0.0.gem.sha512
83
+ - checksum/rack-simple_auth-1.0.0rc.gem.sha512
84
+ - doc/Rack.html
85
+ - doc/Rack/SimpleAuth.html
86
+ - doc/Rack/SimpleAuth/HMAC.html
87
+ - doc/Rack/SimpleAuth/HMAC/Config.html
88
+ - doc/Rack/SimpleAuth/HMAC/Middleware.html
89
+ - doc/Rack/SimpleAuth/Logger.html
90
+ - doc/_index.html
91
+ - doc/class_list.html
92
+ - doc/css/common.css
93
+ - doc/css/full_list.css
94
+ - doc/css/style.css
95
+ - doc/examples/index.php
96
+ - doc/examples/rack_lobster.ru
97
+ - doc/file.README.html
98
+ - doc/file_list.html
99
+ - doc/frames.html
100
+ - doc/index.html
101
+ - doc/js/app.js
102
+ - doc/js/full_list.js
103
+ - doc/js/jquery.js
104
+ - doc/method_list.html
105
+ - doc/top-level-namespace.html
103
106
  - lib/rack/simple_auth.rb
104
107
  - lib/rack/simple_auth/hmac/config.rb
105
108
  - lib/rack/simple_auth/hmac/middleware.rb
106
109
  - lib/rack/simple_auth/logger.rb
107
110
  - lib/rack/simple_auth/version.rb
108
111
  - rack-simple_auth.gemspec
109
- - rubocop-todo.yml
110
- - task/build.rake
111
- - task/checksum.rake
112
- - task/console.rake
113
- - task/default.rake
114
- - task/floodtest.rake
115
- - task/manifest.rake
116
- - task/test.rake
117
- - test/rack/simple_auth/hmac/config.ru
118
- - test/rack/simple_auth/hmac/config_fail.ru
119
- - test/rack/simple_auth/hmac/config_fail_option.ru
120
- - test/rack/simple_auth/hmac/config_fail_run.ru
121
- - test/rack/simple_auth/hmac/config_fail_step.ru
122
- - test/rack/simple_auth/hmac/config_fail_tolerance.ru
123
- - test/rack/simple_auth/hmac/hmac_fail_run_test.rb
124
- - test/rack/simple_auth/hmac/hmac_fail_test.rb
125
- - test/rack/simple_auth/hmac/hmac_test.rb
126
- - test/test_helper.rb
127
112
  homepage: https://github.com/Benny1992/rack-simple_auth
128
- licenses:
113
+ licenses:
129
114
  - MIT
130
115
  metadata: {}
131
- post_install_message: 'Please report any issues at: https://github.com/Benny1992/rack-simple_auth/issues/new'
116
+
117
+ post_install_message: "Please report any issues at: https://github.com/Benny1992/rack-simple_auth/issues/new"
132
118
  rdoc_options: []
133
- require_paths:
119
+
120
+ require_paths:
134
121
  - lib
135
- required_ruby_version: !ruby/object:Gem::Requirement
136
- requirements:
122
+ required_ruby_version: !ruby/object:Gem::Requirement
123
+ requirements:
137
124
  - - ">="
138
- - !ruby/object:Gem::Version
125
+ - !ruby/object:Gem::Version
139
126
  version: 1.8.7
140
- required_rubygems_version: !ruby/object:Gem::Requirement
141
- requirements:
142
- - - ">"
143
- - !ruby/object:Gem::Version
144
- version: 1.3.1
127
+ required_rubygems_version: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - *id006
145
130
  requirements: []
131
+
146
132
  rubyforge_project:
147
133
  rubygems_version: 2.2.2
148
134
  signing_key:
149
135
  specification_version: 4
150
136
  summary: SimpleAuth HMAC authentication
151
137
  test_files: []
152
- has_rdoc:
138
+