diff --git a/lib/cas_example.rb b/lib/cas_example.rb index 29296a8..374aef9 100644 --- a/lib/cas_example.rb +++ b/lib/cas_example.rb @@ -17,6 +17,6 @@ class CasExample < Sinatra::Base get "/protected" do require_authorization(request, session) unless logged_in?(request, session) - "you are logged in as #{session[:cas_user]}" + "you are logged in as #{session}" end end diff --git a/lib/cas_helpers.rb b/lib/cas_helpers.rb index db08148..26f9dbe 100644 --- a/lib/cas_helpers.rb +++ b/lib/cas_helpers.rb @@ -28,6 +28,8 @@ def process_cas_login(request, session) if st.success session[:cas_ticket] = st.ticket session[:cas_user] = st.user + session[:cas_extra_attributes] = st.extra_attributes + return service_url else raise "Service Ticket validation failed! #{st.failure_code} - #{st.failure_message}" end @@ -62,9 +64,9 @@ def read_service_url(request) service_url = url(request.path_info) if request.GET params = request.GET.dup - params.delete(:ticket) - if params - [service_url, Rack::Utils.build_nested_query(params)].join('?') + params.delete("ticket") + unless params.empty? + return [service_url, Rack::Utils.build_nested_query(params)].join('?') end end return service_url