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
         
     |