singularity 0.0.6 → 0.0.7
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 +15 -0
- data/lib/assets/javascripts/singularity.js.erb +31 -18
- data/lib/singularity.rb +6 -5
- data/lib/singularity/password_hash.rb +1 -0
- data/lib/singularity/version.rb +1 -1
- data/singularity.gemspec +2 -2
- metadata +11 -24
- data/lib/warden/strategies/singularity.rb +0 -21
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
YTZmY2IxNDdmMzIyYTg2YjM2MGMxY2MwNDgwZTI3NjcwMzZiZWMzNQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
MzAyMWEyMjdlNWIzNGYyZGViOTU1ZTE3ZjQyOTg2ZTFkMzcwNTEwMg==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
ODk1MzdmM2FiMzNhMmJjZTk1NWNiZjk4ZDhlZjY3OTIwYjljMTMyMmRlODlm
|
10
|
+
ZjA0MTQxNjVjZjNhMTVkYTg2ODdlNjVkMDU0ZDc0YTNiMGI4Mjc3M2U2NTQ1
|
11
|
+
ZGFiOWMxNDgzNzU0YTJlYmU2YmQxNDExN2RkYjZhYzM4MzJkOWE=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
MTk0MDdmMGVkYjQ5ZmM1ZjJjYjhiNTZjN2UzZjRkODUxNDE0Y2MxODQ0N2Jh
|
14
|
+
NTVmODBjN2RhNDY2NjMxMTQwMjljMmRhYzk5OTQ1ZDQyZTA1MjcyZTJkNTE3
|
15
|
+
OTFjYTZkYTJmZjlkMTdjMDIxZThlN2E2YWZlZGJlMTJkYTAxODc=
|
@@ -8,39 +8,52 @@ var Singularity = (function () {
|
|
8
8
|
jQuery.extend( true, this, options );
|
9
9
|
}
|
10
10
|
|
11
|
-
this.init = function () {
|
12
|
-
this.logged_in
|
11
|
+
this.init = function ( command ) {
|
12
|
+
if ( this.logged_in === true )
|
13
|
+
if ( command === 'register' ) {
|
14
|
+
this.registerMasterAuth();
|
15
|
+
}
|
16
|
+
|
17
|
+
if ( this.logged_in === false )
|
18
|
+
if ( command === 'lookup' ) {
|
19
|
+
this.checkMasterAuth();
|
20
|
+
}
|
13
21
|
}
|
14
22
|
|
15
23
|
function login ( result ) {
|
16
|
-
|
17
|
-
$(Singularity).trigger('login.success');
|
18
|
-
else
|
19
|
-
$(Singularity).trigger('login.failure');
|
24
|
+
$(Singularity).trigger(result['logged_in'] ? 'login.success' : 'login.failure')
|
20
25
|
}
|
21
26
|
|
22
27
|
function register ( result ) {
|
23
|
-
|
24
|
-
$(Singularity).trigger('register.success');
|
25
|
-
else
|
26
|
-
$(Singularity).trigger('register.failure');
|
28
|
+
$(Singularity).trigger(result['logged_in'] ? 'register.success' : 'register.failure');
|
27
29
|
}
|
28
30
|
|
31
|
+
var xhr, timeout;
|
32
|
+
|
29
33
|
this.checkMasterAuth = function () {
|
30
|
-
|
31
|
-
|
34
|
+
$(this).trigger('lookup');
|
35
|
+
|
36
|
+
var url = this.master_auth + '/lookup?token=' + this.session_token + '&callback=?';
|
37
|
+
xhr = $.getJSON(url).then(login).fail(function () { $(Singularity).trigger('login.failure') });
|
38
|
+
timeout = setTimeout(requestTimeout, 5000);
|
39
|
+
|
40
|
+
return xhr;
|
41
|
+
}
|
42
|
+
|
43
|
+
function requestTimeout () {
|
44
|
+
if ( xhr.readyState !== 4 ) xhr.abort();
|
32
45
|
}
|
33
46
|
|
34
47
|
this.registerMasterAuth = function () {
|
35
|
-
|
36
|
-
|
48
|
+
$(this).trigger('register');
|
49
|
+
|
50
|
+
var url = this.master_auth + '/register?token=' + this.session_token + '&callback=?';
|
51
|
+
return xhr = $.getJSON(url).then(register).fail(function () { $(Singularity).trigger('register.failure') });
|
37
52
|
}
|
38
53
|
|
39
|
-
$(this).
|
40
|
-
|
41
|
-
});
|
54
|
+
$(this).on('login.success', function () { window.location.reload(true) });
|
55
|
+
$(this).on('login.success login.failure', function () { clearTimeout(timeout) });
|
42
56
|
|
43
57
|
return this;
|
44
58
|
|
45
59
|
}).apply({});
|
46
|
-
|
data/lib/singularity.rb
CHANGED
@@ -37,7 +37,8 @@ module Singularity
|
|
37
37
|
end
|
38
38
|
|
39
39
|
session_token = SecureRandom.hex(32)
|
40
|
-
token_expiration = options.fetch(:expires
|
40
|
+
token_expiration = options.fetch(:expires){ redis.ttl session_key(session_id) }
|
41
|
+
token_expiration = 1_800 if token_expiration < 1
|
41
42
|
|
42
43
|
redis.setex token_key(session_token), token_expiration, session_id
|
43
44
|
|
@@ -49,11 +50,11 @@ module Singularity
|
|
49
50
|
end
|
50
51
|
|
51
52
|
def session_key(id)
|
52
|
-
Singularity.session_prefix
|
53
|
+
Singularity.session_prefix ? "#{ Singularity.session_prefix }:#{ id }" : id
|
53
54
|
end
|
54
55
|
|
55
56
|
def token_key(token)
|
56
|
-
"#{Singularity.token_prefix}:#{token}"
|
57
|
+
"#{ Singularity.token_prefix }:#{ token }"
|
57
58
|
end
|
58
59
|
|
59
60
|
def find_session_id_by_token(session_token)
|
@@ -63,11 +64,11 @@ module Singularity
|
|
63
64
|
end
|
64
65
|
|
65
66
|
def fetch_key_from_session(session_id, key)
|
66
|
-
redis.hget session_key(session_id), key
|
67
|
+
redis.hget session_key(session_id), key if session_id
|
67
68
|
end
|
68
69
|
|
69
70
|
def store_key_in_session(session_id, key, value)
|
70
|
-
redis.hset session_key(session_id), key, value
|
71
|
+
redis.hset session_key(session_id), key, value if session_id
|
71
72
|
end
|
72
73
|
|
73
74
|
def destroy_session(*ids)
|
data/lib/singularity/version.rb
CHANGED
data/singularity.gemspec
CHANGED
@@ -15,8 +15,8 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.require_path = "lib"
|
16
16
|
|
17
17
|
s.add_dependency "redis-native_hash", ">= 0"
|
18
|
-
s.add_dependency "railties", "
|
19
|
-
s.add_dependency "jquery-rails"
|
18
|
+
s.add_dependency "railties", ">= 3.1"
|
19
|
+
s.add_dependency "jquery-rails"
|
20
20
|
|
21
21
|
s.add_development_dependency "bundler", "~> 1.0.0"
|
22
22
|
s.add_development_dependency "rspec", "~> 2.3.0"
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: singularity
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.7
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Carl Zulauf
|
@@ -10,12 +9,11 @@ authors:
|
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date: 2013-
|
12
|
+
date: 2013-12-07 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: redis-native_hash
|
17
16
|
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
17
|
requirements:
|
20
18
|
- - ! '>='
|
21
19
|
- !ruby/object:Gem::Version
|
@@ -23,7 +21,6 @@ dependencies:
|
|
23
21
|
type: :runtime
|
24
22
|
prerelease: false
|
25
23
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
24
|
requirements:
|
28
25
|
- - ! '>='
|
29
26
|
- !ruby/object:Gem::Version
|
@@ -31,39 +28,34 @@ dependencies:
|
|
31
28
|
- !ruby/object:Gem::Dependency
|
32
29
|
name: railties
|
33
30
|
requirement: !ruby/object:Gem::Requirement
|
34
|
-
none: false
|
35
31
|
requirements:
|
36
|
-
- -
|
32
|
+
- - ! '>='
|
37
33
|
- !ruby/object:Gem::Version
|
38
34
|
version: '3.1'
|
39
35
|
type: :runtime
|
40
36
|
prerelease: false
|
41
37
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
38
|
requirements:
|
44
|
-
- -
|
39
|
+
- - ! '>='
|
45
40
|
- !ruby/object:Gem::Version
|
46
41
|
version: '3.1'
|
47
42
|
- !ruby/object:Gem::Dependency
|
48
43
|
name: jquery-rails
|
49
44
|
requirement: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
45
|
requirements:
|
52
|
-
- -
|
46
|
+
- - ! '>='
|
53
47
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
48
|
+
version: '0'
|
55
49
|
type: :runtime
|
56
50
|
prerelease: false
|
57
51
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
-
none: false
|
59
52
|
requirements:
|
60
|
-
- -
|
53
|
+
- - ! '>='
|
61
54
|
- !ruby/object:Gem::Version
|
62
|
-
version: '
|
55
|
+
version: '0'
|
63
56
|
- !ruby/object:Gem::Dependency
|
64
57
|
name: bundler
|
65
58
|
requirement: !ruby/object:Gem::Requirement
|
66
|
-
none: false
|
67
59
|
requirements:
|
68
60
|
- - ~>
|
69
61
|
- !ruby/object:Gem::Version
|
@@ -71,7 +63,6 @@ dependencies:
|
|
71
63
|
type: :development
|
72
64
|
prerelease: false
|
73
65
|
version_requirements: !ruby/object:Gem::Requirement
|
74
|
-
none: false
|
75
66
|
requirements:
|
76
67
|
- - ~>
|
77
68
|
- !ruby/object:Gem::Version
|
@@ -79,7 +70,6 @@ dependencies:
|
|
79
70
|
- !ruby/object:Gem::Dependency
|
80
71
|
name: rspec
|
81
72
|
requirement: !ruby/object:Gem::Requirement
|
82
|
-
none: false
|
83
73
|
requirements:
|
84
74
|
- - ~>
|
85
75
|
- !ruby/object:Gem::Version
|
@@ -87,7 +77,6 @@ dependencies:
|
|
87
77
|
type: :development
|
88
78
|
prerelease: false
|
89
79
|
version_requirements: !ruby/object:Gem::Requirement
|
90
|
-
none: false
|
91
80
|
requirements:
|
92
81
|
- - ~>
|
93
82
|
- !ruby/object:Gem::Version
|
@@ -111,31 +100,29 @@ files:
|
|
111
100
|
- lib/singularity/engine.rb
|
112
101
|
- lib/singularity/password_hash.rb
|
113
102
|
- lib/singularity/version.rb
|
114
|
-
- lib/warden/strategies/singularity.rb
|
115
103
|
- singularity.gemspec
|
116
104
|
homepage: https://github.com/lyconic/singularity
|
117
105
|
licenses:
|
118
106
|
- MIT
|
107
|
+
metadata: {}
|
119
108
|
post_install_message:
|
120
109
|
rdoc_options: []
|
121
110
|
require_paths:
|
122
111
|
- lib
|
123
112
|
required_ruby_version: !ruby/object:Gem::Requirement
|
124
|
-
none: false
|
125
113
|
requirements:
|
126
114
|
- - ! '>='
|
127
115
|
- !ruby/object:Gem::Version
|
128
116
|
version: '0'
|
129
117
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
130
|
-
none: false
|
131
118
|
requirements:
|
132
119
|
- - ! '>='
|
133
120
|
- !ruby/object:Gem::Version
|
134
121
|
version: '0'
|
135
122
|
requirements: []
|
136
123
|
rubyforge_project:
|
137
|
-
rubygems_version: 1.
|
124
|
+
rubygems_version: 2.1.10
|
138
125
|
signing_key:
|
139
|
-
specification_version:
|
126
|
+
specification_version: 4
|
140
127
|
summary: multi-domain single sign on
|
141
128
|
test_files: []
|
@@ -1,21 +0,0 @@
|
|
1
|
-
module Warden
|
2
|
-
module Strategies
|
3
|
-
class Singularity < Base
|
4
|
-
def valid?
|
5
|
-
params["login"] || params["password"]
|
6
|
-
end
|
7
|
-
|
8
|
-
def authenticate!
|
9
|
-
IG::User.includes(:authorizations).find_by_login(params['login'].strip).tap do |user|
|
10
|
-
if user.try(:can_login?) && user.try(:password?, params['password'])
|
11
|
-
success! user
|
12
|
-
else
|
13
|
-
fail! 'Invalid username/password'
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
Warden::Strategies.add(:singularity, Warden::Strategies::Singularity)
|