| | |
| | | return FALSE; |
| | | } |
| | | |
| | | public static function get_string_between(string $string, string $start, string $end): string |
| | | { |
| | | $string = ' ' . $string; |
| | | $ini = strpos($string, $start); |
| | | if ($ini == 0) return ''; |
| | | $ini += strlen($start); |
| | | $len = strpos($string, $end, $ini) - $ini; |
| | | return substr($string, $ini, $len); |
| | | } |
| | | |
| | | public static function getLegacyAuthCookie(Request $request): ?string |
| | | { |
| | | return $request->cookie('CAuthCookie', null); |
| | |
| | | public static function getRequestedUser(Request $request): ?string |
| | | { |
| | | $picassoRequest = (str_starts_with($request->getRequestUri(), '/picasso/',)); |
| | | $isLoggedRequest = str_contains( self::get_string_between($request->getRequestUri(), '/', '?'), 'islogged' ); |
| | | $profile = null; |
| | | |
| | | if (!$picassoRequest) { |
| | | if (is_null(self::getLegacyAuthCookie($request))) { |
| | | if ((!$picassoRequest) && (!$isLoggedRequest)) { |
| | | // la rotta sso islogged usa solo il cookie per identificare l'utente |
| | | $reqParams = !empty($request->query()) ? $request->query() : []; |
| | | if (isset($reqParams["t"])) { |
| | | $profile = $reqParams["t"]; |
| | | } |
| | | } else { |
| | | // tutte le chiamate che non sono islogged usano il parametro t (token) per identificare l'utente |
| | | $profile = self::getLegacyAuthCookie($request); |
| | | } |
| | | } else if ($picassoRequest && self::getPicassoAuthCookie($request)) { |
| | | |
| | | if ($picassoRequest) { |
| | | // picasso usa sempre il cookie per identifcare l'utente |
| | | $profile = self::getPicassoAuthCookie($request); |
| | | } |
| | | |
| | | $profile = (is_null($profile)) ? null : intval(str_replace("xno:", "", $profile)); |
| | | return $profile; |
| | | } |