has_global_session 1.1.0 → 1.1.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/has_global_session.gemspec
CHANGED
@@ -7,13 +7,13 @@ spec = Gem::Specification.new do |s|
|
|
7
7
|
s.required_ruby_version = Gem::Requirement.new(">= 1.8.7")
|
8
8
|
|
9
9
|
s.name = 'has_global_session'
|
10
|
-
s.version = '1.1.
|
11
|
-
s.date = '2010-
|
10
|
+
s.version = '1.1.2'
|
11
|
+
s.date = '2010-10-29'
|
12
12
|
|
13
13
|
s.authors = ['Tony Spataro']
|
14
14
|
s.email = 'code@tracker.xeger.net'
|
15
15
|
s.homepage= 'http://github.com/xeger/has_global_session'
|
16
|
-
|
16
|
+
|
17
17
|
s.summary = %q{Secure single-domain session sharing plugin for Rails.}
|
18
18
|
s.description = %q{This plugin for Rails allows several web apps in an authentication domain to share session state, facilitating single sign-on in a distributed web app. It only provides session sharing and does not concern itself with authentication or replication of the user database.}
|
19
19
|
|
@@ -21,6 +21,8 @@ spec = Gem::Specification.new do |s|
|
|
21
21
|
s.add_runtime_dependency('json', [">= 1.1.7"])
|
22
22
|
s.add_runtime_dependency('activesupport', [">= 2.1.2"])
|
23
23
|
|
24
|
+
s.add_development_dependency('rake', ["~> 0.8.7"])
|
25
|
+
s.add_development_dependency('ruby-debug', ["~> 0.10.3"])
|
24
26
|
s.add_development_dependency('rspec', [">= 1.3.0"])
|
25
27
|
s.add_development_dependency('flexmock', [">= 0.8.6"])
|
26
28
|
s.add_development_dependency('actionpack', [">= 2.1.2"])
|
@@ -40,7 +40,7 @@ module HasGlobalSession
|
|
40
40
|
# In addition to having one section for each operating environment, the configuration
|
41
41
|
# file can specify a 'common' section for settings that apply
|
42
42
|
#
|
43
|
-
# === Lookup Mechanism
|
43
|
+
# === Lookup Mechanism
|
44
44
|
# When the code asks for +Configuration['foo']+, we first check whether the current
|
45
45
|
# environment's config section has a value for foo. If one is found, we return that.
|
46
46
|
#
|
@@ -62,9 +62,10 @@ module HasGlobalSession
|
|
62
62
|
# MissingConfiguration:: if config file is missing or unreadable
|
63
63
|
# TypeError:: if config file does not contain a YAML-serialized Hash
|
64
64
|
def initialize(config_file, environment)
|
65
|
-
|
66
|
-
@config = YAML.load(File.read(config_file))
|
65
|
+
@config_file = config_file
|
67
66
|
@environment = environment
|
67
|
+
raise MissingConfiguration, "Missing or unreadable configuration file" unless File.readable?(@config_file)
|
68
|
+
@config = YAML.load(File.read(@config_file))
|
68
69
|
raise TypeError, "#{config_file} must contain a Hash!" unless Hash === @config
|
69
70
|
validate
|
70
71
|
end
|
@@ -83,17 +84,30 @@ module HasGlobalSession
|
|
83
84
|
end
|
84
85
|
|
85
86
|
def validate # :nodoc
|
86
|
-
['attributes/signed', 'integrated', 'cookie/name',
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
87
|
+
['attributes/signed', 'integrated', 'cookie/name',
|
88
|
+
'timeout'].each {|k| validate_presence_of k}
|
89
|
+
end
|
90
|
+
|
91
|
+
protected
|
92
|
+
|
93
|
+
# Helper method to check the presence of a key. Used in #validate.
|
94
|
+
#
|
95
|
+
# === Parameters
|
96
|
+
# key(String):: key name; for nested hashes, separate keys with /
|
97
|
+
#
|
98
|
+
# === Return
|
99
|
+
# true always
|
100
|
+
def validate_presence_of(key)
|
101
|
+
elements = key.split '/'
|
102
|
+
object = get(elements.shift, false)
|
103
|
+
elements.each do |element|
|
104
|
+
object = object[element] if object
|
105
|
+
if object.nil?
|
106
|
+
msg = "#{File.basename(@config_file)} does not specify required element #{elements.map { |x| "['#{x}']"}.join('')}"
|
107
|
+
raise MissingConfiguration, msg
|
95
108
|
end
|
96
109
|
end
|
110
|
+
true
|
97
111
|
end
|
98
112
|
|
99
113
|
private
|
@@ -108,5 +122,5 @@ module HasGlobalSession
|
|
108
122
|
rescue NoMethodError
|
109
123
|
raise MissingConfiguration, "Configuration key '#{key}' not found"
|
110
124
|
end
|
111
|
-
end
|
112
|
-
end
|
125
|
+
end
|
126
|
+
end
|
@@ -7,7 +7,6 @@ module HasGlobalSession
|
|
7
7
|
unless @global_session_config
|
8
8
|
config_file = File.join(RAILS_ROOT, 'config', 'global_session.yml')
|
9
9
|
@global_session_config = HasGlobalSession::Configuration.new(config_file, RAILS_ENV)
|
10
|
-
@global_session_config.config_file = config_file
|
11
10
|
end
|
12
11
|
|
13
12
|
return @global_session_config
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: has_global_session
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 1.1.
|
9
|
+
- 2
|
10
|
+
version: 1.1.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Tony Spataro
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-
|
18
|
+
date: 2010-10-29 00:00:00 -07:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -67,9 +67,41 @@ dependencies:
|
|
67
67
|
type: :runtime
|
68
68
|
version_requirements: *id003
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: rake
|
71
71
|
prerelease: false
|
72
72
|
requirement: &id004 !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
hash: 49
|
78
|
+
segments:
|
79
|
+
- 0
|
80
|
+
- 8
|
81
|
+
- 7
|
82
|
+
version: 0.8.7
|
83
|
+
type: :development
|
84
|
+
version_requirements: *id004
|
85
|
+
- !ruby/object:Gem::Dependency
|
86
|
+
name: ruby-debug
|
87
|
+
prerelease: false
|
88
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ~>
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
hash: 49
|
94
|
+
segments:
|
95
|
+
- 0
|
96
|
+
- 10
|
97
|
+
- 3
|
98
|
+
version: 0.10.3
|
99
|
+
type: :development
|
100
|
+
version_requirements: *id005
|
101
|
+
- !ruby/object:Gem::Dependency
|
102
|
+
name: rspec
|
103
|
+
prerelease: false
|
104
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
73
105
|
none: false
|
74
106
|
requirements:
|
75
107
|
- - ">="
|
@@ -81,11 +113,11 @@ dependencies:
|
|
81
113
|
- 0
|
82
114
|
version: 1.3.0
|
83
115
|
type: :development
|
84
|
-
version_requirements: *
|
116
|
+
version_requirements: *id006
|
85
117
|
- !ruby/object:Gem::Dependency
|
86
118
|
name: flexmock
|
87
119
|
prerelease: false
|
88
|
-
requirement: &
|
120
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
89
121
|
none: false
|
90
122
|
requirements:
|
91
123
|
- - ">="
|
@@ -97,11 +129,11 @@ dependencies:
|
|
97
129
|
- 6
|
98
130
|
version: 0.8.6
|
99
131
|
type: :development
|
100
|
-
version_requirements: *
|
132
|
+
version_requirements: *id007
|
101
133
|
- !ruby/object:Gem::Dependency
|
102
134
|
name: actionpack
|
103
135
|
prerelease: false
|
104
|
-
requirement: &
|
136
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
105
137
|
none: false
|
106
138
|
requirements:
|
107
139
|
- - ">="
|
@@ -113,7 +145,7 @@ dependencies:
|
|
113
145
|
- 2
|
114
146
|
version: 2.1.2
|
115
147
|
type: :development
|
116
|
-
version_requirements: *
|
148
|
+
version_requirements: *id008
|
117
149
|
description: This plugin for Rails allows several web apps in an authentication domain to share session state, facilitating single sign-on in a distributed web app. It only provides session sharing and does not concern itself with authentication or replication of the user database.
|
118
150
|
email: code@tracker.xeger.net
|
119
151
|
executables: []
|