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
@@ -1,128 +0,0 @@
1
- require 'test_helper.rb'
2
-
3
- # Test HMAC Authorization Method
4
- class HMACTest < MiniTest::Unit::TestCase
5
- include Rack::Test::Methods
6
-
7
- def setup
8
- @secret = 'test_secret'
9
- @signature = 'test_signature'
10
- end
11
-
12
- def app
13
- Rack::SimpleAuth::HMAC.testapp
14
- end
15
-
16
- def test_get_without_auth_header
17
- get '/'
18
- assert_equal(401, last_response.status, 'Unauthorized reqeust should receive 401')
19
- end
20
-
21
- def test_get_with_wrong_auth_header
22
- get '/', {}, 'HTTP_AUTHORIZATION' => 'wrong_header'
23
- assert_equal(401, last_response.status, 'Wrong HTTP_AUTHORIZATION Header should receive 401')
24
- end
25
-
26
- def test_get_with_right_auth_header
27
- uri = '/'
28
- message = { 'method' => 'GET', 'date' => Time.now.to_i, 'data' => uri }.to_json
29
- hash = OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha256'), @secret, message)
30
-
31
- get uri, {}, 'HTTP_AUTHORIZATION' => "#{hash}:#{@signature}"
32
-
33
- assert_equal(200, last_response.status, 'Authorized Request should receive 200')
34
- end
35
-
36
- def test_get_with_delay_in_tolerance_range
37
- uri = '/'
38
- message = { 'method' => 'GET', 'date' => Time.now.to_i - 0.5, 'data' => uri }.to_json
39
- hash = OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha256'), @secret, message)
40
-
41
- get uri, {}, 'HTTP_AUTHORIZATION' => "#{hash}:#{@signature}"
42
-
43
- assert_equal(200, last_response.status, 'Delay in tolerance range should receive 200')
44
- end
45
-
46
- def test_get_with_too_big_delay
47
- uri = '/'
48
- message = { 'method' => 'GET', 'date' => Time.now.to_i - 50, 'data' => uri }.to_json
49
- hash = OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha256'), @secret, message)
50
-
51
- get uri, {}, 'HTTP_AUTHORIZATION' => "#{hash}:#{@signature}"
52
-
53
- assert_equal(401, last_response.status, 'Delay not in tolerance range should receive 401')
54
- end
55
-
56
- def test_get_with_wrong_step
57
- uri = '/'
58
- message = { 'method' => 'GET', 'date' => Time.now.to_i + 0.035, 'data' => uri }.to_json
59
- hash = OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha256'), @secret, message)
60
-
61
- get uri, {}, 'HTTP_AUTHORIZATION' => "#{hash}:#{@signature}"
62
-
63
- assert_equal(401, last_response.status, 'Message with wrong step should receive 401')
64
- end
65
-
66
- def test_post_with_wrong_auth_header
67
- post '/', { 'name' => 'Bensn' }, 'HTTP_AUTHORIZATION' => 'wrong_header'
68
- assert_equal(401, last_response.status, 'Wrong HTTP_AUTHORIZATION Header should receive 401')
69
- end
70
-
71
- def test_post_with_right_auth_header
72
- params = { 'name' => 'Bensn' }
73
- message = { 'method' => 'POST', 'date' => Time.now.to_i, 'data' => params }.to_json
74
- hash = OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha256'), @secret, message)
75
-
76
- post '/', params, 'HTTP_AUTHORIZATION' => "#{hash}:#{@signature}"
77
-
78
- assert_equal(200, last_response.status, 'Authorized Request should receive 200')
79
- end
80
-
81
- def test_delete_with_wrong_auth_header
82
- delete '/', {}, 'HTTP_AUTHORIZATION' => 'wrong_header'
83
- assert_equal(401, last_response.status, 'Wrong HTTP_AUTHORIZATION Header should receive 401')
84
- end
85
-
86
- def test_delete_with_right_auth_header
87
- uri = '/'
88
- message = { 'method' => 'DELETE', 'date' => Time.now.to_i, 'data' => uri }.to_json
89
- hash = OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha256'), @secret, message)
90
-
91
- delete uri, {}, 'HTTP_AUTHORIZATION' => "#{hash}:#{@signature}"
92
-
93
- assert_equal(200, last_response.status, 'Authorized Request should receive 200')
94
- end
95
-
96
- def test_put_with_wrong_auth_header
97
- put '/', {}, 'HTTP_AUTHORIZATION' => 'wrong_header'
98
- assert_equal(401, last_response.status, 'Wrong HTTP_AUTHORIZATION Header should receive 401')
99
- end
100
-
101
- def test_put_with_right_auth_header
102
- uri = '/'
103
- message = { 'method' => 'PUT', 'date' => Time.now.to_i , 'data' => uri }.to_json
104
- hash = OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha256'), @secret, message)
105
-
106
- put uri, {}, 'HTTP_AUTHORIZATION' => "#{hash}:#{@signature}"
107
-
108
- assert_equal(200, last_response.status, 'Authorized Request should receive 200')
109
- end
110
-
111
- def test_patch_with_wrong_auth_header
112
- patch '/', {}, 'HTTP_AUTHORIZATION' => 'wrong_header'
113
- assert_equal(401, last_response.status, 'Wrong HTTP_AUTHORIZATION Header should receive 401')
114
- end
115
-
116
- def test_patch_with_right_auth_header
117
- uri = '/'
118
- message = { 'method' => 'PATCH', 'date' => Time.now.to_i, 'data' => uri }.to_json
119
- hash = OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha256'), @secret, message)
120
-
121
- patch uri, {}, 'HTTP_AUTHORIZATION' => "#{hash}:#{@signature}"
122
-
123
- assert_equal(200, last_response.status, 'Authorized Request should receive 200')
124
- end
125
-
126
- def teardown
127
- end
128
- end
data/test/test_helper.rb DELETED
@@ -1,50 +0,0 @@
1
- ENV['RACK_ENV'] = 'test'
2
-
3
- require 'simplecov'
4
- require 'coveralls'
5
-
6
- SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
7
- SimpleCov::Formatter::HTMLFormatter,
8
- Coveralls::SimpleCov::Formatter
9
- ]
10
-
11
- SimpleCov.start do
12
- project_name 'rack-simple_auth'
13
- add_filter '/test/'
14
- add_filter '/pkg/'
15
- add_filter '/spec/'
16
- add_filter '/features/'
17
- add_filter '/doc/'
18
- end if ENV['COVERAGE']
19
-
20
- # Minitest
21
- require 'minitest/autorun'
22
- require 'minitest/mock'
23
- require 'minitest/pride' # for colored output
24
-
25
- # Rack Test Methods
26
- require 'rack/test'
27
-
28
- require 'json'
29
-
30
- # Load gem
31
- require 'rack/simple_auth'
32
-
33
- module Rack
34
- # Module which Contains different Authorization / Authentication Classes (HMAC, ..)
35
- module SimpleAuth
36
- # HMAC module
37
- module HMAC
38
- class << self
39
- attr_accessor :testapp, :failapp, :failrunapp
40
- end
41
- end
42
- end
43
- end
44
-
45
- Rack::SimpleAuth::HMAC.testapp = Rack::Builder.parse_file("#{Rack::SimpleAuth.root}/test/rack/simple_auth/hmac/config.ru").first
46
- Rack::SimpleAuth::HMAC.failapp = Rack::Builder.parse_file("#{Rack::SimpleAuth.root}/test/rack/simple_auth/hmac/config_fail.ru").first
47
- Rack::SimpleAuth::HMAC.failrunapp = Rack::Builder.parse_file("#{Rack::SimpleAuth.root}/test/rack/simple_auth/hmac/config_fail_run.ru").first
48
-
49
- @logpath = "#{File.expand_path("..", __FILE__)}/logs"
50
- system("mkdir #{@logpath}")