/** * Add a filter mapping to this Context-> * * @param filterMap The filter mapping to be added * * @exception \Serphlet\Exception\IllegalArgumentException if the specified filter name * does not match an existing filter definition, or the filter mapping * is malformed * @todo: Lookup the error message */ public function addFilterMap(\Serphlet\Config\FilterMap $filterMap) { // Validate the proposed filter mapping $filterName = $filterMap->getFilterName(); $servletName = $filterMap->getServletName(); $urlPattern = $filterMap->getURLPattern(); if ($this->findFilterDef($filterName) == null) { throw new \Serphlet\Exception\IllegalArgumentException("applicationConfig->filterMap->name not found"); } if ($servletName == null && $urlPattern == null) { throw new \Serphlet\Exception\IllegalArgumentException("applicationConfig->filterMap->either specify servlet name or url filter"); } if ($servletName != null && $urlPattern != null) { throw new \Serphlet\Exception\IllegalArgumentException("applicationConfig->filterMap->either specify only a servlet name or url filter"); } if ($urlPattern != null && !$this->validateURLPattern($urlPattern)) { throw new \Serphlet\Exception\IllegalArgumentException("applicationConfig->filterMap->pattern url pattern not valid"); } // Add this filter mapping to our registered set $this->filterMaps[] = $filterMap; }
private function matchFiltersServlet(\Serphlet\Config\FilterMap $filterMap, $servletName) { if ($servletName == null) { return false; } else { if ($servletName == $filterMap->getServletName() || $filterMap->getServletName() == '*') { return true; } else { return false; } } }