Commit 749dd23
2017-11-19 17:28:37
1 parent
cf60d1e
Changed files (5)
proof
app
controllers
views
sessions
saml-kit
lib
spec
proof/app/controllers/sessions_controller.rb
@@ -11,8 +11,8 @@ class SessionsController < ApplicationController
if user = User.login(user_params[:email], user_params[:password])
reset_session
session[:user_id] = user.id
- @saml_response = @saml_request.response_for(user)
- @relay_state = params[:RelayState]
+ binding = @saml_request.provider.single_logout_service_for(binding: :post)
+ @url, @saml_params = binding.serialize(@saml_request.response_for(user), relay_state: session[:RelayState])
render layout: "spinner"
else
redirect_to new_session_path, error: "Invalid Credentials"
proof/app/views/sessions/create.html.erb
@@ -1,6 +1,7 @@
-<%= form_tag(@saml_response.destination, style: "position: absolute; left: -10000px; top: -10000px;") do %>
- <%= hidden_field_tag("SAMLResponse", @saml_response.serialize) %>
- <%= hidden_field_tag("RelayState", @relay_state) %>
+<%= form_tag(@url, style: "position: absolute; left: -10000px; top: -10000px;") do %>
+ <% @saml_params.each do |(key, value)| %>
+ <%= hidden_field_tag key, value %>
+ <% end %>
<%= submit_tag "Submit" %>
<% end %>
saml-kit/lib/saml/kit/authentication_request.rb
@@ -21,7 +21,7 @@ module Saml
end
def response_for(user)
- Response::Builder.new(user, self).build
+ Response::Builder.new(user, self)
end
private
saml-kit/lib/saml/kit/logout_request.rb
@@ -19,7 +19,7 @@ module Saml
end
def response_for(user)
- LogoutResponse::Builder.new(user, self).build
+ LogoutResponse::Builder.new(user, self)
end
private
saml-kit/spec/saml/logout_request_spec.rb
@@ -161,7 +161,7 @@ RSpec.describe Saml::Kit::LogoutRequest do
describe "#response_for" do
it 'returns a logout response for a particular user' do
user = double(:user)
- expect(subject.response_for(user)).to be_instance_of(Saml::Kit::LogoutResponse)
+ expect(subject.response_for(user)).to be_instance_of(Saml::Kit::LogoutResponse::Builder)
end
end
end