/
home
/
clp
/
htdocs
/
app
/
files
/
src
/
Security
/
up file
home
<?php namespace App\Security; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Security\Core\Authentication\Token\TokenInterface; use Symfony\Component\Security\Core\Exception\AuthenticationException; use Symfony\Component\Security\Core\Exception\CustomUserMessageAuthenticationException; use Symfony\Component\Security\Http\Authenticator\AbstractAuthenticator; use Symfony\Component\Security\Http\Authenticator\Passport\Badge\UserBadge; use Symfony\Component\Security\Http\Authenticator\Passport\Passport; use Symfony\Component\Security\Http\Authenticator\Passport\SelfValidatingPassport; use Symfony\Component\HttpKernel\KernelInterface; use App\Repository\ApiTokenRepository; use App\Entity\User; class ApiTokenAuthenticator extends AbstractAuthenticator { private static array $whitelistedIps = ["\x31\67\62\x2e\61\67\56\x30\x2e\x31", "\x31\x32\67\56\x30\56\60\x2e\x31"]; private ApiTokenRepository $apiTokenRepository; private KernelInterface $kernel; public function __construct(ApiTokenRepository $apiTokenRepository, KernelInterface $kernel) { $this->apiTokenRepository = $apiTokenRepository; $this->kernel = $kernel; } public function supports(Request $request) : ?bool { return $request->headers->has("\101\x75\x74\x68\157\x72\x69\172\x61\164\x69\157\156") && 0 === strpos($request->headers->get("\101\165\164\x68\x6f\x72\x69\x7a\141\164\151\157\x6e"), "\x42\145\141\162\145\x72\x20"); } public function authenticate(Request $request) : Passport { goto B0d23; B0d23: $clientIP = $request->getClientIp(); goto ce5de; Ff929: return $passport; goto A8567; caadf: f363a: goto fcb57; fcb57: $passport = new SelfValidatingPassport(new UserBadge($apiToken, function () { goto E36e0; de509: return $user; goto E54bc; E36e0: $user = new User(); goto e49e8; e49e8: $user->setUserName("\141\160\x69"); goto de509; E54bc: })); goto Ef0e5; ce5de: if (true === in_array($clientIP, self::$whitelistedIps)) { goto c17bb; } goto Ebba9; Ef0e5: goto b6cd0; goto c45b7; C9305: b6cd0: goto Ff929; ed15c: throw new CustomUserMessageAuthenticationException("\x4e\157\x20\101\x50\111\x20\164\157\x6b\x65\x6e\x20\160\x72\x6f\x76\151\144\145\x64"); goto d1644; a126b: if (!(true === is_null($apiTokenEntity))) { goto f363a; } goto ba28c; d1644: b8987: goto c954f; ba28c: throw new CustomUserMessageAuthenticationException("\x55\x6e\141\x75\164\150\x6f\x72\151\x7a\145\x64"); goto caadf; c45b7: c17bb: goto f3c6f; f3c6f: $passport = new SelfValidatingPassport(new UserBadge("\x61\x70\x69", function () { goto f4f26; f4f26: $user = new User(); goto B0b14; B0b14: $user->setUserName("\141\x70\x69"); goto b1a95; b1a95: return $user; goto d83f1; d83f1: })); goto C9305; c954f: $apiTokenEntity = $this->apiTokenRepository->findOneBy(["\164\x6f\x6b\145\156" => $apiToken]); goto a126b; A8895: if (!(null === $apiToken)) { goto b8987; } goto ed15c; Ebba9: $apiToken = $this->getApiToken($request); goto A8895; A8567: } public function onAuthenticationSuccess(Request $request, TokenInterface $token, string $firewallName) : ?Response { return null; } public function onAuthenticationFailure(Request $request, AuthenticationException $exception) : ?Response { $data = ["\x6d\145\163\x73\141\147\145" => strtr($exception->getMessageKey(), $exception->getMessageData())]; return new JsonResponse($data, Response::HTTP_UNAUTHORIZED); } private function getApiToken(Request $request) { $apiToken = substr($request->headers->get("\101\165\x74\x68\157\x72\x69\x7a\141\164\x69\157\x6e"), 7); return $apiToken; } }