@@ -16,6 +16,7 @@ defmodule Samly.IdpData do
1616 custom_recipient_url: nil ,
1717 metadata_file: nil ,
1818 metadata: nil ,
19+ on_error_pipeline: nil ,
1920 pre_session_create_pipeline: nil ,
2021 use_redirect_for_req: false ,
2122 sign_requests: true ,
@@ -45,6 +46,7 @@ defmodule Samly.IdpData do
4546 custom_recipient_url: nil | binary ( ) ,
4647 metadata_file: nil | binary ( ) ,
4748 metadata: nil | binary ( ) ,
49+ on_error_pipeline: nil | module ( ) ,
4850 pre_session_create_pipeline: nil | module ( ) ,
4951 use_redirect_for_req: boolean ( ) ,
5052 sign_requests: boolean ( ) ,
@@ -117,6 +119,7 @@ defmodule Samly.IdpData do
117119 % IdpData { idp_data | id: id , sp_id: sp_id , base_url: Map . get ( opts_map , :base_url ) }
118120 |> set_metadata ( opts_map )
119121 |> set_pipeline ( opts_map )
122+ |> set_error_pipeline ( opts_map )
120123 |> set_custom_recipient_url ( opts_map )
121124 |> set_allowed_target_urls ( opts_map )
122125 |> set_boolean_attr ( opts_map , :use_redirect_for_req )
@@ -206,6 +209,12 @@ defmodule Samly.IdpData do
206209 % IdpData { idp_data | pre_session_create_pipeline: pipeline }
207210 end
208211
212+ @ spec set_error_pipeline ( % IdpData { } , map ( ) ) :: % IdpData { }
213+ defp set_error_pipeline ( % IdpData { } = idp_data , % { } = opts_map ) do
214+ pipeline = Map . get ( opts_map , :on_error_pipeline )
215+ % IdpData { idp_data | on_error_pipeline: pipeline }
216+ end
217+
209218 @ spec set_custom_recipient_url ( % IdpData { } , map ( ) ) :: % IdpData { }
210219 defp set_custom_recipient_url ( % IdpData { } = idp_data , % { } = opts_map ) do
211220 consume_url =
@@ -372,7 +381,9 @@ defmodule Samly.IdpData do
372381 idp_signs_assertions: idp_data . signed_assertion_in_resp ,
373382 trusted_fingerprints: idp_data . fingerprints ,
374383 metadata_uri: Helper . get_metadata_uri ( idp_data . base_url , path_segment_idp_id ) ,
375- consume_uri: idp_data . custom_recipient_url || Helper . get_consume_uri ( idp_data . base_url , path_segment_idp_id ) ,
384+ consume_uri:
385+ idp_data . custom_recipient_url ||
386+ Helper . get_consume_uri ( idp_data . base_url , path_segment_idp_id ) ,
376387 logout_uri: Helper . get_logout_uri ( idp_data . base_url , path_segment_idp_id ) ,
377388 entity_id: sp_entity_id
378389 )
0 commit comments