registrar 0.1.1 → 0.2
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 +4 -4
- data/lib/registrar/auth_builder/omni_auth.rb +8 -1
- data/lib/registrar/version.rb +1 -1
- data/spec/omni_auth_adapter_spec.rb +43 -25
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aea36c6ffc82208ace8e3d29c4f68bbdb256532f
|
4
|
+
data.tar.gz: 9a5ff1921848ac3abef563fcc4da7355a1c856de
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: de3e2f7d3633a230a150f389fad514181f453f773648d1e738cf5cb4769a9715f6229a154ddf6d448942667a3d19d59badbdf9b4c4b9aa606cefe098c23d9409
|
7
|
+
data.tar.gz: ef54cf222736dd0e882a4014114653adb017a0cbdf2d22644b7dd876c3f850466ea110b0430396d2d7109928e716915303a4c89f2e1483159a32a54ed3d4f631
|
@@ -99,7 +99,14 @@ module Registrar
|
|
99
99
|
end
|
100
100
|
|
101
101
|
def ip
|
102
|
-
|
102
|
+
action_dispatch_remote_ip || env['HTTP_CLIENT_IP'] ||
|
103
|
+
env['HTTP_X_REMOTE_ADDR'] || env['REMOTE_ADDR']
|
104
|
+
end
|
105
|
+
|
106
|
+
def action_dispatch_remote_ip
|
107
|
+
if remote_ip = env['action_dispatch.remote_ip']
|
108
|
+
remote_ip.to_s
|
109
|
+
end
|
103
110
|
end
|
104
111
|
|
105
112
|
def user_agent
|
data/lib/registrar/version.rb
CHANGED
@@ -2,11 +2,45 @@ require 'spec_helper'
|
|
2
2
|
require 'omniauth'
|
3
3
|
|
4
4
|
class OmniAuthAuthBuilderSpec < Spec
|
5
|
+
let(:passed_env) { Hash.new }
|
6
|
+
|
5
7
|
it 'normalizes OmniAuth Auth Hash Schema 1.0 and later' do
|
6
|
-
|
8
|
+
passed_env['HTTP_USER_AGENT'] = "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7"
|
9
|
+
passed_env['REMOTE_ADDR'] = "127.0.0.2"
|
10
|
+
passed_env['X-Locale'] = 'fr'
|
11
|
+
|
12
|
+
get '/', nil, passed_env
|
7
13
|
assert_normalizes_auth env
|
8
14
|
end
|
9
15
|
|
16
|
+
it 'prefers HTTP_X_REMOTE_ADDR over REMOTE_ADDR' do
|
17
|
+
passed_env['REMOTE_ADDR'] = '127.0.0.2'
|
18
|
+
passed_env['HTTP_X_REMOTE_ADDR'] = '127.0.0.3'
|
19
|
+
|
20
|
+
get '/', nil, passed_env
|
21
|
+
|
22
|
+
assert_equal passed_env['HTTP_X_REMOTE_ADDR'], traced['ip']
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'prefers HTTP_CLIENT_IP over HTTP_X_REMOTE_ADDR' do
|
26
|
+
passed_env['HTTP_X_REMOTE_ADDR'] = '127.0.0.3'
|
27
|
+
passed_env['HTTP_CLIENT_IP'] = '127.0.0.4'
|
28
|
+
|
29
|
+
get '/', nil, passed_env
|
30
|
+
|
31
|
+
assert_equal passed_env['HTTP_CLIENT_IP'], traced['ip']
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'prefers action_dispatch.remote_ip in env over HTTP_CLIENT_IP' do
|
35
|
+
remote_ip = RemoteIpFake.new("127.0.0.5")
|
36
|
+
passed_env['action_dispatch.remote_ip'] = remote_ip
|
37
|
+
passed_env['HTTP_CLIENT_IP'] = '127.0.0.4'
|
38
|
+
|
39
|
+
get '/', nil, passed_env
|
40
|
+
|
41
|
+
assert_equal "127.0.0.5", traced['ip']
|
42
|
+
end
|
43
|
+
|
10
44
|
private
|
11
45
|
|
12
46
|
def assert_normalizes_auth(env)
|
@@ -61,17 +95,8 @@ class OmniAuthAuthBuilderSpec < Spec
|
|
61
95
|
builder.to_app
|
62
96
|
end
|
63
97
|
|
64
|
-
|
65
|
-
|
66
|
-
@app = app
|
67
|
-
end
|
68
|
-
|
69
|
-
def call(env)
|
70
|
-
env['X-Locale'] = 'fr'
|
71
|
-
env['HTTP_USER_AGENT'] = "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7"
|
72
|
-
env['REMOTE_ADDR'] = "127.0.0.2"
|
73
|
-
@app.call(env)
|
74
|
-
end
|
98
|
+
def traced
|
99
|
+
env['registrar.auth']['trace']
|
75
100
|
end
|
76
101
|
|
77
102
|
class TimeStub
|
@@ -80,18 +105,6 @@ class OmniAuthAuthBuilderSpec < Spec
|
|
80
105
|
end
|
81
106
|
end
|
82
107
|
|
83
|
-
def env
|
84
|
-
last_request.env
|
85
|
-
end
|
86
|
-
|
87
|
-
def response
|
88
|
-
last_response
|
89
|
-
end
|
90
|
-
|
91
|
-
def app
|
92
|
-
@app ||= build_app
|
93
|
-
end
|
94
|
-
|
95
108
|
class OmniAuthFacebookStub
|
96
109
|
def initialize(app)
|
97
110
|
@app = app
|
@@ -121,9 +134,14 @@ class OmniAuthAuthBuilderSpec < Spec
|
|
121
134
|
end
|
122
135
|
end
|
123
136
|
|
137
|
+
class RemoteIpFake < Struct.new(:ip)
|
138
|
+
def to_s
|
139
|
+
ip
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
124
143
|
def builder
|
125
144
|
Rack::Builder.new do
|
126
|
-
use TraceStub
|
127
145
|
use OmniAuthFacebookStub
|
128
146
|
|
129
147
|
use Registrar::AuthBuilder::OmniAuth, TimeStub.new
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: registrar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: '0.2'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jan Owiesniak
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-02-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: omniauth
|