File tree Expand file tree Collapse file tree 3 files changed +21
-3
lines changed
Expand file tree Collapse file tree 3 files changed +21
-3
lines changed Original file line number Diff line number Diff line change @@ -19,8 +19,8 @@ def create(settings, params = {})
1919
2020 Logging . debug "Created AuthnRequest: #{ request } "
2121
22- deflated_request = Zlib ::Deflate . deflate ( request , 9 ) [ 2 ..-5 ]
23- base64_request = Base64 . encode64 ( deflated_request )
22+ request = Zlib ::Deflate . deflate ( request , 9 ) [ 2 ..-5 ] if settings . compress_request
23+ base64_request = Base64 . encode64 ( request )
2424 encoded_request = CGI . escape ( base64_request )
2525 params_prefix = ( settings . idp_sso_target_url =~ /\? / ) ? '&' : '?'
2626 request_params = "#{ params_prefix } SAMLRequest=#{ encoded_request } "
Original file line number Diff line number Diff line change 11module Onelogin
22 module Saml
33 class Settings
4- def initialize ( config = { } )
4+ def initialize ( overrides = { } )
5+ config = DEFAULTS . merge ( overrides )
56 config . each do |k , v |
67 acc = "#{ k . to_s } =" . to_sym
78 self . send ( acc , v ) if self . respond_to? acc
@@ -14,6 +15,11 @@ def initialize(config = {})
1415 attr_accessor :name_identifier_value
1516 attr_accessor :sessionindex
1617 attr_accessor :assertion_consumer_logout_service_url
18+ attr_accessor :compress_request
19+
20+ private
21+
22+ DEFAULTS = { :compress_request => true }
1723 end
1824 end
1925end
Original file line number Diff line number Diff line change @@ -19,6 +19,18 @@ class RequestTest < Test::Unit::TestCase
1919 assert_match /^<samlp:AuthnRequest/ , inflated
2020 end
2121
22+ should "create the SAMLRequest URL parameter without deflating" do
23+ settings = Onelogin ::Saml ::Settings . new
24+ settings . compress_request = false
25+ settings . idp_sso_target_url = "http://example.com"
26+ auth_url = Onelogin ::Saml ::Authrequest . new . create ( settings )
27+ assert auth_url =~ /^http:\/ \/ example\. com\? SAMLRequest=/
28+ payload = CGI . unescape ( auth_url . split ( "=" ) . last )
29+ decoded = Base64 . decode64 ( payload )
30+
31+ assert_match /^<samlp:AuthnRequest/ , decoded
32+ end
33+
2234 should "accept extra parameters" do
2335 settings = Onelogin ::Saml ::Settings . new
2436 settings . idp_sso_target_url = "http://example.com"
You can’t perform that action at this time.
0 commit comments