ruby-openid 2.0.2 → 2.0.3
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of ruby-openid might be problematic. Click here for more details.
- data/CHANGELOG +42 -197
- data/UPGRADE +11 -6
- data/examples/discover +2 -2
- data/examples/rails_openid/app/controllers/server_controller.rb +4 -4
- data/lib/openid/consumer/associationmanager.rb +4 -2
- data/lib/openid/consumer/checkid_request.rb +1 -1
- data/lib/openid/consumer/discovery.rb +7 -6
- data/lib/openid/consumer/responses.rb +15 -0
- data/lib/openid/extensions/ax.rb +13 -3
- data/lib/openid/server.rb +1 -1
- data/lib/openid/util.rb +1 -1
- data/lib/openid/yadis/discovery.rb +5 -5
- data/lib/openid/yadis/xrds.rb +6 -19
- data/test/data/test_xrds/subsegments.xrds +58 -0
- data/test/test_associationmanager.rb +18 -0
- data/test/test_ax.rb +61 -0
- data/test/test_discover.rb +8 -0
- data/test/test_idres.rb +2 -2
- data/test/test_server.rb +8 -3
- data/test/test_xrds.rb +9 -0
- metadata +163 -162
data/CHANGELOG
CHANGED
@@ -1,215 +1,60 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
Fri Jan 11 11:31:29 PST 2008 cygnus@janrain.com
|
2
|
+
tagged 2.0.3
|
3
3
|
|
4
|
-
|
5
|
-
|
4
|
+
Fri Jan 11 11:29:57 PST 2008 cygnus@janrain.com
|
5
|
+
* Set version to 2.0.3
|
6
6
|
|
7
|
-
|
8
|
-
*
|
7
|
+
Thu Jan 10 15:23:31 PST 2008 Kevin Turner <kevin@janrain.com>
|
8
|
+
* UPGRADE: formatting
|
9
9
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
M ./lib/openid/consumer.rb -1 +5
|
16
|
-
|
17
|
-
Sat Jan 14 19:39:57 PST 2006 brian@janrain.com
|
18
|
-
* added html and hmac deps into lib since they are so small
|
19
|
-
|
20
|
-
A ./lib/hmac-md5.rb
|
21
|
-
A ./lib/hmac-rmd160.rb
|
22
|
-
A ./lib/hmac-sha1.rb
|
23
|
-
A ./lib/hmac-sha2.rb
|
24
|
-
A ./lib/hmac.rb
|
25
|
-
A ./lib/html/
|
26
|
-
A ./lib/html/htmltokenizer.rb
|
27
|
-
|
28
|
-
Mon Jan 16 15:04:05 PST 2006 Josh Hoyt <josh@janrain.com>
|
29
|
-
* Add script that will prepare the repository for release
|
30
|
-
|
31
|
-
A ./admin/fixperms
|
32
|
-
A ./admin/prepare-release
|
33
|
-
|
34
|
-
Mon Jan 16 14:35:27 PST 2006 Josh Hoyt <josh@janrain.com>
|
35
|
-
* Add custom boring file
|
36
|
-
|
37
|
-
A ./admin/darcs-ignore
|
38
|
-
|
39
|
-
Mon Jan 16 14:07:13 PST 2006 Josh Hoyt <josh@janrain.com>
|
40
|
-
* Put the build-docs script into the admin directory
|
41
|
-
|
42
|
-
./build-docs -> ./admin/build-docs
|
43
|
-
A ./admin/
|
44
|
-
|
45
|
-
Mon Jan 16 14:05:47 PST 2006 Josh Hoyt <josh@janrain.com>
|
46
|
-
* Add script to build documentation
|
47
|
-
|
48
|
-
A ./build-docs
|
49
|
-
|
50
|
-
Wed Jan 4 16:06:41 PST 2006 brian@janrain.com
|
51
|
-
tagged ruby-openid-0.9.2
|
52
|
-
|
53
|
-
|
54
|
-
Wed Jan 4 16:02:32 PST 2006 brian@janrain.com
|
55
|
-
* added openid_login_generator rails generator to examples
|
56
|
-
|
57
|
-
A ./examples/openid_login_generator/
|
58
|
-
A ./examples/openid_login_generator/USAGE
|
59
|
-
A ./examples/openid_login_generator/openid_login_generator.rb
|
60
|
-
A ./examples/openid_login_generator/templates/
|
61
|
-
A ./examples/openid_login_generator/templates/README
|
62
|
-
A ./examples/openid_login_generator/templates/controller.rb
|
63
|
-
A ./examples/openid_login_generator/templates/helper.rb
|
64
|
-
A ./examples/openid_login_generator/templates/login_system.rb
|
65
|
-
A ./examples/openid_login_generator/templates/user.rb
|
66
|
-
A ./examples/openid_login_generator/templates/view_login.rhtml
|
67
|
-
A ./examples/openid_login_generator/templates/view_logout.rhtml
|
68
|
-
A ./examples/openid_login_generator/templates/view_signup.rhtml
|
69
|
-
A ./examples/openid_login_generator/templates/view_welcome.rhtml
|
70
|
-
|
71
|
-
Wed Jan 4 16:01:12 PST 2006 brian@janrain.com
|
72
|
-
* updated examples README to include openid_login_generator
|
73
|
-
|
74
|
-
M ./examples/README +11
|
75
|
-
|
76
|
-
Wed Jan 4 14:58:24 PST 2006 brian@janrain.com
|
77
|
-
* added link to ruby library from consumer.rb example
|
78
|
-
|
79
|
-
M ./examples/consumer.rb -1 +1
|
80
|
-
|
81
|
-
Wed Jan 4 10:56:45 PST 2006 brian@janrain.com
|
82
|
-
* ensure Content-type header is present for POSTs
|
83
|
-
|
84
|
-
M ./lib/openid/fetchers.rb -1 +2
|
85
|
-
|
86
|
-
Fri Dec 30 17:05:25 PST 2005 brian@janrain.com
|
87
|
-
tagged ruby-openid-0.9.1
|
88
|
-
|
89
|
-
|
90
|
-
Fri Dec 30 17:03:54 PST 2005 brian@janrain.com
|
91
|
-
* added Ruby on Rails example consumer
|
92
|
-
|
93
|
-
M ./examples/README -1 +14
|
94
|
-
A ./examples/openid_rails.tar.gz
|
95
|
-
|
96
|
-
Thu Dec 29 16:00:20 PST 2005 brian@janrain.com
|
97
|
-
tagged ruby-openid-0.9.0
|
98
|
-
|
99
|
-
|
100
|
-
Thu Dec 29 15:43:07 PST 2005 brian@janrain.com
|
101
|
-
* removed docs directory. generated rdoc html will be added manually to tarballs, and not be kept in repository
|
102
|
-
|
103
|
-
R ./docs/
|
104
|
-
R ./docs/README
|
105
|
-
|
106
|
-
Thu Dec 29 15:21:21 PST 2005 brian@janrain.com
|
107
|
-
* added more docs for stores
|
108
|
-
|
109
|
-
M ./TODO -2 +4
|
110
|
-
M ./lib/openid/filestore.rb -16 +3
|
111
|
-
M ./lib/openid/stores.rb -9 +1
|
112
|
-
|
113
|
-
Thu Dec 29 14:58:52 PST 2005 brian@janrain.com
|
114
|
-
* Huge documentation patch
|
115
|
-
|
116
|
-
M ./INSTALL -12 +22
|
117
|
-
M ./README -1 +1
|
118
|
-
M ./lib/openid/consumer.rb -24 +370
|
119
|
-
M ./lib/openid/fetchers.rb -2 +1
|
120
|
-
M ./lib/openid/filestore.rb -6 +4
|
121
|
-
M ./lib/openid/stores.rb -2 +1
|
122
|
-
|
123
|
-
Thu Dec 29 10:59:54 PST 2005 brian@janrain.com
|
124
|
-
* added more info and rdoc formatting to README
|
125
|
-
|
126
|
-
M ./README -10 +26
|
127
|
-
|
128
|
-
Thu Dec 29 09:45:51 PST 2005 brian@janrain.com
|
129
|
-
* fixed bad comment
|
130
|
-
|
131
|
-
M ./examples/consumer.rb -1 +1
|
132
|
-
|
133
|
-
Wed Dec 28 17:59:48 PST 2005 brian@janrain.com
|
134
|
-
* added platform agnositc temp dir discovery
|
135
|
-
|
136
|
-
M ./examples/consumer.rb -1 +5
|
137
|
-
|
138
|
-
Wed Dec 28 17:13:21 PST 2005 brian@janrain.com
|
139
|
-
* moved getOpenIDParamerters to util
|
140
|
-
|
141
|
-
M ./lib/openid/consumer.rb -10 +2
|
142
|
-
M ./lib/openid/util.rb +8
|
10
|
+
Thu Jan 10 15:18:17 PST 2008 Kevin Turner <kevin@janrain.com>
|
11
|
+
* Consumer.Response: documentation for identity_url and display_identifier
|
12
|
+
|
13
|
+
Too bad that rdoc doesn't automatically display this in the documentation for
|
14
|
+
SuccessResponse; you have to follow the link to the Response docs.
|
143
15
|
|
144
|
-
|
145
|
-
*
|
16
|
+
Tue Jan 8 16:14:56 PST 2008 Kevin Turner <kevin@janrain.com>
|
17
|
+
* examples/discover: correct namespace of DiscoveryFailure
|
146
18
|
|
147
|
-
|
19
|
+
Thu Jan 10 10:15:04 PST 2008 cygnus@janrain.com
|
20
|
+
* Catch HTTPStatusError when making KV post in association manager
|
148
21
|
|
149
|
-
Wed
|
150
|
-
*
|
22
|
+
Wed Jan 9 17:39:53 PST 2008 cygnus@janrain.com
|
23
|
+
* Fix FetchRequest.ns_uri
|
151
24
|
|
152
|
-
|
25
|
+
Wed Jan 9 17:02:49 PST 2008 cygnus@janrain.com
|
26
|
+
* Fix FetchResponse.from_success_response, assign correct NS_URI value for AX messages
|
153
27
|
|
154
|
-
|
155
|
-
*
|
28
|
+
Tue Jan 8 15:46:43 PST 2008 Kevin Turner <kevin@janrain.com>
|
29
|
+
* examples/rails_openid/app/controllers: render_text was deprecated, use render :text.
|
156
30
|
|
157
|
-
|
31
|
+
Tue Jan 8 13:56:39 PST 2008 Kevin Turner <kevin@janrain.com>
|
32
|
+
* Yadis.discover: add more information to exception messages.
|
158
33
|
|
159
|
-
|
160
|
-
*
|
34
|
+
Mon Jan 7 18:48:50 PST 2008 Kevin Turner <kevin@janrain.com>
|
35
|
+
* OpenIDServiceEndpoint.display_identifier: leave off the fragment from claimed_id. [#99]
|
161
36
|
|
162
|
-
|
37
|
+
Tue Jan 8 09:32:27 PST 2008 http://j3h.us/
|
38
|
+
* MalformedTrustRoot raised by the library now gets passed the OpenID Message object instead of nil
|
163
39
|
|
164
|
-
|
165
|
-
*
|
40
|
+
Fri Dec 21 15:05:32 PST 2007 http://j3h.us/
|
41
|
+
* whitespace
|
166
42
|
|
167
|
-
|
168
|
-
|
169
|
-
A ./test/util.rb
|
43
|
+
Mon Jan 7 17:40:45 PST 2008 Kevin Turner <kevin@janrain.com>
|
44
|
+
* Yadis: remove mkXRDTag, mkXRDSTag. These don't seem to make as much sense with REXML as they did with ElementTree.
|
170
45
|
|
171
|
-
|
172
|
-
*
|
46
|
+
Mon Jan 7 17:33:41 PST 2008 Kevin Turner <kevin@janrain.com>
|
47
|
+
* remove comment applicable to Python
|
173
48
|
|
174
|
-
|
49
|
+
Mon Jan 7 17:00:17 PST 2008 Kevin Turner <kevin@janrain.com>
|
50
|
+
* test_xrds: add test for Yadis.get_canonical_id with subsegments [#93]
|
175
51
|
|
176
|
-
|
177
|
-
*
|
52
|
+
Fri Dec 28 16:25:19 PST 2007 Kevin Turner <kevin@janrain.com>
|
53
|
+
* Yadis::get_canonical_id: fixes for delegated xris [#93]
|
54
|
+
patch contributed by =masaki
|
178
55
|
|
179
|
-
|
56
|
+
Thu Jan 3 14:46:44 PST 2008 Kevin Turner <kevin@janrain.com>
|
57
|
+
* examples/discover: correct fetcher_use_env_http_proxy
|
180
58
|
|
181
|
-
Fri Dec
|
182
|
-
|
183
|
-
|
184
|
-
This has been subsumed by consumer.rb
|
185
|
-
|
186
|
-
R ./lib/openid/interface.rb
|
187
|
-
|
188
|
-
Thu Dec 15 18:25:04 PST 2005 brian@janrain.com
|
189
|
-
* initial checkin
|
190
|
-
|
191
|
-
A ./COPYING
|
192
|
-
A ./INSTALL
|
193
|
-
A ./README
|
194
|
-
A ./TODO
|
195
|
-
A ./docs/
|
196
|
-
A ./docs/README
|
197
|
-
A ./examples/
|
198
|
-
A ./examples/README
|
199
|
-
A ./examples/consumer.rb
|
200
|
-
A ./lib/
|
201
|
-
A ./lib/openid/
|
202
|
-
A ./lib/openid/consumer.rb
|
203
|
-
A ./lib/openid/dh.rb
|
204
|
-
A ./lib/openid/fetchers.rb
|
205
|
-
A ./lib/openid/filestore.rb
|
206
|
-
A ./lib/openid/interface.rb
|
207
|
-
A ./lib/openid/parse.rb
|
208
|
-
A ./lib/openid/stores.rb
|
209
|
-
A ./lib/openid/util.rb
|
210
|
-
A ./setup.rb
|
211
|
-
A ./test/
|
212
|
-
A ./test/assoc.rb
|
213
|
-
A ./test/dh.rb
|
214
|
-
A ./test/runtests
|
215
|
-
A ./test/teststore.rb
|
59
|
+
Fri Dec 21 20:44:22 PST 2007 Kevin Turner <kevin@janrain.com>
|
60
|
+
tagged 2.0.2
|
data/UPGRADE
CHANGED
@@ -1,12 +1,13 @@
|
|
1
|
-
|
1
|
+
= Upgrading from the OpenID 1.x series library
|
2
2
|
|
3
|
-
|
3
|
+
== Consumer Upgrade
|
4
4
|
|
5
5
|
The flow is largely the same, however there are a number of significant
|
6
6
|
changes. The consumer example is helpful to look at:
|
7
7
|
examples/ruby_openid/app/controllers/consumer_controller.rb
|
8
8
|
|
9
|
-
|
9
|
+
|
10
|
+
=== Stores
|
10
11
|
|
11
12
|
You will need to require the file for the store that you are using.
|
12
13
|
For the filesystem store, this is 'openid/stores/filesystem'
|
@@ -22,7 +23,7 @@ Also, note that the stores now can be garbage collected with the method
|
|
22
23
|
store.cleanup
|
23
24
|
|
24
25
|
|
25
|
-
|
26
|
+
=== Starting the OpenID transaction
|
26
27
|
|
27
28
|
The OpenIDRequest object no longer has status codes. Instead,
|
28
29
|
consumer.begin raises an OpenID::OpenIDError if there is a problem
|
@@ -56,7 +57,8 @@ additional arguments to the return_to url, use
|
|
56
57
|
Generating the redirect is the same as before, but add any extensions
|
57
58
|
first.
|
58
59
|
|
59
|
-
|
60
|
+
|
61
|
+
=== Requesting Simple Registration Data
|
60
62
|
|
61
63
|
You'll need to require the code for the extension
|
62
64
|
require 'openid/extensions/sreg'
|
@@ -74,7 +76,8 @@ Exchange (AX) and Provider Authentication Policy Extension (PAPE) are
|
|
74
76
|
included with the library, and additional extensions can be implemented
|
75
77
|
subclassing OpenID::Extension.
|
76
78
|
|
77
|
-
|
79
|
+
|
80
|
+
=== Completing the transaction
|
78
81
|
|
79
82
|
The return_to and its arguments are verified, so you need to pass in
|
80
83
|
the base URL and the arguments. With Rails, the params method mashes
|
@@ -102,7 +105,9 @@ with
|
|
102
105
|
nickname = sreg_response['nickname']
|
103
106
|
# etc.
|
104
107
|
|
108
|
+
|
105
109
|
== Server Upgrade
|
110
|
+
|
106
111
|
The server code is mostly the same as before, with the exception of
|
107
112
|
extensions. Also, you must pass in the endpoint URL to the server
|
108
113
|
constructor:
|
data/examples/discover
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
require "openid/consumer/discovery"
|
3
3
|
require 'openid/fetchers'
|
4
4
|
|
5
|
-
OpenID::
|
5
|
+
OpenID::fetcher_use_env_http_proxy
|
6
6
|
|
7
7
|
$names = [[:server_url, "Server URL "],
|
8
8
|
[:local_id, "Local ID "],
|
@@ -40,7 +40,7 @@ ARGV.each do |openid_identifier|
|
|
40
40
|
puts "Running discovery on #{openid_identifier}"
|
41
41
|
begin
|
42
42
|
normalized_identifier, services = OpenID.discover(openid_identifier)
|
43
|
-
rescue OpenID::
|
43
|
+
rescue OpenID::DiscoveryFailure => why
|
44
44
|
puts "Discovery failed: #{why.message}"
|
45
45
|
puts
|
46
46
|
else
|
@@ -23,13 +23,13 @@ class ServerController < ApplicationController
|
|
23
23
|
oidreq = server.decode_request(params)
|
24
24
|
rescue ProtocolError => e
|
25
25
|
# invalid openid request, so just display a page with an error message
|
26
|
-
|
26
|
+
render :text => e.to_s, :status => 500
|
27
27
|
return
|
28
28
|
end
|
29
29
|
|
30
30
|
# no openid.mode was given
|
31
31
|
unless oidreq
|
32
|
-
|
32
|
+
render :text => "This is an OpenID server endpoint."
|
33
33
|
return
|
34
34
|
end
|
35
35
|
|
@@ -114,7 +114,7 @@ EOS
|
|
114
114
|
# Also add the Yadis location header, so that they don't have
|
115
115
|
# to parse the html unless absolutely necessary.
|
116
116
|
response.headers['X-XRDS-Location'] = xrds_url
|
117
|
-
|
117
|
+
render :text => identity_page
|
118
118
|
end
|
119
119
|
|
120
120
|
def user_xrds
|
@@ -214,7 +214,7 @@ EOS
|
|
214
214
|
EOS
|
215
215
|
|
216
216
|
response.headers['content-type'] = 'application/xrds+xml'
|
217
|
-
|
217
|
+
render :text => yadis
|
218
218
|
end
|
219
219
|
|
220
220
|
def add_sreg(oidreq, oidresp)
|
@@ -187,10 +187,12 @@ module OpenID
|
|
187
187
|
def request_association(assoc_type, session_type)
|
188
188
|
assoc_session, args = create_associate_request(assoc_type, session_type)
|
189
189
|
|
190
|
-
response = OpenID.make_kv_post(args, @server_url)
|
191
|
-
|
192
190
|
begin
|
191
|
+
response = OpenID.make_kv_post(args, @server_url)
|
193
192
|
return extract_association(response, assoc_session)
|
193
|
+
rescue HTTPStatusError => why
|
194
|
+
Util.log("Got HTTP status error when requesting association: #{why}")
|
195
|
+
return nil
|
194
196
|
rescue Message::KeyNotFound => why
|
195
197
|
Util.log("Missing required parameter in response from "\
|
196
198
|
"#{@server_url}: #{why}")
|
@@ -13,7 +13,7 @@ module OpenID
|
|
13
13
|
# server. It also has serialization options that let you encode
|
14
14
|
# the authentication request as a URL or as a form POST.
|
15
15
|
class CheckIDRequest
|
16
|
-
attr_accessor :return_to_args
|
16
|
+
attr_accessor :return_to_args, :message
|
17
17
|
attr_reader :endpoint
|
18
18
|
|
19
19
|
# Users of this library should not create instances of this
|
@@ -56,7 +56,13 @@ module OpenID
|
|
56
56
|
end
|
57
57
|
|
58
58
|
def display_identifier
|
59
|
-
@display_identifier
|
59
|
+
return @display_identifier if @display_identifier
|
60
|
+
return @claimed_id if @claimed_id.nil? or not URI.parse(@claimed_id).fragment
|
61
|
+
|
62
|
+
disp = URI.parse(@claimed_id)
|
63
|
+
disp.fragment = nil
|
64
|
+
|
65
|
+
return disp.to_s
|
60
66
|
end
|
61
67
|
|
62
68
|
def display_identifier=(display_identifier)
|
@@ -114,11 +120,6 @@ module OpenID
|
|
114
120
|
def get_local_id
|
115
121
|
# Return the identifier that should be sent as the
|
116
122
|
# openid.identity parameter to the server.
|
117
|
-
|
118
|
-
# I looked at this conditional and thought "ah-hah! there's the
|
119
|
-
# bug!" but Python actually makes that one big expression
|
120
|
-
# somehow, i.e. "x is x is x" is not the same thing as "(x is
|
121
|
-
# x) is x". That's pretty weird, dude. -- kmt, 1/07
|
122
123
|
if @local_id.nil? and @canonical_id.nil?
|
123
124
|
return @claimed_id
|
124
125
|
else
|
@@ -26,10 +26,25 @@ module OpenID
|
|
26
26
|
self.class::STATUS
|
27
27
|
end
|
28
28
|
|
29
|
+
# The identity URL that has been authenticated; the Claimed Identifier.
|
30
|
+
# See also display_identifier.
|
29
31
|
def identity_url
|
30
32
|
@endpoint ? @endpoint.claimed_id : nil
|
31
33
|
end
|
32
34
|
|
35
|
+
# The display identifier is related to the Claimed Identifier, but the
|
36
|
+
# two are not always identical. The display identifier is something the
|
37
|
+
# user should recognize as what they entered, whereas the response's
|
38
|
+
# claimed identifier (in the identity_url attribute) may have extra
|
39
|
+
# information for better persistence.
|
40
|
+
#
|
41
|
+
# URLs will be stripped of their fragments for display. XRIs will
|
42
|
+
# display the human-readable identifier (i-name) instead of the
|
43
|
+
# persistent identifier (i-number).
|
44
|
+
#
|
45
|
+
# Use the display identifier in your user interface. Use identity_url
|
46
|
+
# for querying your database or authorization server, or other
|
47
|
+
# identifier equality comparisons.
|
33
48
|
def display_identifier
|
34
49
|
@endpoint ? @endpoint.display_identifier : nil
|
35
50
|
end
|
data/lib/openid/extensions/ax.rb
CHANGED
@@ -29,6 +29,7 @@ module OpenID
|
|
29
29
|
NS_URI = 'http://openid.net/srv/ax/1.0'
|
30
30
|
def initialize
|
31
31
|
@ns_alias = 'ax'
|
32
|
+
@ns_uri = NS_URI
|
32
33
|
@mode = nil
|
33
34
|
end
|
34
35
|
|
@@ -111,6 +112,7 @@ module OpenID
|
|
111
112
|
attr_accessor :update_url
|
112
113
|
|
113
114
|
def initialize(update_url = nil)
|
115
|
+
super()
|
114
116
|
@mode = 'fetch_request'
|
115
117
|
@requested_attributes = {}
|
116
118
|
@update_url = update_url
|
@@ -262,6 +264,7 @@ module OpenID
|
|
262
264
|
class KeyValueMessage < AXMessage
|
263
265
|
attr_reader :data
|
264
266
|
def initialize
|
267
|
+
super()
|
265
268
|
@mode = nil
|
266
269
|
@data = {}
|
267
270
|
@data.default = []
|
@@ -446,12 +449,19 @@ module OpenID
|
|
446
449
|
# Construct a FetchResponse object from an OpenID library
|
447
450
|
# SuccessResponse object.
|
448
451
|
def self.from_success_response(success_response, signed=true)
|
452
|
+
obj = self.new
|
449
453
|
if signed
|
450
|
-
ax_args = success_response.get_signed_ns(
|
454
|
+
ax_args = success_response.get_signed_ns(obj.ns_uri)
|
451
455
|
else
|
452
|
-
ax_args = success_response.message.get_args(
|
456
|
+
ax_args = success_response.message.get_args(obj.ns_uri)
|
457
|
+
end
|
458
|
+
|
459
|
+
begin
|
460
|
+
obj.parse_extension_args(ax_args)
|
461
|
+
return obj
|
462
|
+
rescue Error => e
|
463
|
+
return nil
|
453
464
|
end
|
454
|
-
new.parse_extension_args(ax_args)
|
455
465
|
end
|
456
466
|
end
|
457
467
|
|
data/lib/openid/server.rb
CHANGED
data/lib/openid/util.rb
CHANGED
@@ -76,12 +76,12 @@ module OpenID
|
|
76
76
|
begin
|
77
77
|
resp = OpenID.fetch(uri, nil, {'Accept' => YADIS_ACCEPT_HEADER})
|
78
78
|
rescue Exception
|
79
|
-
raise DiscoveryFailure.new("Failed to fetch identity URL
|
79
|
+
raise DiscoveryFailure.new("Failed to fetch identity URL #{uri} : #{$!}", $!)
|
80
80
|
end
|
81
81
|
if resp.code != "200"
|
82
82
|
raise DiscoveryFailure.new(
|
83
|
-
"HTTP Response status from identity URL host is not \"200\""\
|
84
|
-
"
|
83
|
+
"HTTP Response status from identity URL host is not \"200\"."\
|
84
|
+
"Got status #{resp.code.inspect} for #{resp.final_url}", resp)
|
85
85
|
end
|
86
86
|
|
87
87
|
# Note the URL after following redirects
|
@@ -97,12 +97,12 @@ module OpenID
|
|
97
97
|
begin
|
98
98
|
resp = OpenID.fetch(result.xrds_uri)
|
99
99
|
rescue
|
100
|
-
raise DiscoveryFailure.new("Failed to fetch Yadis URL.", $!)
|
100
|
+
raise DiscoveryFailure.new("Failed to fetch Yadis URL #{result.xrds_uri} : #{$!}", $!)
|
101
101
|
end
|
102
102
|
if resp.code != "200"
|
103
103
|
exc = DiscoveryFailure.new(
|
104
104
|
"HTTP Response status from Yadis host is not \"200\". " +
|
105
|
-
|
105
|
+
"Got status #{resp.code.inspect} for #{resp.final_url}", resp)
|
106
106
|
exc.identity_url = result.normalized_uri
|
107
107
|
raise exc
|
108
108
|
end
|
data/lib/openid/yadis/xrds.rb
CHANGED
@@ -2,6 +2,8 @@ require 'rexml/document'
|
|
2
2
|
require 'rexml/element'
|
3
3
|
require 'rexml/xpath'
|
4
4
|
|
5
|
+
require 'openid/yadis/xri'
|
6
|
+
|
5
7
|
module OpenID
|
6
8
|
module Yadis
|
7
9
|
|
@@ -65,8 +67,8 @@ module OpenID
|
|
65
67
|
parent_sought = childID[0...childID.rindex('!')]
|
66
68
|
|
67
69
|
parent_list = []
|
68
|
-
xrd.elements.
|
69
|
-
XRI.make_xri(c.text)
|
70
|
+
xrd.elements.each("CanonicalID") { |c|
|
71
|
+
parent_list.push(XRI.make_xri(c.text))
|
70
72
|
}
|
71
73
|
|
72
74
|
if !parent_list.member?(parent_sought)
|
@@ -85,21 +87,6 @@ module OpenID
|
|
85
87
|
return canonicalID
|
86
88
|
end
|
87
89
|
|
88
|
-
def Yadis::mkXRDSTag(name)
|
89
|
-
e = REXML::Element.new('xrds:' + name)
|
90
|
-
e.add_namespace('xrds', XRDS_NS)
|
91
|
-
return e
|
92
|
-
end
|
93
|
-
|
94
|
-
def Yadis::mkXRDTag(name)
|
95
|
-
e = REXML::Element.new('xrd:' + name)
|
96
|
-
e.add_namespace('xrd', XRD_NS_2_0)
|
97
|
-
return e
|
98
|
-
end
|
99
|
-
|
100
|
-
ROOT_TAG = Yadis::mkXRDSTag('XRDS')
|
101
|
-
CANONICALID_TAG = mkXRDTag('CanonicalID')
|
102
|
-
|
103
90
|
class XRDSError < StandardError
|
104
91
|
end
|
105
92
|
|
@@ -124,8 +111,8 @@ module OpenID
|
|
124
111
|
def Yadis::is_xrds?(xrds_tree)
|
125
112
|
xrds_root = xrds_tree.root
|
126
113
|
return (!xrds_root.nil? and
|
127
|
-
xrds_root.name ==
|
128
|
-
xrds_root.namespace ==
|
114
|
+
xrds_root.name == 'XRDS' and
|
115
|
+
xrds_root.namespace == XRDS_NS)
|
129
116
|
end
|
130
117
|
|
131
118
|
def Yadis::get_yadis_xrd(xrds_tree)
|
@@ -0,0 +1,58 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<XRDS ref="xri://=nishitani*masaki" xmlns="xri://$xrds">
|
3
|
+
<XRD xmlns="xri://$xrd*($v*2.0)">
|
4
|
+
<Query>*nishitani</Query>
|
5
|
+
<Status code="100"/>
|
6
|
+
<Expires>2007-12-25T11:33:39.000Z</Expires>
|
7
|
+
<ProviderID>xri://=</ProviderID>
|
8
|
+
<LocalID priority="10">!E117.EF2F.454B.C707</LocalID>
|
9
|
+
<CanonicalID priority="10">=!E117.EF2F.454B.C707</CanonicalID>
|
10
|
+
<Service priority="10">
|
11
|
+
<Type select="true">http://openid.net/signon/1.0</Type>
|
12
|
+
<ProviderID>xri://!!1003!103</ProviderID>
|
13
|
+
<URI append="none" priority="1">https://linksafe.ezibroker.net/server/</URI>
|
14
|
+
</Service>
|
15
|
+
<Service priority="10">
|
16
|
+
<Type select="true">xri://$res*auth*($v*2.0)</Type>
|
17
|
+
<ProviderID>xri://!!1003!103</ProviderID>
|
18
|
+
<MediaType>application/xrds+xml;trust=none</MediaType>
|
19
|
+
<URI priority="10">http://resolve.ezibroker.net/resolve/=nishitani/</URI>
|
20
|
+
</Service>
|
21
|
+
<Service priority="1">
|
22
|
+
<Type match="content" select="true">xri://+i-service*(+forwarding)*($v*1.0)</Type>
|
23
|
+
<Type match="null" select="false"/>
|
24
|
+
<ProviderID>xri://!!1003!103</ProviderID>
|
25
|
+
<Path match="content">(+index)</Path>
|
26
|
+
<Path match="default"/>
|
27
|
+
<URI append="qxri" priority="1">http://linksafe-forward.ezibroker.net/forwarding/</URI>
|
28
|
+
</Service>
|
29
|
+
</XRD>
|
30
|
+
<XRD xmlns="xri://$xrd*($v*2.0)">
|
31
|
+
<Query>*masaki</Query>
|
32
|
+
<Status code="100">SUCCESS</Status>
|
33
|
+
<ProviderID>xri://!!1003</ProviderID>
|
34
|
+
<LocalID>!0000.0000.3B9A.CA01</LocalID>
|
35
|
+
<CanonicalID>=!E117.EF2F.454B.C707!0000.0000.3B9A.CA01</CanonicalID>
|
36
|
+
<Service>
|
37
|
+
<Type select="true">http://openid.net/signon/1.0</Type>
|
38
|
+
<ProviderID>xri://!!1003!103</ProviderID>
|
39
|
+
<URI append="none" priority="1">https://linksafe.ezibroker.net/server/</URI>
|
40
|
+
</Service>
|
41
|
+
<Service>
|
42
|
+
<Type select="true">xri://+i-service*(+contact)*($v*1.0)</Type>
|
43
|
+
<Type match="null"/>
|
44
|
+
<ProviderID>xri://!!1003!103</ProviderID>
|
45
|
+
<Path select="true">(+contact)</Path>
|
46
|
+
<Path match="null"/>
|
47
|
+
<URI append="authority" priority="1">http://linksafe-contact.ezibroker.net/contact/</URI>
|
48
|
+
</Service>
|
49
|
+
<Service priority="1">
|
50
|
+
<Type match="content" select="true">xri://+i-service*(+forwarding)*($v*1.0)</Type>
|
51
|
+
<Type match="null" select="false"/>
|
52
|
+
<ProviderID>xri://!!1003!103</ProviderID>
|
53
|
+
<Path match="content">(+index)</Path>
|
54
|
+
<Path match="default"/>
|
55
|
+
<URI append="qxri" priority="1">http://linksafe-forward.ezibroker.net/forwarding/</URI>
|
56
|
+
</Service>
|
57
|
+
</XRD>
|
58
|
+
</XRDS>
|
@@ -800,6 +800,9 @@ module OpenID
|
|
800
800
|
end
|
801
801
|
|
802
802
|
class TestAssocManagerGetAssociation < Test::Unit::TestCase
|
803
|
+
include FetcherMixin
|
804
|
+
include TestUtil
|
805
|
+
|
803
806
|
attr_reader :negotiate_association
|
804
807
|
|
805
808
|
def setup
|
@@ -839,6 +842,21 @@ module OpenID
|
|
839
842
|
@store.store_association(@server_url, @assoc)
|
840
843
|
assert_equal(@assoc, @assoc_manager.get_association)
|
841
844
|
end
|
845
|
+
|
846
|
+
def test_request_assoc_with_status_error
|
847
|
+
fetcher_class = Class.new do
|
848
|
+
define_method(:fetch) do |*args|
|
849
|
+
MockResponse.new(500, '')
|
850
|
+
end
|
851
|
+
end
|
852
|
+
with_fetcher(fetcher_class.new) do
|
853
|
+
assert_log_matches('Got HTTP status error when requesting') {
|
854
|
+
result = @assoc_manager.send(:request_association, 'HMAC-SHA1',
|
855
|
+
'no-encryption')
|
856
|
+
assert(result.nil?)
|
857
|
+
}
|
858
|
+
end
|
859
|
+
end
|
842
860
|
end
|
843
861
|
|
844
862
|
class TestAssocManagerRequestAssociation < Test::Unit::TestCase
|
data/test/test_ax.rb
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
require 'openid/extensions/ax'
|
2
2
|
require 'openid/message'
|
3
|
+
require 'openid/consumer/responses'
|
4
|
+
require 'openid/consumer/discovery'
|
5
|
+
require 'openid/consumer/checkid_request'
|
3
6
|
|
4
7
|
module OpenID
|
5
8
|
module AX
|
@@ -430,6 +433,32 @@ module OpenID
|
|
430
433
|
assert(fr.is_a?(FetchRequest))
|
431
434
|
end
|
432
435
|
|
436
|
+
def test_add_extension
|
437
|
+
openid_req_msg = Message.from_openid_args({
|
438
|
+
'mode' => 'checkid_setup',
|
439
|
+
'ns' => OPENID2_NS,
|
440
|
+
'return_to' => 'http://example.com/realm',
|
441
|
+
})
|
442
|
+
|
443
|
+
e = OpenID::OpenIDServiceEndpoint.new
|
444
|
+
openid_req = Consumer::CheckIDRequest.new(nil, e)
|
445
|
+
openid_req.message = openid_req_msg
|
446
|
+
|
447
|
+
fr = FetchRequest.new
|
448
|
+
fr.add(AttrInfo.new("urn:bogus"))
|
449
|
+
|
450
|
+
openid_req.add_extension(fr)
|
451
|
+
|
452
|
+
expected = {
|
453
|
+
'mode' => 'fetch_request',
|
454
|
+
'if_available' => 'ext0',
|
455
|
+
'type.ext0' => 'urn:bogus',
|
456
|
+
}
|
457
|
+
|
458
|
+
expected.each { |k,v|
|
459
|
+
assert(openid_req.message.get_arg(AXMessage::NS_URI, k) == v)
|
460
|
+
}
|
461
|
+
end
|
433
462
|
end
|
434
463
|
|
435
464
|
class FetchResponseTest < Test::Unit::TestCase
|
@@ -522,6 +551,38 @@ module OpenID
|
|
522
551
|
assert_raises(Error) { @msg.get_single(@type_a) }
|
523
552
|
end
|
524
553
|
|
554
|
+
def test_from_success_response
|
555
|
+
uri = 'http://under.the.sea/'
|
556
|
+
name = 'ext0'
|
557
|
+
value = 'snarfblat'
|
558
|
+
|
559
|
+
m = OpenID::Message.from_openid_args({
|
560
|
+
'mode' => 'id_res',
|
561
|
+
'ns' => OPENID2_NS,
|
562
|
+
'ns.ax' => AXMessage::NS_URI,
|
563
|
+
'ax.update_url' => 'http://example.com/realm/update_path',
|
564
|
+
'ax.mode' => 'fetch_response',
|
565
|
+
'ax.type.' + name => uri,
|
566
|
+
'ax.count.' + name => '1',
|
567
|
+
'ax.value.' + name + '.1' => value,
|
568
|
+
})
|
569
|
+
|
570
|
+
e = OpenID::OpenIDServiceEndpoint.new()
|
571
|
+
resp = OpenID::Consumer::SuccessResponse.new(e, m, [])
|
572
|
+
|
573
|
+
ax_resp = FetchResponse.from_success_response(resp, false)
|
574
|
+
|
575
|
+
values = ax_resp[uri]
|
576
|
+
assert_equal(values, [value])
|
577
|
+
end
|
578
|
+
|
579
|
+
def test_from_success_response_empty
|
580
|
+
e = OpenID::OpenIDServiceEndpoint.new()
|
581
|
+
m = OpenID::Message.from_openid_args({'mode' => 'id_res'})
|
582
|
+
resp = OpenID::Consumer::SuccessResponse.new(e, m, [])
|
583
|
+
ax_resp = FetchResponse.from_success_response(resp)
|
584
|
+
assert(ax_resp.nil?)
|
585
|
+
end
|
525
586
|
end
|
526
587
|
|
527
588
|
class StoreRequestTest < Test::Unit::TestCase
|
data/test/test_discover.rb
CHANGED
@@ -769,4 +769,12 @@ module OpenID
|
|
769
769
|
OPENID_IDP_2_0_TYPE)
|
770
770
|
end
|
771
771
|
end
|
772
|
+
|
773
|
+
class TestEndpointDisplayIdentifier < Test::Unit::TestCase
|
774
|
+
def test_strip_fragment
|
775
|
+
@endpoint = OpenIDServiceEndpoint.new()
|
776
|
+
@endpoint.claimed_id = 'http://recycled.invalid/#123'
|
777
|
+
assert_equal 'http://recycled.invalid/', @endpoint.display_identifier
|
778
|
+
end
|
779
|
+
end
|
772
780
|
end
|
data/test/test_idres.rb
CHANGED
@@ -320,7 +320,7 @@ module OpenID
|
|
320
320
|
msg = Message.new(OPENID2_NS)
|
321
321
|
raise ServerError.from_message(msg), 'For you!'
|
322
322
|
end
|
323
|
-
|
323
|
+
|
324
324
|
OpenID.with_method_overridden(:make_kv_post, send_error) do
|
325
325
|
assert_protocol_error("Error from") {
|
326
326
|
call_check_auth do |idres|
|
@@ -337,7 +337,7 @@ module OpenID
|
|
337
337
|
me.assert_equal(:req, req)
|
338
338
|
:expected_response
|
339
339
|
end
|
340
|
-
|
340
|
+
|
341
341
|
OpenID.with_method_overridden(:make_kv_post, send_resp) do
|
342
342
|
final_resp = call_check_auth do |idres|
|
343
343
|
idres.instance_def(:create_check_auth_request) {
|
data/test/test_server.rb
CHANGED
@@ -975,9 +975,14 @@ module OpenID
|
|
975
975
|
|
976
976
|
def test_trustRootInvalid_modified
|
977
977
|
@request.trust_root = "does://not.parse/"
|
978
|
-
|
979
|
-
|
980
|
-
|
978
|
+
@request.message = :sentinel
|
979
|
+
begin
|
980
|
+
result = @request.trust_root_valid
|
981
|
+
rescue Server::MalformedTrustRoot => why
|
982
|
+
assert_equal(:sentinel, why.openid_message)
|
983
|
+
else
|
984
|
+
flunk("Expected MalformedTrustRoot, got #{result.inspect}")
|
985
|
+
end
|
981
986
|
end
|
982
987
|
|
983
988
|
def test_trustRootvalid_absent_trust_root
|
data/test/test_xrds.rb
CHANGED
@@ -156,5 +156,14 @@ END
|
|
156
156
|
assert_same e7, sorted[3]
|
157
157
|
end
|
158
158
|
end
|
159
|
+
|
160
|
+
class GetCanonicalIDTestCase < Test::Unit::TestCase
|
161
|
+
include XRDSTestMixin
|
162
|
+
|
163
|
+
def test_multisegment_xri
|
164
|
+
xmldoc = Yadis.parseXRDS(read_data_file('subsegments.xrds'))
|
165
|
+
result = Yadis.get_canonical_id('xri://=nishitani*masaki', xmldoc)
|
166
|
+
end
|
167
|
+
end
|
159
168
|
end
|
160
169
|
end
|
metadata
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.9.
|
2
|
+
rubygems_version: 0.9.0
|
3
3
|
specification_version: 1
|
4
4
|
name: ruby-openid
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 2.0.
|
7
|
-
date:
|
6
|
+
version: 2.0.3
|
7
|
+
date: 2008-01-11 00:00:00 -08:00
|
8
8
|
summary: A library for consuming and serving OpenID identities.
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -29,248 +29,249 @@ post_install_message:
|
|
29
29
|
authors:
|
30
30
|
- JanRain, Inc
|
31
31
|
files:
|
32
|
+
- examples/README
|
33
|
+
- examples/active_record_openid_store
|
32
34
|
- examples/rails_openid_login_generator
|
33
35
|
- examples/rails_openid
|
34
|
-
- examples/README
|
35
36
|
- examples/discover
|
36
|
-
- examples/active_record_openid_store
|
37
|
-
- examples/
|
37
|
+
- examples/active_record_openid_store/lib
|
38
|
+
- examples/active_record_openid_store/test
|
39
|
+
- examples/active_record_openid_store/init.rb
|
40
|
+
- examples/active_record_openid_store/README
|
41
|
+
- examples/active_record_openid_store/XXX_add_open_id_store_to_db.rb
|
42
|
+
- examples/active_record_openid_store/XXX_upgrade_open_id_store.rb
|
43
|
+
- examples/active_record_openid_store/lib/association.rb
|
44
|
+
- examples/active_record_openid_store/lib/nonce.rb
|
45
|
+
- examples/active_record_openid_store/lib/open_id_setting.rb
|
46
|
+
- examples/active_record_openid_store/lib/openid_ar_store.rb
|
47
|
+
- examples/active_record_openid_store/test/store_test.rb
|
48
|
+
- examples/rails_openid_login_generator/templates
|
38
49
|
- examples/rails_openid_login_generator/gemspec
|
50
|
+
- examples/rails_openid_login_generator/USAGE
|
39
51
|
- examples/rails_openid_login_generator/openid_login_generator.rb
|
40
|
-
- examples/rails_openid_login_generator/templates
|
41
|
-
- examples/rails_openid_login_generator/templates/controller_test.rb
|
52
|
+
- examples/rails_openid_login_generator/templates/user.rb
|
42
53
|
- examples/rails_openid_login_generator/templates/README
|
43
|
-
- examples/rails_openid_login_generator/templates/view_logout.rhtml
|
44
54
|
- examples/rails_openid_login_generator/templates/controller.rb
|
55
|
+
- examples/rails_openid_login_generator/templates/helper.rb
|
45
56
|
- examples/rails_openid_login_generator/templates/view_login.rhtml
|
46
|
-
- examples/rails_openid_login_generator/templates/
|
47
|
-
- examples/rails_openid_login_generator/templates/openid_login_system.rb
|
57
|
+
- examples/rails_openid_login_generator/templates/view_logout.rhtml
|
48
58
|
- examples/rails_openid_login_generator/templates/view_welcome.rhtml
|
49
|
-
- examples/rails_openid_login_generator/templates/
|
59
|
+
- examples/rails_openid_login_generator/templates/controller_test.rb
|
50
60
|
- examples/rails_openid_login_generator/templates/user_test.rb
|
51
|
-
- examples/rails_openid_login_generator/templates/
|
52
|
-
- examples/
|
61
|
+
- examples/rails_openid_login_generator/templates/users.yml
|
62
|
+
- examples/rails_openid_login_generator/templates/openid_login_system.rb
|
53
63
|
- examples/rails_openid/app
|
64
|
+
- examples/rails_openid/components
|
65
|
+
- examples/rails_openid/config
|
66
|
+
- examples/rails_openid/db
|
54
67
|
- examples/rails_openid/doc
|
55
68
|
- examples/rails_openid/lib
|
56
69
|
- examples/rails_openid/log
|
57
|
-
- examples/rails_openid/test
|
58
|
-
- examples/rails_openid/Rakefile
|
59
|
-
- examples/rails_openid/README
|
60
|
-
- examples/rails_openid/components
|
61
|
-
- examples/rails_openid/config
|
62
70
|
- examples/rails_openid/public
|
63
71
|
- examples/rails_openid/script
|
72
|
+
- examples/rails_openid/test
|
64
73
|
- examples/rails_openid/vendor
|
65
|
-
- examples/rails_openid/
|
74
|
+
- examples/rails_openid/Rakefile
|
75
|
+
- examples/rails_openid/README
|
66
76
|
- examples/rails_openid/app/controllers
|
67
|
-
- examples/rails_openid/app/models
|
68
77
|
- examples/rails_openid/app/helpers
|
69
|
-
- examples/rails_openid/app/
|
78
|
+
- examples/rails_openid/app/models
|
79
|
+
- examples/rails_openid/app/views
|
80
|
+
- examples/rails_openid/app/controllers/application.rb
|
81
|
+
- examples/rails_openid/app/controllers/login_controller.rb
|
82
|
+
- examples/rails_openid/app/controllers/server_controller.rb
|
83
|
+
- examples/rails_openid/app/controllers/consumer_controller.rb
|
84
|
+
- examples/rails_openid/app/helpers/application_helper.rb
|
85
|
+
- examples/rails_openid/app/helpers/login_helper.rb
|
86
|
+
- examples/rails_openid/app/helpers/server_helper.rb
|
70
87
|
- examples/rails_openid/app/views/layouts
|
71
|
-
- examples/rails_openid/app/views/
|
88
|
+
- examples/rails_openid/app/views/login
|
72
89
|
- examples/rails_openid/app/views/server
|
73
|
-
- examples/rails_openid/app/views/
|
90
|
+
- examples/rails_openid/app/views/consumer
|
74
91
|
- examples/rails_openid/app/views/layouts/server.rhtml
|
92
|
+
- examples/rails_openid/app/views/login/index.rhtml
|
93
|
+
- examples/rails_openid/app/views/server/decide.rhtml
|
75
94
|
- examples/rails_openid/app/views/consumer/start.rhtml
|
76
95
|
- examples/rails_openid/app/views/consumer/index.rhtml
|
77
|
-
- examples/rails_openid/app/views/server/decide.rhtml
|
78
|
-
- examples/rails_openid/app/controllers/consumer_controller.rb
|
79
|
-
- examples/rails_openid/app/controllers/login_controller.rb
|
80
|
-
- examples/rails_openid/app/controllers/server_controller.rb
|
81
|
-
- examples/rails_openid/app/controllers/application.rb
|
82
|
-
- examples/rails_openid/app/helpers/server_helper.rb
|
83
|
-
- examples/rails_openid/app/helpers/login_helper.rb
|
84
|
-
- examples/rails_openid/app/helpers/application_helper.rb
|
85
|
-
- examples/rails_openid/doc/README_FOR_APP
|
86
|
-
- examples/rails_openid/lib/tasks
|
87
|
-
- examples/rails_openid/test/unit
|
88
|
-
- examples/rails_openid/test/mocks
|
89
|
-
- examples/rails_openid/test/functional
|
90
|
-
- examples/rails_openid/test/fixtures
|
91
|
-
- examples/rails_openid/test/test_helper.rb
|
92
|
-
- examples/rails_openid/test/mocks/test
|
93
|
-
- examples/rails_openid/test/mocks/development
|
94
|
-
- examples/rails_openid/test/functional/login_controller_test.rb
|
95
|
-
- examples/rails_openid/test/functional/server_controller_test.rb
|
96
|
-
- examples/rails_openid/config/routes.rb
|
97
96
|
- examples/rails_openid/config/environments
|
98
97
|
- examples/rails_openid/config/database.yml
|
99
|
-
- examples/rails_openid/config/environment.rb
|
100
98
|
- examples/rails_openid/config/boot.rb
|
101
|
-
- examples/rails_openid/config/
|
99
|
+
- examples/rails_openid/config/environment.rb
|
100
|
+
- examples/rails_openid/config/routes.rb
|
102
101
|
- examples/rails_openid/config/environments/development.rb
|
103
102
|
- examples/rails_openid/config/environments/production.rb
|
104
|
-
- examples/rails_openid/
|
105
|
-
- examples/rails_openid/
|
106
|
-
- examples/rails_openid/
|
107
|
-
- examples/rails_openid/public/javascripts
|
108
|
-
- examples/rails_openid/public/robots.txt
|
103
|
+
- examples/rails_openid/config/environments/test.rb
|
104
|
+
- examples/rails_openid/doc/README_FOR_APP
|
105
|
+
- examples/rails_openid/lib/tasks
|
109
106
|
- examples/rails_openid/public/images
|
110
|
-
- examples/rails_openid/public/
|
107
|
+
- examples/rails_openid/public/javascripts
|
108
|
+
- examples/rails_openid/public/stylesheets
|
109
|
+
- examples/rails_openid/public/dispatch.cgi
|
110
|
+
- examples/rails_openid/public/404.html
|
111
111
|
- examples/rails_openid/public/500.html
|
112
|
+
- examples/rails_openid/public/dispatch.fcgi
|
112
113
|
- examples/rails_openid/public/dispatch.rb
|
113
|
-
- examples/rails_openid/public/
|
114
|
-
- examples/rails_openid/public/
|
114
|
+
- examples/rails_openid/public/favicon.ico
|
115
|
+
- examples/rails_openid/public/robots.txt
|
116
|
+
- examples/rails_openid/public/images/openid_login_bg.gif
|
115
117
|
- examples/rails_openid/public/javascripts/controls.js
|
116
|
-
- examples/rails_openid/public/javascripts/effects.js
|
117
118
|
- examples/rails_openid/public/javascripts/dragdrop.js
|
118
|
-
- examples/rails_openid/public/
|
119
|
+
- examples/rails_openid/public/javascripts/effects.js
|
120
|
+
- examples/rails_openid/public/javascripts/prototype.js
|
121
|
+
- examples/rails_openid/script/performance
|
122
|
+
- examples/rails_openid/script/process
|
119
123
|
- examples/rails_openid/script/console
|
120
|
-
- examples/rails_openid/script/destroy
|
121
124
|
- examples/rails_openid/script/about
|
122
|
-
- examples/rails_openid/script/generate
|
123
125
|
- examples/rails_openid/script/breakpointer
|
126
|
+
- examples/rails_openid/script/destroy
|
127
|
+
- examples/rails_openid/script/generate
|
124
128
|
- examples/rails_openid/script/plugin
|
125
|
-
- examples/rails_openid/script/server
|
126
129
|
- examples/rails_openid/script/runner
|
127
|
-
- examples/rails_openid/script/
|
128
|
-
- examples/rails_openid/script/performance
|
129
|
-
- examples/rails_openid/script/process/spawner
|
130
|
-
- examples/rails_openid/script/process/spinner
|
131
|
-
- examples/rails_openid/script/process/reaper
|
130
|
+
- examples/rails_openid/script/server
|
132
131
|
- examples/rails_openid/script/performance/benchmarker
|
133
132
|
- examples/rails_openid/script/performance/profiler
|
134
|
-
- examples/
|
135
|
-
- examples/
|
136
|
-
- examples/
|
137
|
-
- examples/
|
138
|
-
- examples/
|
139
|
-
- examples/
|
140
|
-
- examples/
|
141
|
-
- examples/
|
142
|
-
- examples/
|
143
|
-
- examples/
|
144
|
-
- examples/
|
133
|
+
- examples/rails_openid/script/process/spawner
|
134
|
+
- examples/rails_openid/script/process/reaper
|
135
|
+
- examples/rails_openid/script/process/spinner
|
136
|
+
- examples/rails_openid/test/fixtures
|
137
|
+
- examples/rails_openid/test/functional
|
138
|
+
- examples/rails_openid/test/mocks
|
139
|
+
- examples/rails_openid/test/unit
|
140
|
+
- examples/rails_openid/test/test_helper.rb
|
141
|
+
- examples/rails_openid/test/functional/login_controller_test.rb
|
142
|
+
- examples/rails_openid/test/functional/server_controller_test.rb
|
143
|
+
- examples/rails_openid/test/mocks/development
|
144
|
+
- examples/rails_openid/test/mocks/test
|
145
|
+
- lib/openid
|
145
146
|
- lib/hmac
|
146
147
|
- lib/openid.rb
|
147
|
-
- lib/openid
|
148
|
-
- lib/
|
149
|
-
- lib/hmac/sha2.rb
|
150
|
-
- lib/hmac/hmac.rb
|
151
|
-
- lib/openid/kvform.rb
|
148
|
+
- lib/openid/cryptutil.rb
|
149
|
+
- lib/openid/extras.rb
|
152
150
|
- lib/openid/urinorm.rb
|
151
|
+
- lib/openid/util.rb
|
152
|
+
- lib/openid/trustroot.rb
|
153
153
|
- lib/openid/message.rb
|
154
|
-
- lib/openid/
|
154
|
+
- lib/openid/yadis
|
155
|
+
- lib/openid/consumer
|
156
|
+
- lib/openid/fetchers.rb
|
155
157
|
- lib/openid/dh.rb
|
158
|
+
- lib/openid/kvform.rb
|
159
|
+
- lib/openid/association.rb
|
156
160
|
- lib/openid/store
|
157
|
-
- lib/openid/yadis
|
158
|
-
- lib/openid/server.rb
|
159
|
-
- lib/openid/trustroot.rb
|
160
|
-
- lib/openid/consumer.rb
|
161
161
|
- lib/openid/kvpost.rb
|
162
|
-
- lib/openid/
|
162
|
+
- lib/openid/extensions
|
163
163
|
- lib/openid/protocolerror.rb
|
164
|
+
- lib/openid/server.rb
|
164
165
|
- lib/openid/extension.rb
|
165
|
-
- lib/openid/
|
166
|
-
- lib/openid/util.rb
|
167
|
-
- lib/openid/extensions
|
168
|
-
- lib/openid/extras.rb
|
169
|
-
- lib/openid/fetchers.rb
|
170
|
-
- lib/openid/store/nonce.rb
|
171
|
-
- lib/openid/store/filesystem.rb
|
172
|
-
- lib/openid/store/interface.rb
|
173
|
-
- lib/openid/store/memory.rb
|
174
|
-
- lib/openid/yadis/xrds.rb
|
166
|
+
- lib/openid/consumer.rb
|
175
167
|
- lib/openid/yadis/htmltokenizer.rb
|
176
|
-
- lib/openid/yadis/discovery.rb
|
177
168
|
- lib/openid/yadis/parsehtml.rb
|
169
|
+
- lib/openid/yadis/filters.rb
|
170
|
+
- lib/openid/yadis/xrds.rb
|
178
171
|
- lib/openid/yadis/accept.rb
|
179
172
|
- lib/openid/yadis/constants.rb
|
180
|
-
- lib/openid/yadis/
|
181
|
-
- lib/openid/yadis/filters.rb
|
173
|
+
- lib/openid/yadis/discovery.rb
|
182
174
|
- lib/openid/yadis/xri.rb
|
175
|
+
- lib/openid/yadis/xrires.rb
|
183
176
|
- lib/openid/yadis/services.rb
|
184
|
-
- lib/openid/consumer/discovery.rb
|
185
177
|
- lib/openid/consumer/html_parse.rb
|
186
|
-
- lib/openid/consumer/discovery_manager.rb
|
187
178
|
- lib/openid/consumer/idres.rb
|
188
|
-
- lib/openid/consumer/responses.rb
|
189
|
-
- lib/openid/consumer/checkid_request.rb
|
190
179
|
- lib/openid/consumer/associationmanager.rb
|
191
|
-
- lib/openid/
|
180
|
+
- lib/openid/consumer/discovery.rb
|
181
|
+
- lib/openid/consumer/discovery_manager.rb
|
182
|
+
- lib/openid/consumer/checkid_request.rb
|
183
|
+
- lib/openid/consumer/responses.rb
|
184
|
+
- lib/openid/store/filesystem.rb
|
185
|
+
- lib/openid/store/interface.rb
|
186
|
+
- lib/openid/store/nonce.rb
|
187
|
+
- lib/openid/store/memory.rb
|
192
188
|
- lib/openid/extensions/sreg.rb
|
189
|
+
- lib/openid/extensions/ax.rb
|
193
190
|
- lib/openid/extensions/pape.rb
|
191
|
+
- lib/hmac/hmac.rb
|
192
|
+
- lib/hmac/sha1.rb
|
193
|
+
- lib/hmac/sha2.rb
|
194
194
|
- test/data
|
195
|
-
- test/test_nonce.rb
|
196
|
-
- test/test_ax.rb
|
197
|
-
- test/test_xrds.rb
|
198
|
-
- test/test_dh.rb
|
199
|
-
- test/test_urinorm.rb
|
200
|
-
- test/test_checkid_request.rb
|
201
|
-
- test/test_server.rb
|
202
|
-
- test/test_cryptutil.rb
|
203
|
-
- test/test_yadis_discovery.rb
|
204
|
-
- test/test_message.rb
|
205
|
-
- test/test_consumer.rb
|
206
|
-
- test/test_accept.rb
|
207
|
-
- test/test_responses.rb
|
208
|
-
- test/test_sreg.rb
|
209
195
|
- test/test_association.rb
|
210
|
-
- test/
|
211
|
-
- test/
|
212
|
-
- test/test_idres.rb
|
213
|
-
- test/test_linkparse.rb
|
196
|
+
- test/test_urinorm.rb
|
197
|
+
- test/testutil.rb
|
214
198
|
- test/test_util.rb
|
215
|
-
- test/
|
216
|
-
- test/
|
217
|
-
- test/
|
218
|
-
- test/discoverdata.rb
|
219
|
-
- test/test_parsehtml.rb
|
220
|
-
- test/test_stores.rb
|
199
|
+
- test/test_message.rb
|
200
|
+
- test/test_cryptutil.rb
|
201
|
+
- test/test_extras.rb
|
221
202
|
- test/util.rb
|
222
|
-
- test/test_xri.rb
|
223
203
|
- test/test_trustroot.rb
|
224
|
-
- test/
|
204
|
+
- test/test_parsehtml.rb
|
225
205
|
- test/test_fetchers.rb
|
226
|
-
- test/
|
227
|
-
- test/testutil.rb
|
206
|
+
- test/test_dh.rb
|
228
207
|
- test/test_kvform.rb
|
208
|
+
- test/test_openid_yadis.rb
|
209
|
+
- test/test_linkparse.rb
|
210
|
+
- test/test_stores.rb
|
211
|
+
- test/test_filters.rb
|
212
|
+
- test/test_xrds.rb
|
213
|
+
- test/test_nonce.rb
|
214
|
+
- test/test_accept.rb
|
215
|
+
- test/test_kvpost.rb
|
216
|
+
- test/test_associationmanager.rb
|
217
|
+
- test/discoverdata.rb
|
218
|
+
- test/test_server.rb
|
219
|
+
- test/test_yadis_discovery.rb
|
220
|
+
- test/test_sreg.rb
|
221
|
+
- test/test_idres.rb
|
222
|
+
- test/test_ax.rb
|
223
|
+
- test/test_xri.rb
|
224
|
+
- test/test_xrires.rb
|
229
225
|
- test/test_discover.rb
|
226
|
+
- test/test_consumer.rb
|
227
|
+
- test/test_pape.rb
|
228
|
+
- test/test_checkid_request.rb
|
230
229
|
- test/test_discovery_manager.rb
|
230
|
+
- test/test_responses.rb
|
231
|
+
- test/data/test_xrds
|
232
|
+
- test/data/urinorm.txt
|
231
233
|
- test/data/n2b64
|
232
|
-
- test/data/
|
233
|
-
- test/data/linkparse.txt
|
234
|
+
- test/data/trustroot.txt
|
234
235
|
- test/data/dh.txt
|
235
|
-
- test/data/accept.txt
|
236
236
|
- test/data/test1-parsehtml.txt
|
237
|
-
- test/data/
|
237
|
+
- test/data/linkparse.txt
|
238
|
+
- test/data/accept.txt
|
239
|
+
- test/data/test_discover
|
238
240
|
- test/data/example-xrds.xml
|
239
|
-
- test/data/trustroot.txt
|
240
|
-
- test/data/test_xrds
|
241
241
|
- test/data/test1-discover.txt
|
242
|
-
- test/data/
|
243
|
-
- test/data/test_discover/yadis_0entries.xml
|
244
|
-
- test/data/test_discover/yadis_another_delegate.xml
|
245
|
-
- test/data/test_discover/yadis_2entries_idp.xml
|
246
|
-
- test/data/test_discover/openid_1_and_2.html
|
247
|
-
- test/data/test_discover/openid2.html
|
248
|
-
- test/data/test_discover/openid_1_and_2_xrds_bad_delegate.xml
|
249
|
-
- test/data/test_discover/openid.html
|
250
|
-
- test/data/test_discover/yadis_idp_delegate.xml
|
251
|
-
- test/data/test_discover/yadis_idp.xml
|
252
|
-
- test/data/test_discover/openid_1_and_2_xrds.xml
|
253
|
-
- test/data/test_discover/openid2_xrds.xml
|
254
|
-
- test/data/test_discover/yadis_2_bad_local_id.xml
|
255
|
-
- test/data/test_discover/openid_no_delegate.html
|
256
|
-
- test/data/test_discover/yadis_2entries_delegate.xml
|
257
|
-
- test/data/test_discover/openid2_xrds_no_local_id.xml
|
258
|
-
- test/data/test_discover/yadis_no_delegate.xml
|
259
|
-
- test/data/test_xrds/=j3h.2007.11.14.xrds
|
260
|
-
- test/data/test_xrds/delegated-20060809.xrds
|
261
|
-
- test/data/test_xrds/status222.xrds
|
242
|
+
- test/data/test_xrds/ref.xrds
|
262
243
|
- test/data/test_xrds/README
|
263
244
|
- test/data/test_xrds/delegated-20060809-r1.xrds
|
264
245
|
- test/data/test_xrds/delegated-20060809-r2.xrds
|
246
|
+
- test/data/test_xrds/delegated-20060809.xrds
|
247
|
+
- test/data/test_xrds/no-xrd.xml
|
248
|
+
- test/data/test_xrds/not-xrds.xml
|
249
|
+
- test/data/test_xrds/prefixsometimes.xrds
|
265
250
|
- test/data/test_xrds/sometimesprefix.xrds
|
266
251
|
- test/data/test_xrds/spoof1.xrds
|
267
252
|
- test/data/test_xrds/spoof2.xrds
|
268
253
|
- test/data/test_xrds/spoof3.xrds
|
254
|
+
- test/data/test_xrds/status222.xrds
|
269
255
|
- test/data/test_xrds/valid-populated-xrds.xml
|
270
|
-
- test/data/test_xrds
|
271
|
-
- test/data/test_xrds/
|
272
|
-
- test/data/
|
273
|
-
- test/data/
|
256
|
+
- test/data/test_xrds/=j3h.2007.11.14.xrds
|
257
|
+
- test/data/test_xrds/subsegments.xrds
|
258
|
+
- test/data/test_discover/openid2_xrds.xml
|
259
|
+
- test/data/test_discover/openid.html
|
260
|
+
- test/data/test_discover/openid2.html
|
261
|
+
- test/data/test_discover/openid2_xrds_no_local_id.xml
|
262
|
+
- test/data/test_discover/openid_1_and_2.html
|
263
|
+
- test/data/test_discover/openid_1_and_2_xrds.xml
|
264
|
+
- test/data/test_discover/openid_and_yadis.html
|
265
|
+
- test/data/test_discover/openid_1_and_2_xrds_bad_delegate.xml
|
266
|
+
- test/data/test_discover/openid_no_delegate.html
|
267
|
+
- test/data/test_discover/yadis_0entries.xml
|
268
|
+
- test/data/test_discover/yadis_2_bad_local_id.xml
|
269
|
+
- test/data/test_discover/yadis_2entries_delegate.xml
|
270
|
+
- test/data/test_discover/yadis_2entries_idp.xml
|
271
|
+
- test/data/test_discover/yadis_another_delegate.xml
|
272
|
+
- test/data/test_discover/yadis_idp.xml
|
273
|
+
- test/data/test_discover/yadis_idp_delegate.xml
|
274
|
+
- test/data/test_discover/yadis_no_delegate.xml
|
274
275
|
- NOTICE
|
275
276
|
- CHANGELOG
|
276
277
|
- README
|