class RackCAS::Server
Public Class Methods
new(url)
click to toggle source
# File lib/rack-cas/server.rb, line 7 def initialize(url) @url = RackCAS::URL.parse(url) end
Public Instance Methods
login_url(service_url, params = {})
click to toggle source
# File lib/rack-cas/server.rb, line 11 def login_url(service_url, params = {}) service_url = URL.parse(service_url).to_s base_params = {service: service_url} base_params[:renew] = true if RackCAS.config.renew? url = RackCAS.config.login_url? ? RackCAS::URL.parse(RackCAS.config.login_url) : @url.dup.append_path('login') url.add_params(base_params.merge(params)) end
logout_url(params = {})
click to toggle source
# File lib/rack-cas/server.rb, line 20 def logout_url(params = {}) @url.dup.tap do |url| url.append_path('logout') url.add_params(params) unless params.empty? end end
validate_service(service_url, ticket)
click to toggle source
# File lib/rack-cas/server.rb, line 27 def validate_service(service_url, ticket) unless RackCAS.config.use_saml_validation? response = ServiceValidationResponse.new validate_service_url(service_url, ticket) else response = SAMLValidationResponse.new saml_validate_url(service_url), ticket end [response.user, response.extra_attributes] end
Protected Instance Methods
path_for_protocol(path)
click to toggle source
# File lib/rack-cas/server.rb, line 48 def path_for_protocol(path) if RackCAS.config.protocol && RackCAS.config.protocol == "p3" "p3/#{path}" else path end end
saml_validate_url(service_url)
click to toggle source
# File lib/rack-cas/server.rb, line 38 def saml_validate_url(service_url) service_url = URL.parse(service_url).remove_param('ticket').to_s @url.dup.append_path(path_for_protocol('samlValidate')).add_params(TARGET: service_url) end
validate_service_url(service_url, ticket)
click to toggle source
# File lib/rack-cas/server.rb, line 43 def validate_service_url(service_url, ticket) service_url = URL.parse(service_url).remove_param('ticket').to_s @url.dup.append_path(path_for_protocol('serviceValidate')).add_params(service: service_url, ticket: ticket) end