browserid-provider 0.5.1 → 0.5.3
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.
@@ -3,7 +3,7 @@
|
|
3
3
|
<head>
|
4
4
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
5
5
|
<script type="text/javascript" src="https://<%= @vars[:browserid_url] %>/provisioning_api.js"></script>
|
6
|
-
<script type="text/javascript" src="
|
6
|
+
<script type="text/javascript" src="<%= @vars[:jquery_path] %>"></script>
|
7
7
|
<script type="text/javascript">
|
8
8
|
// an alias
|
9
9
|
var fail = navigator.id.raiseProvisioningFailure;
|
@@ -9,6 +9,8 @@ module BrowserID
|
|
9
9
|
# defaults to: "/browserid/certify"
|
10
10
|
# whoami_path What HTTP path to serve user credentials at
|
11
11
|
# defaults to: "/browserid/whoami"
|
12
|
+
# jquery_path What HTTP path JQuery is served at
|
13
|
+
# defaults to: "/assets/jquery.js"
|
12
14
|
#
|
13
15
|
# whoami Name of the middleware to get the current user object from (:user must respond to :email method)
|
14
16
|
# This middleware will be called as follows: env['warden'].user.email
|
@@ -20,9 +22,9 @@ module BrowserID
|
|
20
22
|
# The "/.well-known/browserid" path is required from the BrowserID spec and used here.
|
21
23
|
#
|
22
24
|
# browserid_url Which BrowserID server to use, ca be one of the following:
|
23
|
-
# * dev.
|
24
|
-
# *
|
25
|
-
# * browserid.org
|
25
|
+
# * login.dev.anosrep.org for development (default)
|
26
|
+
# * login.anosrep.org for beta
|
27
|
+
# * browserid.org for production
|
26
28
|
#
|
27
29
|
# server_name The domain name we are providing BrowserID for (default to example.org)
|
28
30
|
#
|
@@ -66,9 +68,10 @@ module BrowserID
|
|
66
68
|
self[:provision_path] ||= "/browserid/provision"
|
67
69
|
self[:certify_path] ||= "/browserid/certify"
|
68
70
|
self[:whoami_path] ||= "/browserid/whoami"
|
71
|
+
self[:jquery_path] ||= "/assets/jquery.js"
|
69
72
|
self[:whoami] ||= "warden"
|
70
73
|
self[:private_key_path] ||= "config/browserid_provider.pem"
|
71
|
-
self[:browserid_url] ||= "dev.
|
74
|
+
self[:browserid_url] ||= "login.dev.anosrep.org"
|
72
75
|
self[:server_name] ||= "example.org"
|
73
76
|
self[:delegates] ||= []
|
74
77
|
end
|
@@ -72,15 +72,25 @@ module BrowserID
|
|
72
72
|
return err "Missing a required parameter (duration, pubkey)" if params.keys.sort != ["duration", "pubkey"]
|
73
73
|
|
74
74
|
expiration = (Time.now.strftime("%s").to_i + params["duration"].to_i) * 1000
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
"principal" => { "email"=> email }
|
75
|
+
|
76
|
+
# Old certificate structure, changed to fit with https://github.com/mozilla/browserid-certifier/blob/master/bin/certifier#L51
|
77
|
+
# issue = {
|
78
|
+
# "principal" => { "email"=> email }
|
79
|
+
# "hostname" => issuer(email),
|
80
|
+
# "exp" => expiration,
|
81
|
+
# "public-key" => params["pubkey"],
|
82
|
+
# }
|
83
|
+
issue = {
|
84
|
+
"email"=> email,
|
85
|
+
"pubkey" => params["pubkey"],
|
86
|
+
"duration" => expiration,
|
87
|
+
"hostname" => issuer(email)
|
79
88
|
}
|
89
|
+
|
80
90
|
jwt = JSON::JWT.new(issue)
|
81
91
|
jws = jwt.sign(@identity.private_key, :RS256)
|
82
92
|
|
83
|
-
return [ 200, {"Content-Type" => "application/json"}, [{ "cert" => jws.to_s }.to_json] ]
|
93
|
+
return [ 200, {"Content-Type" => "application/json"}, [{"success" => true, "cert" => jws.to_s }.to_json] ]
|
84
94
|
end
|
85
95
|
|
86
96
|
# Something went wrong.
|
@@ -10,7 +10,23 @@ module BrowserId
|
|
10
10
|
|
11
11
|
# JavaScript enable BrowserID authentication for the form with the given #id
|
12
12
|
def enable_browserid_javascript_tag(id)
|
13
|
-
raw
|
13
|
+
raw <<EOF
|
14
|
+
<script type='text/javascript'>
|
15
|
+
(function() {
|
16
|
+
function fail() {
|
17
|
+
var msg = 'user is not authenticated as target user';
|
18
|
+
navigator.id.raiseAuthenticationFailure(msg);
|
19
|
+
};
|
20
|
+
|
21
|
+
$('form##{id}').bind('ajax:success', function(data, status, xhr) { navigator.id.completeAuthentication() })
|
22
|
+
$('form##{id}').bind('ajax:error', function(data, status, xhr) { fail(); })
|
23
|
+
|
24
|
+
navigator.id.beginAuthentication(function(email) {
|
25
|
+
$('form##{id} #user_email').val(email);
|
26
|
+
});
|
27
|
+
}());
|
28
|
+
</script>
|
29
|
+
EOF
|
14
30
|
end
|
15
31
|
|
16
32
|
# The URL to the BrowserID official JavaScript
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: browserid-provider
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.3
|
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: 2012-
|
12
|
+
date: 2012-07-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json-jwt
|
@@ -122,7 +122,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
122
122
|
version: '0'
|
123
123
|
requirements: []
|
124
124
|
rubyforge_project:
|
125
|
-
rubygems_version: 1.8.
|
125
|
+
rubygems_version: 1.8.23
|
126
126
|
signing_key:
|
127
127
|
specification_version: 3
|
128
128
|
summary: Rails-enabled, Rack-based Mozilla BrowserID Primary Identity Provider
|