rack-auth-simples 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -1 +1 @@
1
- rack-auth-simples-0.0.1.gem
1
+ *.gem
@@ -10,11 +10,13 @@ module Rack
10
10
  def initialize
11
11
  @ips = []
12
12
  @triggers = []
13
+ @exceptions = []
13
14
 
14
15
  @opts = {
15
16
  :secret => 'SET_VIA_CONFIG',
16
17
  :return_url => '/',
17
- :cookie_name => '_auth_allowed'
18
+ :cookie_name => '_auth_allowed',
19
+ :fail => :forbidden
18
20
  }
19
21
  end
20
22
 
@@ -26,6 +28,10 @@ module Rack
26
28
  @ips << ip
27
29
  end
28
30
 
31
+ def add_exception url
32
+ @exceptions << url
33
+ end
34
+
29
35
  def allow_local
30
36
  @ips << '127.0.0.1'
31
37
  end
@@ -36,7 +42,11 @@ module Rack
36
42
 
37
43
  def parse env, app
38
44
 
39
- fail = [403, {'Content-Type' => 'text/plain' }, ['Forbidden'] ]
45
+ if @opts[:fail] == :forbidden
46
+ fail = [403, {'Content-Type' => 'text/plain' }, ['Forbidden'] ]
47
+ else
48
+ fail = [302, {'Location' => @opts[:fail] }, [] ]
49
+ end
40
50
 
41
51
  if env['HTTP_X_FORWARDED_FOR']
42
52
  ip = env['HTTP_X_FORWARDED_FOR'].split(',').pop
@@ -44,6 +54,7 @@ module Rack
44
54
  ip = env["REMOTE_ADDR"]
45
55
  end
46
56
 
57
+ return app.call(env) if @exceptions.include? env['PATH_INFO']
47
58
 
48
59
  if @ips.any?
49
60
  addrs_list = IPAddrList.new(@ips)
@@ -1,7 +1,7 @@
1
1
  module Rack
2
2
  module Auth
3
3
  class Simples
4
- VERSION = "0.0.2"
4
+ VERSION = "0.0.3"
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-auth-simples
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: