Overview
  • Namespace
  • Class

Namespaces

  • Http
    • Message
      • Authentication
      • Decorator
      • Encoding
        • Filter
      • Formatter
      • MessageFactory
      • StreamFactory
      • UriFactory

Classes

  • Http\Message\Authentication\BasicAuth
  • Http\Message\Authentication\Bearer
  • Http\Message\Authentication\Chain
  • Http\Message\Authentication\Matching
  • Http\Message\Authentication\QueryParam
  • Http\Message\Authentication\Wsse
  • Http\Message\Encoding\ChunkStream
  • Http\Message\Encoding\CompressStream
  • Http\Message\Encoding\DechunkStream
  • Http\Message\Encoding\DecompressStream
  • Http\Message\Encoding\DeflateStream
  • Http\Message\Encoding\Filter\Chunk
  • Http\Message\Encoding\FilteredStream
  • Http\Message\Encoding\GzipDecodeStream
  • Http\Message\Encoding\GzipEncodeStream
  • Http\Message\Encoding\InflateStream
  • Http\Message\Formatter\SimpleFormatter
  • Http\Message\MessageFactory\DiactorosMessageFactory
  • Http\Message\MessageFactory\GuzzleMessageFactory
  • Http\Message\StreamFactory\DiactorosStreamFactory
  • Http\Message\StreamFactory\GuzzleStreamFactory
  • Http\Message\UriFactory\DiactorosUriFactory
  • Http\Message\UriFactory\GuzzleUriFactory

Interfaces

  • Http\Message\Authentication
  • Http\Message\Formatter

Traits

  • Http\Message\Decorator\MessageDecorator
  • Http\Message\Decorator\RequestDecorator
  • Http\Message\Decorator\ResponseDecorator
  • Http\Message\Decorator\StreamDecorator
 1 <?php
 2 
 3 namespace Http\Message\Authentication;
 4 
 5 use Http\Message\Authentication;
 6 use Psr\Http\Message\RequestInterface;
 7 
 8 /**
 9  * Authenticate a PSR-7 Request if the reuqest is matching.
10  *
11  * @author Márk Sági-Kazár <mark.sagikazar@gmail.com>
12  */
13 final class Matching implements Authentication
14 {
15     /**
16      * @var Authentication
17      */
18     private $authentication;
19 
20     /**
21      * @var callable
22      */
23     private $matcher;
24 
25     /**
26      * @param Authentication $authentication
27      * @param callable|null  $matcher
28      */
29     public function __construct(Authentication $authentication, callable $matcher = null)
30     {
31         if (is_null($matcher)) {
32             $matcher = function () {
33                 return true;
34             };
35         }
36 
37         $this->authentication = $authentication;
38         $this->matcher = $matcher;
39     }
40 
41     /**
42      * {@inheritdoc}
43      */
44     public function authenticate(RequestInterface $request)
45     {
46         if (!call_user_func($this->matcher, $request)) {
47             return $request;
48         }
49 
50         return $this->authentication->authenticate($request);
51     }
52 
53     /**
54      * Creates a matching authentication for an URL.
55      *
56      * @param Authentication $authentication
57      * @param string         $url
58      *
59      * @return self
60      */
61     public static function createUrlMatcher(Authentication $authentication, $url)
62     {
63         $matcher = function ($request) use ($url) {
64             return preg_match($url, $request->getRequestTarget());
65         };
66 
67         return new static($authentication, $matcher);
68     }
69 }
70 
API documentation generated by ApiGen