oa-cadun 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.
- data/lib/oa-cadun.rb +8 -5
- data/lib/omni_auth/strategies/cadun.rb +4 -4
- data/oa-cadun.gemspec +2 -1
- data/spec/omni_auth/strategies/cadun_spec.rb +1 -0
- metadata +21 -46
- data/lib/oa-cadun/gateway.rb +0 -32
- data/lib/oa-cadun/user.rb +0 -40
- data/lib/version.rb +0 -3
- data/spec/oa-cadun/gateway_spec.rb +0 -67
- data/spec/oa-cadun/user_spec.rb +0 -68
data/lib/oa-cadun.rb
CHANGED
@@ -1,11 +1,14 @@
|
|
1
|
-
$:.push File.expand_path(
|
1
|
+
$:.push File.expand_path('lib', __FILE__)
|
2
2
|
|
3
3
|
require 'uri'
|
4
4
|
require 'cgi'
|
5
5
|
require 'net/http'
|
6
|
-
require 'oa-core'
|
7
6
|
require 'nokogiri'
|
8
7
|
require 'date'
|
9
|
-
require 'oa-
|
10
|
-
require '
|
11
|
-
require 'omni_auth/strategies/cadun'
|
8
|
+
require 'oa-core'
|
9
|
+
require 'cadun'
|
10
|
+
require 'omni_auth/strategies/cadun'
|
11
|
+
|
12
|
+
module OACadun
|
13
|
+
VERSION = '0.2'
|
14
|
+
end
|
@@ -14,9 +14,9 @@ module OmniAuth
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def auth_hash
|
17
|
-
@params = CGI.parse(URI.parse(env[
|
18
|
-
@glb_id = params[
|
19
|
-
@url = params[
|
17
|
+
@params = CGI.parse(URI.parse(env['REQUEST_URI']).query)
|
18
|
+
@glb_id = params['GLBID'].first
|
19
|
+
@url = params['url'].first
|
20
20
|
|
21
21
|
{ :GLBID => glb_id,
|
22
22
|
:url => url,
|
@@ -39,7 +39,7 @@ module OmniAuth
|
|
39
39
|
|
40
40
|
protected
|
41
41
|
def user
|
42
|
-
@user ||=
|
42
|
+
@user ||= ::Cadun::User.new(glb_id, env['REMOTE_ADDR'], service_id)
|
43
43
|
end
|
44
44
|
|
45
45
|
def service_id
|
data/oa-cadun.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
$:.push File.expand_path("../lib", __FILE__)
|
3
|
-
require "
|
3
|
+
require "oa-cadun"
|
4
4
|
|
5
5
|
Gem::Specification.new do |s|
|
6
6
|
s.name = "oa-cadun"
|
@@ -18,6 +18,7 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.require_paths = ["lib"]
|
19
19
|
|
20
20
|
s.add_dependency 'oa-core'
|
21
|
+
s.add_dependency 'cadun'
|
21
22
|
s.add_dependency 'nokogiri'
|
22
23
|
s.add_development_dependency 'rack'
|
23
24
|
s.add_development_dependency 'rspec'
|
metadata
CHANGED
@@ -1,13 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oa-cadun
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 1
|
9
|
-
- 1
|
10
|
-
version: 0.1.1
|
4
|
+
prerelease:
|
5
|
+
version: "0.2"
|
11
6
|
platform: ruby
|
12
7
|
authors:
|
13
8
|
- Bruno Azisaka Maciel
|
@@ -15,7 +10,7 @@ autorequire:
|
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
12
|
|
18
|
-
date: 2011-05-
|
13
|
+
date: 2011-05-17 00:00:00 -03:00
|
19
14
|
default_executable:
|
20
15
|
dependencies:
|
21
16
|
- !ruby/object:Gem::Dependency
|
@@ -26,82 +21,75 @@ dependencies:
|
|
26
21
|
requirements:
|
27
22
|
- - ">="
|
28
23
|
- !ruby/object:Gem::Version
|
29
|
-
hash: 3
|
30
|
-
segments:
|
31
|
-
- 0
|
32
24
|
version: "0"
|
33
25
|
type: :runtime
|
34
26
|
version_requirements: *id001
|
35
27
|
- !ruby/object:Gem::Dependency
|
36
|
-
name:
|
28
|
+
name: cadun
|
37
29
|
prerelease: false
|
38
30
|
requirement: &id002 !ruby/object:Gem::Requirement
|
39
31
|
none: false
|
40
32
|
requirements:
|
41
33
|
- - ">="
|
42
34
|
- !ruby/object:Gem::Version
|
43
|
-
hash: 3
|
44
|
-
segments:
|
45
|
-
- 0
|
46
35
|
version: "0"
|
47
36
|
type: :runtime
|
48
37
|
version_requirements: *id002
|
49
38
|
- !ruby/object:Gem::Dependency
|
50
|
-
name:
|
39
|
+
name: nokogiri
|
51
40
|
prerelease: false
|
52
41
|
requirement: &id003 !ruby/object:Gem::Requirement
|
53
42
|
none: false
|
54
43
|
requirements:
|
55
44
|
- - ">="
|
56
45
|
- !ruby/object:Gem::Version
|
57
|
-
hash: 3
|
58
|
-
segments:
|
59
|
-
- 0
|
60
46
|
version: "0"
|
61
|
-
type: :
|
47
|
+
type: :runtime
|
62
48
|
version_requirements: *id003
|
63
49
|
- !ruby/object:Gem::Dependency
|
64
|
-
name:
|
50
|
+
name: rack
|
65
51
|
prerelease: false
|
66
52
|
requirement: &id004 !ruby/object:Gem::Requirement
|
67
53
|
none: false
|
68
54
|
requirements:
|
69
55
|
- - ">="
|
70
56
|
- !ruby/object:Gem::Version
|
71
|
-
hash: 3
|
72
|
-
segments:
|
73
|
-
- 0
|
74
57
|
version: "0"
|
75
58
|
type: :development
|
76
59
|
version_requirements: *id004
|
77
60
|
- !ruby/object:Gem::Dependency
|
78
|
-
name:
|
61
|
+
name: rspec
|
79
62
|
prerelease: false
|
80
63
|
requirement: &id005 !ruby/object:Gem::Requirement
|
81
64
|
none: false
|
82
65
|
requirements:
|
83
66
|
- - ">="
|
84
67
|
- !ruby/object:Gem::Version
|
85
|
-
hash: 3
|
86
|
-
segments:
|
87
|
-
- 0
|
88
68
|
version: "0"
|
89
69
|
type: :development
|
90
70
|
version_requirements: *id005
|
91
71
|
- !ruby/object:Gem::Dependency
|
92
|
-
name:
|
72
|
+
name: rr
|
93
73
|
prerelease: false
|
94
74
|
requirement: &id006 !ruby/object:Gem::Requirement
|
95
75
|
none: false
|
96
76
|
requirements:
|
97
77
|
- - ">="
|
98
78
|
- !ruby/object:Gem::Version
|
99
|
-
hash: 3
|
100
|
-
segments:
|
101
|
-
- 0
|
102
79
|
version: "0"
|
103
80
|
type: :development
|
104
81
|
version_requirements: *id006
|
82
|
+
- !ruby/object:Gem::Dependency
|
83
|
+
name: fakeweb
|
84
|
+
prerelease: false
|
85
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
86
|
+
none: false
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: "0"
|
91
|
+
type: :development
|
92
|
+
version_requirements: *id007
|
105
93
|
description: The goal of this gem is to allow the developer to use CadUn (a login webservice made by Globo.com) in any web app using OmniAuth
|
106
94
|
email:
|
107
95
|
- bruno@azisaka.com.br
|
@@ -119,13 +107,8 @@ files:
|
|
119
107
|
- README.md
|
120
108
|
- Rakefile
|
121
109
|
- lib/oa-cadun.rb
|
122
|
-
- lib/oa-cadun/gateway.rb
|
123
|
-
- lib/oa-cadun/user.rb
|
124
110
|
- lib/omni_auth/strategies/cadun.rb
|
125
|
-
- lib/version.rb
|
126
111
|
- oa-cadun.gemspec
|
127
|
-
- spec/oa-cadun/gateway_spec.rb
|
128
|
-
- spec/oa-cadun/user_spec.rb
|
129
112
|
- spec/omni_auth/strategies/cadun_spec.rb
|
130
113
|
- spec/spec_helper.rb
|
131
114
|
- spec/support/fixtures/autorizacao.xml
|
@@ -144,29 +127,21 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
144
127
|
requirements:
|
145
128
|
- - ">="
|
146
129
|
- !ruby/object:Gem::Version
|
147
|
-
hash: 3
|
148
|
-
segments:
|
149
|
-
- 0
|
150
130
|
version: "0"
|
151
131
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
152
132
|
none: false
|
153
133
|
requirements:
|
154
134
|
- - ">="
|
155
135
|
- !ruby/object:Gem::Version
|
156
|
-
hash: 3
|
157
|
-
segments:
|
158
|
-
- 0
|
159
136
|
version: "0"
|
160
137
|
requirements: []
|
161
138
|
|
162
139
|
rubyforge_project:
|
163
|
-
rubygems_version: 1.
|
140
|
+
rubygems_version: 1.6.2
|
164
141
|
signing_key:
|
165
142
|
specification_version: 3
|
166
143
|
summary: OmniAuth strategy for CadUn
|
167
144
|
test_files:
|
168
|
-
- spec/oa-cadun/gateway_spec.rb
|
169
|
-
- spec/oa-cadun/user_spec.rb
|
170
145
|
- spec/omni_auth/strategies/cadun_spec.rb
|
171
146
|
- spec/spec_helper.rb
|
172
147
|
- spec/support/fixtures/autorizacao.xml
|
data/lib/oa-cadun/gateway.rb
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
module OACadun
|
2
|
-
class Gateway
|
3
|
-
def initialize(glb_id, ip, service_id)
|
4
|
-
@glb_id, @ip, @service_id = glb_id, ip, service_id
|
5
|
-
end
|
6
|
-
|
7
|
-
def content
|
8
|
-
@content ||= Nokogiri::XML(resource).children
|
9
|
-
end
|
10
|
-
|
11
|
-
def authorization
|
12
|
-
@authorization ||= Nokogiri::XML(connection.put("/ws/rest/autorizacao", "<usuarioAutorizado><glbId>#{@glb_id}</glbId><ip>#{@ip}</ip><servicoID>#{@service_id}</servicoID></usuarioAutorizado>", {'Content-Type' => 'text/xml'}).body).children
|
13
|
-
end
|
14
|
-
|
15
|
-
def resource
|
16
|
-
@resource ||= connection.get("/cadunii/ws/resources/pessoa/#{authorization.xpath("usuarioID").text}", {'Content-Type' => 'text/xml'}).body
|
17
|
-
end
|
18
|
-
|
19
|
-
def connection
|
20
|
-
@connection ||= Net::HTTP.new(*(development? ? ["isp-authenticator.dev.globoi.com", 8280] : ["autenticacao.globo.com", 8080] ))
|
21
|
-
end
|
22
|
-
|
23
|
-
protected
|
24
|
-
def development?
|
25
|
-
if defined?(Rails)
|
26
|
-
Rails.env.development?
|
27
|
-
else
|
28
|
-
true
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
data/lib/oa-cadun/user.rb
DELETED
@@ -1,40 +0,0 @@
|
|
1
|
-
module OACadun
|
2
|
-
class User
|
3
|
-
attr_reader :gateway
|
4
|
-
|
5
|
-
{ "id" => "id",
|
6
|
-
"nome" => "name",
|
7
|
-
"emailPrincipal" => "email",
|
8
|
-
"sexo" => "gender",
|
9
|
-
"bairro" => "suburb",
|
10
|
-
"cidade/nome" => "city",
|
11
|
-
"estado/sigla" => "state",
|
12
|
-
"pais/nome" => "country" }.each do |path, method|
|
13
|
-
define_method(method) { gateway.content.xpath(path).text }
|
14
|
-
end
|
15
|
-
|
16
|
-
def initialize(glb_id, ip, service_id)
|
17
|
-
@gateway = Gateway.new(@glb_id, @ip, @service_id)
|
18
|
-
end
|
19
|
-
|
20
|
-
def address
|
21
|
-
"#{endereco}, #{numero}"
|
22
|
-
end
|
23
|
-
|
24
|
-
def birthday
|
25
|
-
Date.parse(dataNascimento)
|
26
|
-
end
|
27
|
-
|
28
|
-
def phone
|
29
|
-
"#{telefoneResidencialDdd} #{telefoneResidencial}"
|
30
|
-
end
|
31
|
-
|
32
|
-
def mobile
|
33
|
-
"#{telefoneCelularDdd} #{telefoneCelular}"
|
34
|
-
end
|
35
|
-
|
36
|
-
def method_missing(method)
|
37
|
-
gateway.content.xpath(method.to_s).text
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
data/lib/version.rb
DELETED
@@ -1,67 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe OACadun::Gateway do
|
4
|
-
subject { OACadun::Gateway.new("GLB_ID", "127.0.0.1", 2626) }
|
5
|
-
|
6
|
-
describe "#content" do
|
7
|
-
it "should parse the resource" do
|
8
|
-
connection = mock
|
9
|
-
response = mock
|
10
|
-
body = "<?xml version='1.0' encoding='utf-8'?><pessoa><nome>Barack Obama</nome></pessoa>"
|
11
|
-
mock(response).body { body }
|
12
|
-
|
13
|
-
mock(subject).authorization { Nokogiri::XML("<?xml version='1.0' encoding='utf-8'?><pessoa><usuarioID>1</usuarioID></pessoa>").children }
|
14
|
-
mock(connection).get("/cadunii/ws/resources/pessoa/1", {'Content-Type' => 'text/xml'}) { response }
|
15
|
-
mock(subject).connection { connection }
|
16
|
-
|
17
|
-
subject.content.xpath('nome').text.should == 'Barack Obama'
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
describe "#connection" do
|
22
|
-
context "when the environment is development" do
|
23
|
-
before { mock(subject).development? { true } }
|
24
|
-
|
25
|
-
it "should request from the development server" do
|
26
|
-
mock(Net::HTTP).new("isp-authenticator.dev.globoi.com", 8280)
|
27
|
-
subject.connection
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
context "when the environment is not development" do
|
32
|
-
before { mock(subject).development? { false } }
|
33
|
-
|
34
|
-
it "should request from the production server" do
|
35
|
-
mock(Net::HTTP).new("autenticacao.globo.com", 8080)
|
36
|
-
subject.connection
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
describe "#authorization" do
|
42
|
-
it "should parse the authorization request" do
|
43
|
-
connection = mock
|
44
|
-
response = mock
|
45
|
-
mock(response).body { "<?xml version='1.0' encoding='utf-8'?><pessoa><usuarioID>1</id></usuarioID>" }
|
46
|
-
mock(connection).put("/ws/rest/autorizacao", "<usuarioAutorizado><glbId>GLB_ID</glbId><ip>127.0.0.1</ip><servicoID>2626</servicoID></usuarioAutorizado>", {'Content-Type' => 'text/xml'}) { response }
|
47
|
-
mock(subject).connection { connection }
|
48
|
-
|
49
|
-
subject.authorization.xpath('usuarioID').text.should == '1'
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
describe "#resource" do
|
54
|
-
it "should parse the resource request" do
|
55
|
-
connection = mock
|
56
|
-
response = mock
|
57
|
-
body = "<?xml version='1.0' encoding='utf-8'?><pessoa><nome>Barack Obama</nome></pessoa>"
|
58
|
-
mock(response).body { body }
|
59
|
-
|
60
|
-
mock(subject).authorization { Nokogiri::XML("<?xml version='1.0' encoding='utf-8'?><pessoa><usuarioID>1</usuarioID></pessoa>").children }
|
61
|
-
mock(connection).get("/cadunii/ws/resources/pessoa/1", {'Content-Type' => 'text/xml'}) { response }
|
62
|
-
mock(subject).connection { connection }
|
63
|
-
|
64
|
-
subject.resource.should == body
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
data/spec/oa-cadun/user_spec.rb
DELETED
@@ -1,68 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe OACadun::User do
|
4
|
-
|
5
|
-
before { stub_requests }
|
6
|
-
|
7
|
-
subject { OACadun::User.new("GLB_ID", "127.0.0.1", 2626) }
|
8
|
-
|
9
|
-
describe "#id" do
|
10
|
-
it { subject.id.should == "21737810" }
|
11
|
-
end
|
12
|
-
|
13
|
-
describe "#name" do
|
14
|
-
it { subject.name.should == "Fabricio Rodrigo Lopes" }
|
15
|
-
end
|
16
|
-
|
17
|
-
describe "#birthday" do
|
18
|
-
it { subject.birthday.should == Date.new(1983, 02, 22) }
|
19
|
-
end
|
20
|
-
|
21
|
-
describe "#phone" do
|
22
|
-
it { subject.phone.should == "21 22881060" }
|
23
|
-
end
|
24
|
-
|
25
|
-
describe "#mobile" do
|
26
|
-
it { subject.mobile.should == "21 99999999" }
|
27
|
-
end
|
28
|
-
|
29
|
-
describe "#email" do
|
30
|
-
it { subject.email.should == "fab1@spam.la"}
|
31
|
-
end
|
32
|
-
|
33
|
-
describe "#gender" do
|
34
|
-
it { subject.gender.should == "MASCULINO" }
|
35
|
-
end
|
36
|
-
|
37
|
-
describe "#city" do
|
38
|
-
it { subject.city.should == "Rio de Janeiro"}
|
39
|
-
end
|
40
|
-
|
41
|
-
describe "#state" do
|
42
|
-
it { subject.state.should == "RJ" }
|
43
|
-
end
|
44
|
-
|
45
|
-
describe "#status" do
|
46
|
-
it { subject.status.should == "ATIVO" }
|
47
|
-
end
|
48
|
-
|
49
|
-
describe "#address" do
|
50
|
-
it { subject.address.should == "Rua Uruguai, 59"}
|
51
|
-
end
|
52
|
-
|
53
|
-
describe "#suburb" do
|
54
|
-
it { subject.suburb.should == "Andaraí" }
|
55
|
-
end
|
56
|
-
|
57
|
-
describe "#cpf" do
|
58
|
-
it { subject.cpf.should == "09532034765" }
|
59
|
-
end
|
60
|
-
|
61
|
-
describe "#login" do
|
62
|
-
it { subject.login.should == "fabricio_fab1" }
|
63
|
-
end
|
64
|
-
|
65
|
-
describe "#country" do
|
66
|
-
it { subject.country.should == "Brasil" }
|
67
|
-
end
|
68
|
-
end
|