public function matchRegex(Request $request, $url)
 {
     /* Match on custom defined regular expression */
     if ($this->regex === null) {
         return null;
     }
     $parameters = [];
     if (preg_match($this->regex, $request->getHost() . $url, $parameters) > 0) {
         /* Remove global match */
         $this->parameters = array_slice($parameters, 1);
         return true;
     }
     return false;
 }
 /**
  * Method called to check if a domain matches
  *
  * @param Request $request
  * @return bool
  */
 public function matchDomain(Request $request)
 {
     if (count($this->domains) === 0) {
         return true;
     }
     foreach ($this->domains as $domain) {
         $parameters = $this->parseParameters($domain, $request->getHost(), '.*');
         if ($parameters !== null && count($parameters) > 0) {
             $this->parameters = $parameters;
             return true;
         }
     }
     return false;
 }
Beispiel #3
0
 public function handle(Request $request)
 {
     $domain = env('DEBUG', false) ? 'dscuz' : str_ireplace('.' . Registry::getInstance()->get('host'), '', $request->getHost());
     $request->source = Memcache::getInstance()->put('source_' . $domain, 60 * 60, function () use($domain) {
         return Source::getBySubdomain($domain);
     });
     $this->setParameters($request);
     if (!$request->source->hasRow()) {
         throw new \ErrorException('Invalid source.');
     }
     if ($request->source->getOrganisation() !== null && $request->source->getOrganisation()->disabled) {
         throw new OrganisationDisabledException('Source has been disabled');
     }
     if ($request->source->require_ssl && !$request->getIsSecure()) {
         redirect('https://' . $request->getHost() . $request->getUri(), 101);
     }
     // Check for valid api-token if posting
     if ($request->getMethod() !== 'get') {
         $token = request()->getHeader('X-Auth-Token');
         if ($token === null || $token !== $request->source->getOrganisation()->api_token) {
             throw new \InvalidArgumentException('Invalid X-Auth-Token.');
         }
     }
 }