diff --git a/access.lua b/access.lua index e4e76a1..9595491 100644 --- a/access.lua +++ b/access.lua @@ -343,16 +343,20 @@ end -- The default is to protect every URL by default. -- --- Only display this if HTTPS. For HTTP, we can't know if the user really is --- logged in or not, because the cookie is available only in HTTP... -if ngx.var.scheme == "https" then - hlp.flash("info", hlp.t("please_login")) -end - -- Force the scheme to HTTPS. This is to avoid an issue with redirection loop -- when trying to access http://main.domain.tld/ (SSOwat finds that user aint -- logged in, therefore redirects to SSO, which redirects to the back_url, which -- redirect to SSO, ..) logger.debug("No rule found for "..ngx.var.uri..". By default, redirecting to portal") -local back_url = "https://" .. ngx.var.host .. ngx.var.uri .. hlp.uri_args_string() -return hlp.redirect(conf.portal_url.."?r="..ngx.encode_base64(back_url)) +if is_logged_in then + return hlp.redirect(conf.portal_url) +else + -- Only display this if HTTPS. For HTTP, we can't know if the user really is + -- logged in or not, because the cookie is available only in HTTP... + if ngx.var.scheme == "https" then + hlp.flash("info", hlp.t("please_login")) + end + + local back_url = "https://" .. ngx.var.host .. ngx.var.uri .. hlp.uri_args_string() + return hlp.redirect(conf.portal_url.."?r="..ngx.encode_base64(back_url)) +end diff --git a/config.lua b/config.lua index 1bf9151..e15ed38 100644 --- a/config.lua +++ b/config.lua @@ -82,7 +82,7 @@ function get_config() -- Always skip the portal to avoid redirection looping. - table.insert(conf["skipped_urls"], conf["portal_domain"]..conf["portal_path"]) + table.insert(conf["permissions"]["core_skipped"]["uris"], conf["portal_domain"]..conf["portal_path"]) -- Set the prefered language from the `Accept-Language` header