java.lang.Object
org.springframework.security.web.servlet.util.matcher.MvcRequestMatcher
All Implemented Interfaces:
RequestMatcher, RequestVariablesExtractor

public class MvcRequestMatcher extends Object implements RequestMatcher, RequestVariablesExtractor
A RequestMatcher that uses Spring MVC's HandlerMappingIntrospector to match the path and extract variables.

It is important to understand that Spring MVC's matching is relative to the servlet path. This means if you have mapped any servlet to a path that starts with "/" and is greater than one, you should also specify the setServletPath(String) attribute to differentiate mappings.

Since:
4.1.1
  • Constructor Details

    • MvcRequestMatcher

      public MvcRequestMatcher(org.springframework.web.servlet.handler.HandlerMappingIntrospector introspector, String pattern)
  • Method Details

    • matches

      public boolean matches(jakarta.servlet.http.HttpServletRequest request)
      Description copied from interface: RequestMatcher
      Decides whether the rule implemented by the strategy matches the supplied request.
      Specified by:
      matches in interface RequestMatcher
      Parameters:
      request - the request to check for a match
      Returns:
      true if the request matches, false otherwise
    • extractUriTemplateVariables

      @Deprecated public Map<String,String> extractUriTemplateVariables(jakarta.servlet.http.HttpServletRequest request)
      Deprecated.
      Description copied from interface: RequestVariablesExtractor
      Extract URL template variables from the request.
      Specified by:
      extractUriTemplateVariables in interface RequestVariablesExtractor
      Parameters:
      request - the HttpServletRequest to obtain a URL to extract the variables from
      Returns:
      the URL variables or empty if no variables are found
    • matcher

      public RequestMatcher.MatchResult matcher(jakarta.servlet.http.HttpServletRequest request)
      Description copied from interface: RequestMatcher
      Returns a MatchResult for this RequestMatcher The default implementation returns Collections.emptyMap() when RequestMatcher.MatchResult.getVariables() is invoked.
      Specified by:
      matcher in interface RequestMatcher
      Returns:
      the MatchResult from comparing this RequestMatcher against the HttpServletRequest
    • setMethod

      public void setMethod(org.springframework.http.HttpMethod method)
      Parameters:
      method - the method to set
    • setServletPath

      public void setServletPath(String servletPath)
      The servlet path to match on. The default is undefined which means any servlet path.
      Parameters:
      servletPath - the servletPath to set
    • getServletPath

      protected final String getServletPath()
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object