Class: CASClient::RestClient
- Inherits:
-
Client
- Object
- Client
- CASClient::RestClient
show all
- Defined in:
- lib/casclient/rest_client.rb
Instance Attribute Summary collapse
Attributes inherited from Client
#cas_base_url, #extra_attributes_session_key, #log, #login_url, #logout_url, #proxy_callback_url, #proxy_retrieval_url, #proxy_url, #service_url, #username_session_key, #validate_url
Instance Method Summary
collapse
Methods inherited from Client
#add_service_to_login_url, #http_connection, #initialize, #load_ticket_url, #login_to_service, #request_login_ticket, #request_proxy_ticket, #retrieve_proxy_granting_ticket, #validate_service_ticket
Instance Attribute Details
#restful_url ⇒ Object
10
11
12
|
# File 'lib/casclient/rest_client.rb', line 10
def restful_url
@restful_url || (cas_base_url + "/v1/tickets")
end
|
Instance Method Details
5
6
7
8
|
# File 'lib/casclient/rest_client.rb', line 5
def configure(conf)
@restful_url = conf[:restful_url]
super
end
|
#get_service_ticket(credentials, service_url) ⇒ Object
41
42
43
44
45
|
# File 'lib/casclient/rest_client.rb', line 41
def get_service_ticket(credentials, service_url)
tgt_resource = get_ticket_granting_ticket_resource(credentials)
data = credentials.merge(:service => CGI.escape(service_url)).stringify_keys
resp = submit_data_to_cas(restful_url, data, '&')
end
|
#get_ticket_granting_ticket_resource(credentials) ⇒ Object
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# File 'lib/casclient/rest_client.rb', line 14
def get_ticket_granting_ticket_resource(credentials)
resp = submit_data_to_cas(restful_url, credentials.stringify_keys, '&')
puts "resp: #{resp.inspect}"
case resp
when Net::HTTPCreated then
log.debug("successfully created a TGT")
= resp.to_hash
return ['location']
when Net::HTTPForbidden then
log.warn("RestClient.get_ticket_granting_ticket_resource: credentials were incorrect")
return nil
when Net::HTTPBadRequest then
log.error("RestClient.get_ticket_granting_ticket_resource: CAS server returned BadRequest")
raise BadRequestException, res.body
else
log.warn "RestClient.get_ticket_granting_ticket_resource: an unexpected error occurred #{resp}"
raise CASException, res.inspect
end
end
|
#ticket_id_from_resource_url(*ticket_resource) ⇒ Object
34
35
36
37
38
39
|
# File 'lib/casclient/rest_client.rb', line 34
def ticket_id_from_resource_url(*ticket_resource)
ticket_resource = ticket_resource.flatten.to_s
match = ticket_resource.match(/(TGT[^\/]+cas)/)
raise Exception, "could not extract ticket id from #{ticket_resource}" unless match
return match[1]
end
|