## Uses of Interface
io.undertow.attribute.ExchangeAttribute

Packages that use ExchangeAttribute
io.undertow
io.undertow.attribute
io.undertow.predicate
io.undertow.server.handlers
io.undertow.server.handlers.accesslog
io.undertow.server.handlers.proxy

### Uses of ExchangeAttribute in io.undertow

Methods in io.undertow with parameters of type ExchangeAttribute
`static AccessControlListHandler` Handlers.`acl(HttpHandler next, boolean defaultAllow, ExchangeAttribute attribute)` Returns a new handler that can allow or deny access to a resource based an at attribute of the exchange
`static SetHeaderHandler` Handlers.`header(HttpHandler next, String headerName, ExchangeAttribute headerValue)` Returns a handler that sets a response header

### Uses of ExchangeAttribute in io.undertow.attribute

Classes in io.undertow.attribute that implement ExchangeAttribute
`class` `AuthenticationTypeExchangeAttribute`
`class` `BytesSentAttribute` The bytes sent
`class` `CompositeExchangeAttribute` Exchange attribute that represents a combination of attributes that should be merged into a single string.
`class` `ConstantExchangeAttribute` Exchange attribute that represents a fixed value
`class` `CookieAttribute` A cookie
`class` `DateTimeAttribute` The current time
`class` `HostAndPortAttribute` The request scheme
`class` `IdentUsernameAttribute` The ident username, not used, included for apache access log compatibility
`class` `LocalIPAttribute` The local IP address
`class` `LocalPortAttribute` The local port
`class` `LocalServerNameAttribute` The local server name
`class` `NullAttribute` A cookie
`class` `PathParameterAttribute` Path parameter
`class` `PredicateContextAttribute`
`class` `QueryParameterAttribute` Query parameter
`class` `QueryStringAttribute` The query string
`class` `QuotingExchangeAttribute` Exchange attribute that wraps string attributes in quotes.
`class` `RelativePathAttribute` The relative path
`class` `RemoteHostAttribute` The remote Host address (if resolved)
`class` `RemoteIPAttribute` The remote IP address
`class` `RemoteObfuscatedIPAttribute` The remote IP address
`class` `RemoteUserAttribute` The remote user
`class` `RequestCookieAttribute` A request cookie
`class` `RequestHeaderAttribute` A request header
`class` `RequestLineAttribute` The request line
`class` `RequestMethodAttribute` The request method
`class` `RequestPathAttribute`
`class` `RequestProtocolAttribute` The request protocol
`class` `RequestSchemeAttribute` The request scheme
`class` `RequestURLAttribute` The request URL
`class` `ResolvedPathAttribute`
`class` `ResponseCodeAttribute` The request status code
`class` `ResponseCookieAttribute` A response cookie
`class` `ResponseHeaderAttribute` A response header
`class` `ResponseReasonPhraseAttribute` The request status code
`class` `ResponseTimeAttribute` The response time This will only work if `UndertowOptions.RECORD_REQUEST_START_TIME` has been set
`class` `SecureExchangeAttribute`
`class` `SslCipherAttribute`
`class` `SslClientCertAttribute`
`class` `SslSessionIdAttribute`
`class` `StoredResponse`
`static class` `SubstituteEmptyWrapper.SubstituteEmptyAttribute`
`class` `ThreadNameAttribute` The thread name
`class` `TransportProtocolAttribute` The request method

Fields in io.undertow.attribute declared as ExchangeAttribute
`static ExchangeAttribute` QueryStringAttribute.`BARE_INSTANCE`
`static ExchangeAttribute` TransportProtocolAttribute.`INSTANCE`
`static ExchangeAttribute` RemoteUserAttribute.`INSTANCE`
`static ExchangeAttribute` LocalPortAttribute.`INSTANCE`
`static ExchangeAttribute` HostAndPortAttribute.`INSTANCE`
`static ExchangeAttribute` RemoteIPAttribute.`INSTANCE`
`static ExchangeAttribute` RequestSchemeAttribute.`INSTANCE`
`static ExchangeAttribute` RemoteObfuscatedIPAttribute.`INSTANCE`
`static ExchangeAttribute` LocalIPAttribute.`INSTANCE`
`static ExchangeAttribute` RelativePathAttribute.`INSTANCE`
`static ExchangeAttribute` AuthenticationTypeExchangeAttribute.`INSTANCE`
`static ExchangeAttribute` RequestURLAttribute.`INSTANCE`
`static ExchangeAttribute` LocalServerNameAttribute.`INSTANCE`
`static ExchangeAttribute` ResolvedPathAttribute.`INSTANCE`
`static ExchangeAttribute` ThreadNameAttribute.`INSTANCE`
`static ExchangeAttribute` RequestMethodAttribute.`INSTANCE`
`static ExchangeAttribute` DateTimeAttribute.`INSTANCE`
`static ExchangeAttribute` RequestLineAttribute.`INSTANCE`
`static ExchangeAttribute` RequestProtocolAttribute.`INSTANCE`
`static ExchangeAttribute` QueryStringAttribute.`INSTANCE`
`static ExchangeAttribute` ResponseCodeAttribute.`INSTANCE`
`static ExchangeAttribute` SecureExchangeAttribute.`INSTANCE`
`static ExchangeAttribute` RemoteHostAttribute.`INSTANCE`
`static ExchangeAttribute` ResponseReasonPhraseAttribute.`INSTANCE`
`static ExchangeAttribute` RequestPathAttribute.`INSTANCE`
`static ExchangeAttribute` IdentUsernameAttribute.`INSTANCE`
`static ExchangeAttribute` StoredResponse.`INSTANCE`

Methods in io.undertow.attribute that return ExchangeAttribute
`static ExchangeAttribute` ExchangeAttributes.`authenticationType()`
`ExchangeAttribute` PredicateContextAttribute.Builder.`build(String token)`
`ExchangeAttribute` RequestCookieAttribute.Builder.`build(String token)`
`ExchangeAttribute` TransportProtocolAttribute.Builder.`build(String token)`
`ExchangeAttribute` RemoteUserAttribute.Builder.`build(String token)`
`ExchangeAttribute` ExchangeAttributeBuilder.`build(String token)` Build the attribute from a text based representation.
`ExchangeAttribute` LocalPortAttribute.Builder.`build(String token)`
`ExchangeAttribute` HostAndPortAttribute.Builder.`build(String token)`
`ExchangeAttribute` RemoteIPAttribute.Builder.`build(String token)`
`ExchangeAttribute` RequestSchemeAttribute.Builder.`build(String token)`
`ExchangeAttribute` SslSessionIdAttribute.Builder.`build(String token)`
`ExchangeAttribute` RemoteObfuscatedIPAttribute.Builder.`build(String token)`
`ExchangeAttribute` QueryParameterAttribute.Builder.`build(String token)`
`ExchangeAttribute` CookieAttribute.Builder.`build(String token)`
`ExchangeAttribute` LocalIPAttribute.Builder.`build(String token)`
`ExchangeAttribute` PathParameterAttribute.Builder.`build(String token)`
`ExchangeAttribute` RelativePathAttribute.Builder.`build(String token)`
`ExchangeAttribute` AuthenticationTypeExchangeAttribute.Builder.`build(String token)`
`ExchangeAttribute` ResponseHeaderAttribute.Builder.`build(String token)`
`ExchangeAttribute` SslCipherAttribute.Builder.`build(String token)`
`ExchangeAttribute` SslClientCertAttribute.Builder.`build(String token)`
`ExchangeAttribute` BytesSentAttribute.Builder.`build(String token)`
`ExchangeAttribute` RequestURLAttribute.Builder.`build(String token)`
`ExchangeAttribute` RequestHeaderAttribute.Builder.`build(String token)`
`ExchangeAttribute` ResponseTimeAttribute.Builder.`build(String token)`
`ExchangeAttribute` LocalServerNameAttribute.Builder.`build(String token)`
`ExchangeAttribute` ResolvedPathAttribute.Builder.`build(String token)`
`ExchangeAttribute` ResponseCookieAttribute.Builder.`build(String token)`
`ExchangeAttribute` ThreadNameAttribute.Builder.`build(String token)`
`ExchangeAttribute` RequestMethodAttribute.Builder.`build(String token)`
`ExchangeAttribute` DateTimeAttribute.Builder.`build(String token)`
`ExchangeAttribute` NullAttribute.Builder.`build(String token)`
`ExchangeAttribute` RequestLineAttribute.Builder.`build(String token)`
`ExchangeAttribute` RequestProtocolAttribute.Builder.`build(String token)`
`ExchangeAttribute` QueryStringAttribute.Builder.`build(String token)`
`ExchangeAttribute` ResponseCodeAttribute.Builder.`build(String token)`
`ExchangeAttribute` SecureExchangeAttribute.Builder.`build(String token)`
`ExchangeAttribute` RemoteHostAttribute.Builder.`build(String token)`
`ExchangeAttribute` ResponseReasonPhraseAttribute.Builder.`build(String token)`
`ExchangeAttribute` RequestPathAttribute.Builder.`build(String token)`
`ExchangeAttribute` IdentUsernameAttribute.Builder.`build(String token)`
`ExchangeAttribute` StoredResponse.Builder.`build(String token)`
`static ExchangeAttribute` ExchangeAttributes.`bytesSent(boolean dashIfZero)`
`static ExchangeAttribute` ExchangeAttributes.`constant(String value)`
`static ExchangeAttribute` ExchangeAttributes.`cookie(String cookieName)`
`static ExchangeAttribute` ExchangeAttributes.`dateTime()`
`static ExchangeAttribute` ExchangeAttributes.`localIp()`
`static ExchangeAttribute` ExchangeAttributes.`localPort()`
`static ExchangeAttribute` ExchangeAttributes.`localServerName()`
`ExchangeAttribute` ExchangeAttributeParser.`parse(String valueString)` Parses the provided value string, and turns it into a list of exchange attributes.
`ExchangeAttribute` ExchangeAttributeParser.`parseSingleToken(String token)`
`static ExchangeAttribute` ExchangeAttributes.`queryString()`
`static ExchangeAttribute` ExchangeAttributes.`relativePath()`
`static ExchangeAttribute` ExchangeAttributes.`remoteIp()`
`static ExchangeAttribute` ExchangeAttributes.`remoteObfuscatedIp()`
`static ExchangeAttribute` ExchangeAttributes.`remoteUser()`
`static ExchangeAttribute` ExchangeAttributes.`requestHeader(HttpString header)`
`static ExchangeAttribute` ExchangeAttributes.`requestList()`
`static ExchangeAttribute` ExchangeAttributes.`requestMethod()`
`static ExchangeAttribute` ExchangeAttributes.`requestProtocol()`
`static ExchangeAttribute` ExchangeAttributes.`requestURL()`
`static ExchangeAttribute` ExchangeAttributes.`responseCode()`
`static ExchangeAttribute` ExchangeAttributes.`responseHeader(HttpString header)`
`static ExchangeAttribute` ExchangeAttributes.`responseReasonPhrase()`
`static ExchangeAttribute` ExchangeAttributes.`threadName()`
`static ExchangeAttribute` ExchangeAttributes.`transportProtocol()`
`ExchangeAttribute` ExchangeAttributeWrapper.`wrap(ExchangeAttribute attribute)`
`ExchangeAttribute` QuotingExchangeAttribute.Wrapper.`wrap(ExchangeAttribute attribute)`
`ExchangeAttribute` SubstituteEmptyWrapper.`wrap(ExchangeAttribute attribute)`

Methods in io.undertow.attribute with parameters of type ExchangeAttribute
`static String` ExchangeAttributes.`resolve(HttpServerExchange exchange, ExchangeAttribute[] attributes)`
`ExchangeAttribute` ExchangeAttributeWrapper.`wrap(ExchangeAttribute attribute)`
`ExchangeAttribute` QuotingExchangeAttribute.Wrapper.`wrap(ExchangeAttribute attribute)`
`ExchangeAttribute` SubstituteEmptyWrapper.`wrap(ExchangeAttribute attribute)`

Constructors in io.undertow.attribute with parameters of type ExchangeAttribute
Constructor and Description
`CompositeExchangeAttribute(ExchangeAttribute[] attributes)`
`QuotingExchangeAttribute(ExchangeAttribute exchangeAttribute)`
`SubstituteEmptyAttribute(ExchangeAttribute attribute, String substitute)`

### Uses of ExchangeAttribute in io.undertow.predicate

Methods in io.undertow.predicate that return ExchangeAttribute
`ExchangeAttribute` ContainsPredicate.`getAttribute()`

Methods in io.undertow.predicate with parameters of type ExchangeAttribute
`static Predicate` Predicates.`contains(ExchangeAttribute attribute, String... values)` Returns true if the given attribute is present and contains one of the provided value.
`static Predicate` Predicates.`equals(ExchangeAttribute[] attributes)` Creates a procedure that returns true if the given ExchangeAttributes are equal.
`static Predicate` Predicates.`exists(ExchangeAttribute attribute)` Return a predicate that will return true if the given attribute is not null and not empty.
`static Predicate` Predicates.`regex(ExchangeAttribute attribute, String pattern)` Creates a predicate that matches the given attribute against a regex.
`static Predicate` Predicates.`regex(ExchangeAttribute attribute, String pattern, boolean requireFullMatch)` Creates a predicate that matches the given attribute against a regex.

Constructors in io.undertow.predicate with parameters of type ExchangeAttribute
Constructor and Description
`PathTemplatePredicate(String template, ExchangeAttribute attribute)`
`RegularExpressionPredicate(String regex, ExchangeAttribute matchAttribute)`
`RegularExpressionPredicate(String regex, ExchangeAttribute matchAttribute, boolean requireFullMatch)`
`RegularExpressionPredicate(String regex, ExchangeAttribute matchAttribute, boolean requireFullMatch, boolean caseSensitive)`

### Uses of ExchangeAttribute in io.undertow.server.handlers

Methods in io.undertow.server.handlers that return ExchangeAttribute
`ExchangeAttribute` SetAttributeHandler.`getValue()`
`ExchangeAttribute` SetHeaderHandler.`getValue()`

Constructors in io.undertow.server.handlers with parameters of type ExchangeAttribute
Constructor and Description
`AccessControlListHandler(ExchangeAttribute attribute)`
`AccessControlListHandler(HttpHandler next, ExchangeAttribute attribute)`
`RedirectHandler(ExchangeAttribute attribute)`
`SetAttributeHandler(HttpHandler next, ExchangeAttribute attribute, ExchangeAttribute value)`
`SetAttributeHandler(HttpHandler next, ExchangeAttribute attribute, ExchangeAttribute value, boolean preCommit)`
`SetHeaderHandler(HttpHandler next, String header, ExchangeAttribute value)`

### Uses of ExchangeAttribute in io.undertow.server.handlers.accesslog

Methods in io.undertow.server.handlers.accesslog that return ExchangeAttribute
`protected ExchangeAttribute` ExtendedAccessLogParser.`getClientToServerElement(io.undertow.server.handlers.accesslog.ExtendedAccessLogParser.PatternTokenizer tokenizer)`
`protected ExchangeAttribute` ExtendedAccessLogParser.`getLogElement(String token, io.undertow.server.handlers.accesslog.ExtendedAccessLogParser.PatternTokenizer tokenizer)`
`protected ExchangeAttribute` ExtendedAccessLogParser.`getProxyElement(io.undertow.server.handlers.accesslog.ExtendedAccessLogParser.PatternTokenizer tokenizer)`
`protected ExchangeAttribute` ExtendedAccessLogParser.`getServerToClientElement(io.undertow.server.handlers.accesslog.ExtendedAccessLogParser.PatternTokenizer tokenizer)`
`protected ExchangeAttribute` ExtendedAccessLogParser.`getServletRequestElement(String parameter)`
`protected ExchangeAttribute` ExtendedAccessLogParser.`getXParameterElement(io.undertow.server.handlers.accesslog.ExtendedAccessLogParser.PatternTokenizer tokenizer)`
`ExchangeAttribute` ExtendedAccessLogParser.`parse(String pattern)`

Constructors in io.undertow.server.handlers.accesslog with parameters of type ExchangeAttribute
Constructor and Description
`AccessLogHandler(HttpHandler next, AccessLogReceiver accessLogReceiver, String formatString, ExchangeAttribute attribute)`
`AccessLogHandler(HttpHandler next, AccessLogReceiver accessLogReceiver, String formatString, ExchangeAttribute attribute, Predicate predicate)`

### Uses of ExchangeAttribute in io.undertow.server.handlers.proxy

Methods in io.undertow.server.handlers.proxy that return types with arguments of type ExchangeAttribute
`Map<HttpString,ExchangeAttribute>` ProxyHandler.Builder.`getRequestHeaders()`

Methods in io.undertow.server.handlers.proxy with parameters of type ExchangeAttribute
`ProxyHandler` ProxyHandler.`addRequestHeader(HttpString header, ExchangeAttribute attribute)` Deprecated.
`ProxyHandler.Builder` ProxyHandler.Builder.`addRequestHeader(HttpString header, ExchangeAttribute value)`