omni_auth_passaporte_web 0.0.1.pre

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/.gitignore ADDED
@@ -0,0 +1,2 @@
1
+ pkg
2
+ .rvmrc
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in kumade.gemspec
4
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,48 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ omni_auth_passaporte_web (0.0.1.pre)
5
+ oa-oauth (= 0.2.6)
6
+
7
+ GEM
8
+ remote: http://rubygems.org/
9
+ specs:
10
+ addressable (2.2.6)
11
+ diff-lcs (1.1.2)
12
+ faraday (0.6.1)
13
+ addressable (~> 2.2.4)
14
+ multipart-post (~> 1.1.0)
15
+ rack (>= 1.1.0, < 2)
16
+ multi_json (1.0.3)
17
+ multi_xml (0.2.2)
18
+ multipart-post (1.1.3)
19
+ oa-core (0.2.6)
20
+ oa-oauth (0.2.6)
21
+ faraday (~> 0.6.1)
22
+ multi_json (~> 1.0.0)
23
+ multi_xml (~> 0.2.2)
24
+ oa-core (= 0.2.6)
25
+ oauth (~> 0.4.0)
26
+ oauth2 (~> 0.4.1)
27
+ oauth (0.4.5)
28
+ oauth2 (0.4.1)
29
+ faraday (~> 0.6.1)
30
+ multi_json (>= 0.0.5)
31
+ rack (1.3.5)
32
+ rake (0.8.4)
33
+ rspec (2.6.0)
34
+ rspec-core (~> 2.6.0)
35
+ rspec-expectations (~> 2.6.0)
36
+ rspec-mocks (~> 2.6.0)
37
+ rspec-core (2.6.4)
38
+ rspec-expectations (2.6.0)
39
+ diff-lcs (~> 1.1.2)
40
+ rspec-mocks (2.6.0)
41
+
42
+ PLATFORMS
43
+ ruby
44
+
45
+ DEPENDENCIES
46
+ omni_auth_passaporte_web!
47
+ rake (= 0.8.4)
48
+ rspec (= 2.6.0)
data/Rakefile ADDED
@@ -0,0 +1,7 @@
1
+ # encoding: utf-8
2
+ require 'bundler'
3
+
4
+ Bundler::GemHelper.install_tasks
5
+ require 'rspec/core/rake_task'
6
+ RSpec::Core::RakeTask.new(:spec)
7
+ task :default => :spec
@@ -0,0 +1,54 @@
1
+ require 'omniauth/oauth'
2
+ require 'multi_json'
3
+
4
+ module OmniAuth
5
+ module Strategies
6
+ #
7
+ # Authenticate to Myfcid via OAuth and retrieve an access token for API usage
8
+ #
9
+ # Usage:
10
+ #
11
+ # use OmniAuth::Strategies::Myfcid, 'consumerkey', 'consumersecret', {:site=> 'http://stage.id.myfreecomm.com.br'}
12
+ #
13
+ class PassaporteWeb < OmniAuth::Strategies::OAuth
14
+ def initialize(app, consumer_key, consumer_secret, options = {})
15
+ @site = options.delete(:site) || 'https://sandbox.app.passaporteweb.com.br'
16
+ super(app, :myfcid, consumer_key, consumer_secret,
17
+ options.merge({:site => @site ,
18
+ :request_token_path => "/sso/initiate",
19
+ :authorize_path => "/sso/authorize",
20
+ :access_token_path => "/sso/token",
21
+ :signature_method => "PLAINTEXT"
22
+ }))
23
+ end
24
+
25
+ def auth_hash
26
+ OmniAuth::Utils.deep_merge(super, {
27
+ 'uid' => user_data['uuid'],
28
+ 'user_info' => user_info,
29
+ 'extra' => {
30
+ 'user_hash' => user_data
31
+ }
32
+ })
33
+ end
34
+
35
+ protected
36
+
37
+ def user_data
38
+ @result ||= @access_token.post('/sso/fetchuserdata', nil)
39
+ @data ||= MultiJson.decode(@result.body)
40
+ end
41
+
42
+ def user_info
43
+ {
44
+ 'nickname' => user_data['nickname'],
45
+ 'email' => user_data['email'],
46
+ 'first_name' => user_data['first_name'],
47
+ 'last_name' => user_data['last_name'],
48
+ 'name' => [user_data['first_name'], user_data['last_name']].join(' ').strip,
49
+ }
50
+ end
51
+
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,7 @@
1
+ $:.unshift(File.dirname(__FILE__))
2
+
3
+ gem 'oa-oauth', '0.2.6'
4
+
5
+ require 'omniauth/oauth'
6
+ require 'oauth/signature/plaintext'
7
+ require 'omni_auth_passaporte_web/passaporte_web'
@@ -0,0 +1,19 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = %q{omni_auth_passaporte_web}
6
+ s.version = "0.0.1.pre"
7
+ s.authors = ["Marcos Tapajos"]
8
+ s.email = ["marcos@tapajos.me"]
9
+ s.homepage = %q{http://myfreecomm.com.br}
10
+ s.summary = %q{Autenticação via SSO usando o Passaporte Web}
11
+ s.description = s.summary
12
+ s.files = `git ls-files`.split("\n")
13
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
14
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
15
+ s.require_paths = ["lib"]
16
+ s.add_dependency('oa-oauth', '0.2.6')
17
+ s.add_development_dependency('rspec', '2.6.0')
18
+ s.add_development_dependency('rake', '0.8.4')
19
+ end
@@ -0,0 +1,41 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe OmniAuth::Strategies::Myfcid do
4
+
5
+ before(:each) do
6
+ @access_token_mock = mock("AccessToken")
7
+ @myfc_id = OmniAuth::Strategies::Myfcid.new("my_sample_app", "my_consumer_key", "my_consumer_secret")
8
+ @myfc_id.instance_variable_set(:@access_token, @access_token_mock)
9
+ end
10
+
11
+ it "should set consumer options" do
12
+ @myfc_id.instance_variable_get(:@consumer).options.should == {:request_token_path=>"/sso/initiate",
13
+ :proxy=>nil,
14
+ :http_method=>:post,
15
+ :signature_method=>"PLAINTEXT",
16
+ :authorize_path=>"/sso/authorize",
17
+ :oauth_version=>"1.0",
18
+ :access_token_path=>"/sso/token",
19
+ :scheme=>:header,
20
+ :site=>"https://id.myfreecomm.com.br"}
21
+ end
22
+
23
+ describe ".auth_hash" do
24
+
25
+ it "should return auth_hash using server" do
26
+ @access_token_mock.should_receive(:token).and_return("token")
27
+ @access_token_mock.should_receive(:secret).and_return("secret")
28
+ @access_token_mock.should_receive(:post).with("/sso/fetchuserdata", nil).once.and_return(mock(:body => "{\"nickname\":\"nick\",\"last_name\":\"Tapajos\",\"email\":\"mail\",\"first_name\":\"Marcos\"}"))
29
+ @myfc_id.auth_hash.should == {
30
+ "user_info"=>{"name"=>"Marcos Tapajos", "nickname"=>"nick", "last_name"=>"Tapajos", "first_name"=>"Marcos", "email"=>"mail"},
31
+ "uid"=>nil,
32
+ "credentials"=>{"token"=>"token", "secret"=>"secret"},
33
+ "extra"=>{"user_hash"=>{"nickname"=>"nick", "last_name"=>"Tapajos", "first_name"=>"Marcos", "email"=>"mail"},
34
+ "access_token"=>@access_token_mock},
35
+ "provider"=>"myfcid"
36
+ }
37
+ end
38
+
39
+ end
40
+
41
+ end
data/spec/spec.opts ADDED
@@ -0,0 +1,7 @@
1
+ --colour
2
+ --format
3
+ progress
4
+ --loadby
5
+ mtime
6
+ --reverse
7
+ -rubygems
@@ -0,0 +1 @@
1
+ require File.dirname(__FILE__) + '/../lib/omni_auth_myfc_id'
metadata ADDED
@@ -0,0 +1,94 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: omni_auth_passaporte_web
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1.pre
5
+ prerelease: 6
6
+ platform: ruby
7
+ authors:
8
+ - Marcos Tapajos
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-10-24 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: oa-oauth
16
+ requirement: &70136159887600 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - =
20
+ - !ruby/object:Gem::Version
21
+ version: 0.2.6
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70136159887600
25
+ - !ruby/object:Gem::Dependency
26
+ name: rspec
27
+ requirement: &70136159886340 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - =
31
+ - !ruby/object:Gem::Version
32
+ version: 2.6.0
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70136159886340
36
+ - !ruby/object:Gem::Dependency
37
+ name: rake
38
+ requirement: &70136159885300 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - =
42
+ - !ruby/object:Gem::Version
43
+ version: 0.8.4
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *70136159885300
47
+ description: Autenticação via SSO usando o Passaporte Web
48
+ email:
49
+ - marcos@tapajos.me
50
+ executables: []
51
+ extensions: []
52
+ extra_rdoc_files: []
53
+ files:
54
+ - .gitignore
55
+ - Gemfile
56
+ - Gemfile.lock
57
+ - Rakefile
58
+ - lib/omni_auth_passaporte_web.rb
59
+ - lib/omni_auth_passaporte_web/passaporte_web.rb
60
+ - omni_auth_passaporte_web.gemspec
61
+ - spec/omni_auth_myfc_id/myfc_id_spec.rb
62
+ - spec/spec.opts
63
+ - spec/spec_helper.rb
64
+ homepage: http://myfreecomm.com.br
65
+ licenses: []
66
+ post_install_message:
67
+ rdoc_options: []
68
+ require_paths:
69
+ - lib
70
+ required_ruby_version: !ruby/object:Gem::Requirement
71
+ none: false
72
+ requirements:
73
+ - - ! '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ segments:
77
+ - 0
78
+ hash: 3519927953676899148
79
+ required_rubygems_version: !ruby/object:Gem::Requirement
80
+ none: false
81
+ requirements:
82
+ - - ! '>'
83
+ - !ruby/object:Gem::Version
84
+ version: 1.3.1
85
+ requirements: []
86
+ rubyforge_project:
87
+ rubygems_version: 1.8.10
88
+ signing_key:
89
+ specification_version: 3
90
+ summary: Autenticação via SSO usando o Passaporte Web
91
+ test_files:
92
+ - spec/omni_auth_myfc_id/myfc_id_spec.rb
93
+ - spec/spec.opts
94
+ - spec/spec_helper.rb