openid-store-mongoid 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +6 -5
- data/Gemfile.lock +4 -1
- data/Rakefile +2 -9
- data/VERSION +1 -1
- data/lib/openid/store/models/association.rb +3 -0
- data/lib/openid/store/models/nonce.rb +1 -0
- data/lib/openid/store/mongoid_store.rb +19 -3
- data/openid-store-mongoid.gemspec +8 -5
- metadata +22 -6
data/Gemfile
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
source
|
1
|
+
source 'http://rubygems.org'
|
2
2
|
|
3
3
|
ruby '1.9.3'
|
4
4
|
|
@@ -6,8 +6,9 @@ gem 'mongoid', '~>3.1'
|
|
6
6
|
gem 'ruby-openid', '~>2.2.3'
|
7
7
|
|
8
8
|
group :development, :test do
|
9
|
-
gem
|
10
|
-
gem
|
11
|
-
gem
|
12
|
-
gem
|
9
|
+
gem 'rspec', '~> 2.8'
|
10
|
+
gem 'yard', '~> 0.8'
|
11
|
+
gem 'redcarpet', '~> 2.2'
|
12
|
+
gem 'bundler', '~> 1.0'
|
13
|
+
gem 'jeweler', '~> 1.8.4'
|
13
14
|
end
|
data/Gemfile.lock
CHANGED
@@ -28,6 +28,7 @@ GEM
|
|
28
28
|
rake (10.0.3)
|
29
29
|
rdoc (3.12.1)
|
30
30
|
json (~> 1.4)
|
31
|
+
redcarpet (2.2.2)
|
31
32
|
rspec (2.12.0)
|
32
33
|
rspec-core (~> 2.12.0)
|
33
34
|
rspec-expectations (~> 2.12.0)
|
@@ -38,6 +39,7 @@ GEM
|
|
38
39
|
rspec-mocks (2.12.2)
|
39
40
|
ruby-openid (2.2.3)
|
40
41
|
tzinfo (0.3.35)
|
42
|
+
yard (0.8.4.1)
|
41
43
|
|
42
44
|
PLATFORMS
|
43
45
|
ruby
|
@@ -46,6 +48,7 @@ DEPENDENCIES
|
|
46
48
|
bundler (~> 1.0)
|
47
49
|
jeweler (~> 1.8.4)
|
48
50
|
mongoid (~> 3.1)
|
49
|
-
|
51
|
+
redcarpet (~> 2.2)
|
50
52
|
rspec (~> 2.8)
|
51
53
|
ruby-openid (~> 2.2.3)
|
54
|
+
yard (~> 0.8)
|
data/Rakefile
CHANGED
@@ -35,12 +35,5 @@ task :default => :spec
|
|
35
35
|
|
36
36
|
task :test => :spec
|
37
37
|
|
38
|
-
require '
|
39
|
-
Rake::
|
40
|
-
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
41
|
-
|
42
|
-
rdoc.rdoc_dir = 'rdoc'
|
43
|
-
rdoc.title = "temp #{version}"
|
44
|
-
rdoc.rdoc_files.include('README*')
|
45
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
46
|
-
end
|
38
|
+
require 'yard'
|
39
|
+
YARD::Rake::YardocTask.new
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.2
|
@@ -2,10 +2,13 @@ require 'mongoid'
|
|
2
2
|
require 'openid/association'
|
3
3
|
|
4
4
|
module OpenID::Store
|
5
|
+
# Wrapper class for an OpenID::Association object.
|
5
6
|
class Association
|
6
7
|
include Mongoid::Document
|
7
8
|
field :secret, :type => Moped::BSON::Binary
|
8
9
|
|
10
|
+
# Create an OpenID::Association object from this object.
|
11
|
+
# @return [OpenID::Association] Child object created from this document.
|
9
12
|
def from_record
|
10
13
|
OpenID::Association.new(handle, secret.to_s, Time.at(issued), lifetime, assoc_type)
|
11
14
|
end
|
@@ -5,13 +5,22 @@ require 'moped/bson/binary'
|
|
5
5
|
require 'openid/store/models/nonce'
|
6
6
|
require 'openid/store/models/association'
|
7
7
|
|
8
|
+
# Module OpenID::Store is used for all OpenID Store types. Also helps distinguishes
|
9
|
+
# the Association/Nonce wrappers from OpenID::Association and OpenID::Nonce.
|
8
10
|
module OpenID::Store
|
11
|
+
# OpenID Store class which uses Mongoid to store and access Association and Nonce data.
|
9
12
|
class MongoidStore < OpenID::Store::Interface
|
13
|
+
# Cleans up any expired Nonce and Association data
|
14
|
+
# @note Not run as part of the normal process, must be run manually if desired.
|
10
15
|
def self.cleanup
|
11
16
|
cleanup_nonces
|
12
17
|
cleanup_associations
|
13
18
|
end
|
14
19
|
|
20
|
+
# Gets the Association for the given server url and handle.
|
21
|
+
# @param [String] server_url URL of the server making the request
|
22
|
+
# @param handle The handle associated with the Association
|
23
|
+
# @note Called internally by OpenID.
|
15
24
|
def get_association(server_url, handle = nil)
|
16
25
|
assns = query_associations(server_url, handle)
|
17
26
|
|
@@ -27,11 +36,13 @@ module OpenID::Store
|
|
27
36
|
return nil
|
28
37
|
end
|
29
38
|
|
39
|
+
# Stores an Association for the given server url and OpenID::Association.
|
40
|
+
# @param [String] server_url URL of the server making the request
|
41
|
+
# @param [OpenID::Association] assoc Object to use to create Association
|
42
|
+
# @note Called internally by OpenID.
|
30
43
|
def store_association(server_url, assoc)
|
31
44
|
remove_association(server_url, assoc.handle)
|
32
45
|
|
33
|
-
# BSON::Binary is used because secrets raise an exception
|
34
|
-
# due to character encoding
|
35
46
|
Association.create(:server_url => server_url,
|
36
47
|
:handle => assoc.handle,
|
37
48
|
:secret => Moped::BSON::Binary.new(:generic, assoc.secret),
|
@@ -40,6 +51,11 @@ module OpenID::Store
|
|
40
51
|
:assoc_type => assoc.assoc_type)
|
41
52
|
end
|
42
53
|
|
54
|
+
# Creates a Nonce for the given information.
|
55
|
+
# @param [String] server_url URL of the server making the request
|
56
|
+
# @param timestamp Time the Nonce was created.
|
57
|
+
# @param [String] salt Random string to uniquify Nonces.
|
58
|
+
# @return True if the given nonce has not been created before and the timestamp is valid, False otherwise.
|
43
59
|
def use_nonce(server_url, timestamp, salt)
|
44
60
|
return false if any_nonces?(server_url, timestamp, salt) || delta_beyond_skew?(timestamp)
|
45
61
|
Nonce.create(:server_url => server_url, :timestamp => timestamp, :salt => salt)
|
@@ -76,7 +92,7 @@ module OpenID::Store
|
|
76
92
|
end
|
77
93
|
|
78
94
|
def self.cleanup_associations
|
79
|
-
Association.for_js("(this.issued + this.lifetime)
|
95
|
+
Association.for_js("(this.issued + this.lifetime) < ti", ti: Time.now.to_i).delete
|
80
96
|
end
|
81
97
|
end
|
82
98
|
end
|
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "openid-store-mongoid"
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Larry Price"]
|
12
|
-
s.date = "2013-02-
|
12
|
+
s.date = "2013-02-27"
|
13
13
|
s.description = "Use a Mongoid database to store OpenID consumer data."
|
14
14
|
s.email = "larry.price.dev@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -46,14 +46,16 @@ Gem::Specification.new do |s|
|
|
46
46
|
s.add_runtime_dependency(%q<mongoid>, ["~> 3.1"])
|
47
47
|
s.add_runtime_dependency(%q<ruby-openid>, ["~> 2.2.3"])
|
48
48
|
s.add_development_dependency(%q<rspec>, ["~> 2.8"])
|
49
|
-
s.add_development_dependency(%q<
|
49
|
+
s.add_development_dependency(%q<yard>, ["~> 0.8"])
|
50
|
+
s.add_development_dependency(%q<redcarpet>, ["~> 2.2"])
|
50
51
|
s.add_development_dependency(%q<bundler>, ["~> 1.0"])
|
51
52
|
s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
|
52
53
|
else
|
53
54
|
s.add_dependency(%q<mongoid>, ["~> 3.1"])
|
54
55
|
s.add_dependency(%q<ruby-openid>, ["~> 2.2.3"])
|
55
56
|
s.add_dependency(%q<rspec>, ["~> 2.8"])
|
56
|
-
s.add_dependency(%q<
|
57
|
+
s.add_dependency(%q<yard>, ["~> 0.8"])
|
58
|
+
s.add_dependency(%q<redcarpet>, ["~> 2.2"])
|
57
59
|
s.add_dependency(%q<bundler>, ["~> 1.0"])
|
58
60
|
s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
|
59
61
|
end
|
@@ -61,7 +63,8 @@ Gem::Specification.new do |s|
|
|
61
63
|
s.add_dependency(%q<mongoid>, ["~> 3.1"])
|
62
64
|
s.add_dependency(%q<ruby-openid>, ["~> 2.2.3"])
|
63
65
|
s.add_dependency(%q<rspec>, ["~> 2.8"])
|
64
|
-
s.add_dependency(%q<
|
66
|
+
s.add_dependency(%q<yard>, ["~> 0.8"])
|
67
|
+
s.add_dependency(%q<redcarpet>, ["~> 2.2"])
|
65
68
|
s.add_dependency(%q<bundler>, ["~> 1.0"])
|
66
69
|
s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
|
67
70
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: openid-store-mongoid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-02-
|
12
|
+
date: 2013-02-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: mongoid
|
@@ -60,13 +60,13 @@ dependencies:
|
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '2.8'
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
|
-
name:
|
63
|
+
name: yard
|
64
64
|
requirement: !ruby/object:Gem::Requirement
|
65
65
|
none: false
|
66
66
|
requirements:
|
67
67
|
- - ~>
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: '
|
69
|
+
version: '0.8'
|
70
70
|
type: :development
|
71
71
|
prerelease: false
|
72
72
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -74,7 +74,23 @@ dependencies:
|
|
74
74
|
requirements:
|
75
75
|
- - ~>
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version: '
|
77
|
+
version: '0.8'
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: redcarpet
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ~>
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '2.2'
|
86
|
+
type: :development
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ~>
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '2.2'
|
78
94
|
- !ruby/object:Gem::Dependency
|
79
95
|
name: bundler
|
80
96
|
requirement: !ruby/object:Gem::Requirement
|
@@ -145,7 +161,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
145
161
|
version: '0'
|
146
162
|
segments:
|
147
163
|
- 0
|
148
|
-
hash: -
|
164
|
+
hash: -1746080449216916929
|
149
165
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
150
166
|
none: false
|
151
167
|
requirements:
|