Вход Регистрация
Файл: vendor/laravel/framework/src/Illuminate/Routing/Middleware/ValidateSignature.php
Строк: 87
<?php

namespace IlluminateRoutingMiddleware;

use 
Closure;
use 
IlluminateRoutingExceptionsInvalidSignatureException;
use 
IlluminateSupportArr;

class 
ValidateSignature
{
    
/**
     * The names of the parameters that should be ignored.
     *
     * @var array<int, string>
     */
    
protected $ignore = [
        
//
    
];

    
/**
     * Specify that the URL signature is for a relative URL.
     *
     * @param  array|string  $ignore
     * @return string
     */
    
public static function relative($ignore = [])
    {
        
$ignore Arr::wrap($ignore);

        return static::class.
':'.implode(',', empty($ignore) ? ['relative'] : ['relative',  ...$ignore]);
    }

    
/**
     * Specify that the URL signature is for an absolute URL.
     *
     * @param  array|string  $ignore
     * @return class-string
     */
    
public static function absolute($ignore = [])
    {
        
$ignore Arr::wrap($ignore);

        return empty(
$ignore)
            ? static::class
            : static::class.
':'.implode(','$ignore);
    }

    
/**
     * Handle an incoming request.
     *
     * @param  IlluminateHttpRequest  $request
     * @param  Closure  $next
     * @param  array|null  $args
     * @return IlluminateHttpResponse
     *
     * @throws IlluminateRoutingExceptionsInvalidSignatureException
     */
    
public function handle($requestClosure $next, ...$args)
    {
        [
$relative$ignore] = $this->parseArguments($args);

        if (
$request->hasValidSignatureWhileIgnoring($ignore, ! $relative)) {
            return 
$next($request);
        }

        throw new 
InvalidSignatureException;
    }

    
/**
     * Parse the additional arguments given to the middleware.
     *
     * @param  array  $args
     * @return array
     */
    
protected function parseArguments(array $args)
    {
        
$relative = ! empty($args) && $args[0] === 'relative';

        if (
$relative) {
            
array_shift($args);
        }

        
$ignore array_merge(
            
property_exists($this'except') ? $this->except $this->ignore,
            
$args
        
);

        return [
$relative$ignore];
    }
}
Онлайн: 0
Реклама