warden-googleapps 0.0.1 → 0.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/README.md +54 -1
- data/Rakefile +8 -7
- data/lib/warden-googleapps.rb +1 -0
- data/lib/warden-googleapps/strategy.rb +4 -2
- data/lib/warden-googleapps/version.rb +5 -0
- metadata +6 -5
data/README.md
CHANGED
@@ -1,7 +1,60 @@
|
|
1
1
|
warden-googleapps
|
2
2
|
=================
|
3
3
|
|
4
|
-
A Warden middleware for google apps
|
4
|
+
A Warden middleware for google apps. It needs a little work but definitely authenticates you just fine in Rack apps.
|
5
|
+
|
6
|
+
Example
|
7
|
+
=======
|
8
|
+
|
9
|
+
module DirectoryAdmin
|
10
|
+
class App < Sinatra::Default
|
11
|
+
disable :show_errors
|
12
|
+
disable :show_exceptions
|
13
|
+
|
14
|
+
use Warden::Manager do |manager|
|
15
|
+
manager.default_strategies :google_apps
|
16
|
+
manager.failure_app = BadAuthentication
|
17
|
+
|
18
|
+
manager.config[:google_apps_domain] = 'example.org'
|
19
|
+
end
|
20
|
+
|
21
|
+
helpers do
|
22
|
+
def ensure_authenticated
|
23
|
+
unless env['warden'].authenticate!
|
24
|
+
throw(:warden)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def user
|
29
|
+
env['warden'].user
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
get '/' do
|
34
|
+
ensure_authenticated
|
35
|
+
haml "%h2= 'Hello There, #{user.full_name}!'"
|
36
|
+
end
|
37
|
+
|
38
|
+
get '/logout' do
|
39
|
+
env['warden'].logout
|
40
|
+
haml "%h2= 'Peace!'"
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
class BadAuthentication < Sinatra::Default
|
45
|
+
get '/unauthenticated' do
|
46
|
+
status 403
|
47
|
+
haml "%h3= 'Unable to authenticate, sorry bud.'"
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
|
53
|
+
Enabling on Google
|
54
|
+
==================
|
55
|
+
Be sure you have Federated Login using OpenID enabled under your Advanced Settings Tab
|
56
|
+
|
57
|
+

|
5
58
|
|
6
59
|
Developing
|
7
60
|
==========
|
data/Rakefile
CHANGED
@@ -3,6 +3,8 @@ require 'rubygems/specification'
|
|
3
3
|
require 'date'
|
4
4
|
require 'bundler'
|
5
5
|
|
6
|
+
require 'lib/warden-googleapps/version'
|
7
|
+
|
6
8
|
task :default => [:spec]
|
7
9
|
|
8
10
|
require 'spec/rake/spectask'
|
@@ -18,12 +20,12 @@ Spec::Rake::SpecTask.new do |t|
|
|
18
20
|
t.rcov_opts << '--sort' << 'coverage' << '--sort-reverse'
|
19
21
|
end
|
20
22
|
|
21
|
-
GEM
|
22
|
-
GEM_VERSION =
|
23
|
-
AUTHOR
|
24
|
-
EMAIL
|
25
|
-
HOMEPAGE
|
26
|
-
SUMMARY
|
23
|
+
GEM = "warden-googleapps"
|
24
|
+
GEM_VERSION = Warden::GoogleApps::VERSION
|
25
|
+
AUTHOR = "Corey Donohoe"
|
26
|
+
EMAIL = "atmos@atmos.org"
|
27
|
+
HOMEPAGE = "http://github.com/atmos/warden-googleapps"
|
28
|
+
SUMMARY = "A warden strategy to use Google's Federated OpenID with Google Apps"
|
27
29
|
|
28
30
|
spec = Gem::Specification.new do |s|
|
29
31
|
s.name = GEM
|
@@ -57,4 +59,3 @@ task :make_spec do
|
|
57
59
|
file.puts spec.to_ruby
|
58
60
|
end
|
59
61
|
end
|
60
|
-
|
data/lib/warden-googleapps.rb
CHANGED
@@ -12,5 +12,6 @@ module Warden
|
|
12
12
|
end
|
13
13
|
|
14
14
|
require File.dirname(__FILE__)+'/warden-googleapps/user'
|
15
|
+
require File.dirname(__FILE__)+'/warden-googleapps/version'
|
15
16
|
require File.dirname(__FILE__)+'/warden-googleapps/strategy'
|
16
17
|
require File.dirname(__FILE__)+'/warden-googleapps/gapps_openid'
|
@@ -38,9 +38,11 @@ Warden::Strategies.add(:google_apps) do
|
|
38
38
|
::OpenID::Store::Filesystem.new("#{Dir.tmpdir}/tmp/openid")
|
39
39
|
end
|
40
40
|
|
41
|
+
def domain
|
42
|
+
env['warden'].config[:google_apps_domain]
|
43
|
+
end
|
44
|
+
|
41
45
|
def open_id_endpoint
|
42
|
-
# TODO Get this exposed properly via warden
|
43
|
-
domain = env['warden'].instance_variable_get('@config')[:google_apps_domain]
|
44
46
|
'https://www.google.com/accounts/o8/site-xrds?hd=%s' % domain
|
45
47
|
end
|
46
48
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: warden-googleapps
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Corey Donohoe
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-01-
|
12
|
+
date: 2010-01-03 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -18,9 +18,9 @@ dependencies:
|
|
18
18
|
version_requirement:
|
19
19
|
version_requirements: !ruby/object:Gem::Requirement
|
20
20
|
requirements:
|
21
|
-
- -
|
21
|
+
- - ~>
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version:
|
23
|
+
version: 0.7.0
|
24
24
|
version:
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: sinatra
|
@@ -38,7 +38,7 @@ dependencies:
|
|
38
38
|
version_requirement:
|
39
39
|
version_requirements: !ruby/object:Gem::Requirement
|
40
40
|
requirements:
|
41
|
-
- -
|
41
|
+
- - ~>
|
42
42
|
- !ruby/object:Gem::Version
|
43
43
|
version: 2.1.6
|
44
44
|
version:
|
@@ -60,6 +60,7 @@ files:
|
|
60
60
|
- lib/warden-googleapps/gapps_openid.rb
|
61
61
|
- lib/warden-googleapps/strategy.rb
|
62
62
|
- lib/warden-googleapps/user.rb
|
63
|
+
- lib/warden-googleapps/version.rb
|
63
64
|
- lib/warden-googleapps.rb
|
64
65
|
has_rdoc: true
|
65
66
|
homepage: http://github.com/atmos/warden-googleapps
|