casino 2.0.4 → 2.0.5
Sign up to get free protection for your applications and to get access to all the features.
data.tar.gz.sig
CHANGED
@@ -1 +1,2 @@
|
|
1
|
-
|
1
|
+
�T+����~W����f`oYJVO��j��Z��t�Qv%L䕜&���������e���3�~Ao���gA�$z%6��r��8�N�QN|~[�0��jeN:��[]Oq�v��řyo�
|
2
|
+
��� �?�V�|�d1�w�A���t�<��������d��7��ϝ�Tk�(-�d����3s�'�-�]7��遴�$�^I�u�=�W�d/�w�ע��ހq��������Q�X�9���y��zHM�n�γ^dY��
|
@@ -19,6 +19,13 @@ class CASino::ServiceTicket < ActiveRecord::Base
|
|
19
19
|
self.delete_all(['created_at < ? AND consumed = ?', (CASino.config.service_ticket[:lifetime_consumed].seconds * 2).ago, true])
|
20
20
|
end
|
21
21
|
|
22
|
+
|
23
|
+
def service=(service)
|
24
|
+
normalized_encoded_service = Addressable::URI.parse(service).normalize.to_str
|
25
|
+
super(normalized_encoded_service)
|
26
|
+
end
|
27
|
+
|
28
|
+
|
22
29
|
def service_with_ticket_url
|
23
30
|
service_uri = Addressable::URI.parse(self.service)
|
24
31
|
service_uri.query_values = (service_uri.query_values(Array) || []) << ['ticket', self.ticket]
|
data/lib/casino/version.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
|
3
5
|
describe CASino::ServiceTicket do
|
@@ -116,9 +118,33 @@ describe CASino::ServiceTicket do
|
|
116
118
|
end
|
117
119
|
|
118
120
|
describe '#service_with_ticket_url' do
|
119
|
-
it '
|
120
|
-
unconsumed_ticket.service = 'https://host.example.org/test.php?
|
121
|
-
unconsumed_ticket.service_with_ticket_url.should eq('https://host.example.org/test.php?
|
121
|
+
it 'appends the service ticket id to the querystring' do
|
122
|
+
unconsumed_ticket.service = 'https://host.example.org/test.php?iam=testing'
|
123
|
+
unconsumed_ticket.service_with_ticket_url.should eq('https://host.example.org/test.php?iam=testing&ticket=ST-12345')
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
describe '#service=' do
|
128
|
+
it 'encodes the url before writing to the database' do
|
129
|
+
unconsumed_ticket.service = 'https://example.org/this is a test/jö.png'
|
130
|
+
unconsumed_ticket.service.should eq('https://example.org/this%20is%20a%20test/j%C3%B6.png')
|
131
|
+
end
|
132
|
+
|
133
|
+
it 'does not encode the querystring symbols (&?=) before writing to the database' do
|
134
|
+
unconsumed_ticket.service = 'https://example.org/test.php?t=other&other=testing'
|
135
|
+
unconsumed_ticket.service.should eq('https://example.org/test.php?t=other&other=testing')
|
136
|
+
end
|
137
|
+
|
138
|
+
it 'does not encode the encoded string' do
|
139
|
+
unconsumed_ticket.service = 'https://example.org/this is a test/jö.png'
|
140
|
+
unconsumed_ticket.service = unconsumed_ticket.service
|
141
|
+
unconsumed_ticket.service.should eq('https://example.org/this%20is%20a%20test/j%C3%B6.png')
|
142
|
+
end
|
143
|
+
|
144
|
+
it 'does correctly reencode slashes' do
|
145
|
+
unconsumed_ticket.service = 'https://example.com/login?os_destination=http%3A%2F%2Fexample.com%2Fdisplay%2FTesting%2F%3Fa%3D1%26b%3D2'
|
146
|
+
unconsumed_ticket.service = unconsumed_ticket.service
|
147
|
+
unconsumed_ticket.service.should eq('https://example.com/login?os_destination=http://example.com/display/Testing/?a=1%26b=2')
|
122
148
|
end
|
123
149
|
end
|
124
150
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: casino
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -38,7 +38,7 @@ cert_chain:
|
|
38
38
|
b1VSdnUwRzgvWXlIVUFtSVUvV0tyanIxYmdjZjFWUnYKUjRLRDFNblVWL3Y1
|
39
39
|
MDJwaU1sWG1qeE9XZGJLOHl2UUVIa3N1L3pqYkNqU3UrTTJrd0ZtV0dzeDVu
|
40
40
|
eCtWZHc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
|
41
|
-
date: 2014-
|
41
|
+
date: 2014-03-20 00:00:00.000000000 Z
|
42
42
|
dependencies:
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: capybara
|
metadata.gz.sig
CHANGED
Binary file
|