Class: CASClient::LoginResponse
- Inherits:
-
Object
- Object
- CASClient::LoginResponse
- Defined in:
- lib/casclient/responses.rb
Overview
Represents a response from the CAS server to a login request (i.e. after submitting a username/password).
Instance Attribute Summary collapse
-
#failure_message ⇒ Object
readonly
Returns the value of attribute failure_message.
-
#service_redirect_url ⇒ Object
readonly
Returns the value of attribute service_redirect_url.
-
#tgt ⇒ Object
readonly
Returns the value of attribute tgt.
-
#ticket ⇒ Object
readonly
Returns the value of attribute ticket.
Instance Method Summary collapse
-
#initialize(http_response = nil, options = {}) ⇒ LoginResponse
constructor
A new instance of LoginResponse.
- #is_failure? ⇒ Boolean
- #is_success? ⇒ Boolean
- #parse_http_response(http_response) ⇒ Object
Constructor Details
#initialize(http_response = nil, options = {}) ⇒ LoginResponse
Returns a new instance of LoginResponse.
175 176 177 |
# File 'lib/casclient/responses.rb', line 175 def initialize(http_response = nil, ={}) parse_http_response(http_response) if http_response end |
Instance Attribute Details
#failure_message ⇒ Object (readonly)
Returns the value of attribute failure_message.
173 174 175 |
# File 'lib/casclient/responses.rb', line 173 def @failure_message end |
#service_redirect_url ⇒ Object (readonly)
Returns the value of attribute service_redirect_url.
172 173 174 |
# File 'lib/casclient/responses.rb', line 172 def service_redirect_url @service_redirect_url end |
#tgt ⇒ Object (readonly)
Returns the value of attribute tgt.
172 173 174 |
# File 'lib/casclient/responses.rb', line 172 def tgt @tgt end |
#ticket ⇒ Object (readonly)
Returns the value of attribute ticket.
172 173 174 |
# File 'lib/casclient/responses.rb', line 172 def ticket @ticket end |
Instance Method Details
#is_failure? ⇒ Boolean
213 214 215 |
# File 'lib/casclient/responses.rb', line 213 def is_failure? @failure == true end |
#is_success? ⇒ Boolean
209 210 211 |
# File 'lib/casclient/responses.rb', line 209 def is_success? !@failure && !ticket.blank? end |
#parse_http_response(http_response) ⇒ Object
179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 |
# File 'lib/casclient/responses.rb', line 179 def parse_http_response(http_response) header = http_response.to_hash # FIXME: this regexp might be incorrect... if header['set-cookie'] && header['set-cookie'].first && header['set-cookie'].first =~ /tgt=([^&]+);/ @tgt = $~[1] end location = header['location'].first if header['location'] && header['location'].first if location =~ /ticket=([^&]+)/ @ticket = $~[1] end if not ((http_response.kind_of?(Net::HTTPSuccess) || http_response.kind_of?(Net::HTTPFound)) && @ticket.present?) @failure = true # Try to extract the error message -- this only works with RubyCAS-Server. # For other servers we just return the entire response body (i.e. the whole error page). body = http_response.body if body =~ /<div class="messagebox mistake">(.*?)<\/div>/m @failure_message = $~[1].strip else @failure_message = body end end @service_redirect_url = location end |