From 4a26f63bd63471e28a75e01a68b5dff1611ee422 Mon Sep 17 00:00:00 2001 From: JianBo He Date: Fri, 22 Sep 2023 11:56:53 +0800 Subject: [PATCH] chore: fix bugs --- .../src/emqx_dashboard_sso_saml.erl | 22 +++++-------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/apps/emqx_dashboard_sso/src/emqx_dashboard_sso_saml.erl b/apps/emqx_dashboard_sso/src/emqx_dashboard_sso_saml.erl index 1f21dc042..4d172dcdb 100644 --- a/apps/emqx_dashboard_sso/src/emqx_dashboard_sso_saml.erl +++ b/apps/emqx_dashboard_sso/src/emqx_dashboard_sso_saml.erl @@ -107,8 +107,8 @@ create( %% certificate = Cert, sp_sign_requests = SignRequest, trusted_fingerprints = [], - consume_uri = BaseURL ++ "/sso_saml/acs", - metadata_uri = BaseURL ++ "/sso_saml/metadata", + consume_uri = BaseURL ++ "/sso/saml/acs", + metadata_uri = BaseURL ++ "/sso/saml/metadata", org = #esaml_org{ name = "EMQX Team", displayname = "EMQX Dashboard", @@ -139,17 +139,14 @@ login(_Req, #{sp := SP, idp_meta := #esaml_idp_metadata{login_location = IDP}} = Target = esaml_binding:encode_http_redirect(IDP, SignedXml, <<>>), %% TODO: _Req acutally is HTTP request body, not fully request RedirectFun = fun(Headers) -> + RespHeaders = #{<<"Cache-Control">> => <<"no-cache">>, <<"Pragma">> => <<"no-cache">>}, case is_msie(Headers) of true -> Html = esaml_binding:encode_http_post(IDP, SignedXml, <<>>), - {200, - [ - {<<"Cache-Control">>, <<"no-cache">>}, - {<<"Pragma">>, <<"no-cache">>} - ], - Html}; + {200, RespHeaders, Html}; false -> - {302, redirect_header(Target), <<"Redirecting...">>} + RespHeaders1 = RespHeaders#{<<"Location">> => Target}, + {302, RespHeaders1, <<"Redirecting...">>} end end, {redirect, RedirectFun}. @@ -178,13 +175,6 @@ is_msie(Headers) -> UA = maps:get(<<"user-agent">>, Headers, <<"">>), not (binary:match(UA, <<"MSIE">>) =:= nomatch). -redirect_header(TargetUrl) -> - [ - {<<"Cache-Control">>, <<"no-cache">>}, - {<<"Pragma">>, <<"no-cache">>}, - {<<"Location">>, TargetUrl} - ]. - %% TODO: unify with emqx_dashboard_sso_manager:ensure_user_exists/1 ensure_user_exists(Username) -> case emqx_dashboard_admin:lookup_user(saml, Username) of