Skip to content

Commit 4df1861

Browse files
author
Robert Mitwicki
committed
Improve service ticket validation
1 parent 42aca3b commit 4df1861

File tree

2 files changed

+9
-10
lines changed

2 files changed

+9
-10
lines changed

lib/rubycas-server-core/tickets/validations.rb

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ module Validations
44

55
# Validate login ticket
66
#
7-
# Returned [succes, error_message]
7+
# Returned [success, error_message]
88
def validate_login_ticket(ticket)
99
$LOG.debug "Validating login ticket '#{ticket}'"
1010
success = false
@@ -55,6 +55,8 @@ def validate_ticket_granting_ticket(ticket)
5555

5656
def validate_service_ticket(service, ticket, allow_proxy_tickets = false)
5757
$LOG.debug "Validating service/proxy ticket '#{ticket}' for service '#{service}'"
58+
success = false
59+
error = nil
5860

5961
if service.nil? or ticket.nil?
6062
error = Error.new(:INVALID_REQUEST, "Ticket or service parameter was missing in the request.")
@@ -74,19 +76,16 @@ def validate_service_ticket(service, ticket, allow_proxy_tickets = false)
7476
" but the requested service '#{service}' does not match the service '#{st.service}' associated with this ticket.")
7577
$LOG.warn "#{error.code} - #{error.message}"
7678
else
79+
st.consume!
80+
success = true
7781
$LOG.info("Ticket '#{ticket}' for service '#{service}' for user '#{st.username}' successfully validated.")
7882
end
7983
else
8084
error = Error.new(:INVALID_TICKET, "Ticket '#{ticket}' not recognized.")
8185
$LOG.warn("#{error.code} - #{error.message}")
8286
end
8387

84-
if st
85-
st.consume!
86-
end
87-
88-
89-
[st, error]
88+
return [success, error]
9089
end
9190

9291
def validate_proxy_ticket(service, ticket)

spec/rubycas-server-core/tickets/validations_spec.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
it "should validate login ticket" do
1717
@lt = Tickets.generate_login_ticket(@client_hostname)
1818
success, error = @cas.validate_login_ticket(@lt.ticket)
19-
success.should be_true
19+
success.should be_truthy
2020
error.should be_nil
2121
end
2222
end
@@ -30,7 +30,7 @@
3030

3131
it "should validate ticket granting ticket" do
3232
success, error = @cas.validate_ticket_granting_ticket(@tgt.ticket)
33-
success.should be_true
33+
success.should be_truthy
3434
error.should be_nil
3535
end
3636
end
@@ -46,7 +46,7 @@
4646

4747
it "should validate service ticket" do
4848
success, error = @cas.validate_service_ticket(@service, @st.ticket)
49-
success.should be_true
49+
success.should be_truthy
5050
error.should be_nil
5151
end
5252
end

0 commit comments

Comments
 (0)