Package org.springframework.security.web.util.matcher

# Class RequestHeaderRequestMatcher

java.lang.Object
org.springframework.security.web.util.matcher.RequestHeaderRequestMatcher

All Implemented Interfaces:
  `RequestMatcher`

public final class RequestHeaderRequestMatcher extends Object implements RequestMatcher
A `RequestMatcher` that can be used to match request that contain a header with an expected header name and an expected value.

For example, the following will match an request that contains a header with the name X-Requested-With no matter what the value is.

     RequestMatcher matcher = new RequestHeaderRequestMatcher("X-Requested-With");

Alternatively, the RequestHeaderRequestMatcher can be more precise and require a specific value. For example the following will match on requests with the header name of X-Requested-With with the value of "XMLHttpRequest", but will not match on header name of "X-Requested-With" with the value of "Other".

     RequestMatcher matcher = new RequestHeaderRequestMatcher("X-Requested-With",
                    "XMLHttpRequest");

The value used to compare is the first header value, so in the previous example if the header "X-Requested-With" contains the values "Other" and "XMLHttpRequest", then it will not match.

Since:
  3.2

## Nested Class Summary

## Nested classes/interfaces inherited from interface org.springframework.security.web.util.matcher.RequestMatcher

`RequestMatcher.MatchResult`

## Constructor Summary

Constructors
Constructor
Description
`RequestHeaderRequestMatcher(String expectedHeaderName)`
Creates a new instance that will match if a header by the name of `expectedHeaderName` is present.
`RequestHeaderRequestMatcher(String expectedHeaderName, String expectedHeaderValue)`
Creates a new instance that will match if a header by the name of `expectedHeaderName` is present and if the `expectedHeaderValue` is non-null the first value is the same.

## Method Summary

Modifier and Type
Method
Description
`boolean`
`matches(jakarta.servlet.http.HttpServletRequest request)`
Decides whether the rule implemented by the strategy matches the supplied request.
`String`
`toString()`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface org.springframework.security.web.util.matcher.RequestMatcher

`matcher`

## Constructor Details

### RequestHeaderRequestMatcher

public RequestHeaderRequestMatcher(String expectedHeaderName)
Creates a new instance that will match if a header by the name of `expectedHeaderName` is present. In this instance, the value does not matter.

Parameters:
  `expectedHeaderName` - the name of the expected header that if present the request will match. Cannot be null.

### RequestHeaderRequestMatcher

public RequestHeaderRequestMatcher(String expectedHeaderName, String expectedHeaderValue)
Creates a new instance that will match if a header by the name of `expectedHeaderName` is present and if the `expectedHeaderValue` is non-null the first value is the same.

Parameters:
  `expectedHeaderName` - the name of the expected header. Cannot be null
  `expectedHeaderValue` - the expected header value or null if the value does not matter

## 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

### toString

public String toString()

Overrides:
  `toString` in class `Object`