rack-simple_auth 1.0.0rc → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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
+