Files
spring-framework/framework-docs/modules/ROOT/pages/web/webflux-webclient/client-attributes.adoc
T
Sam Brannen 14dc767dd6 Fix syntax errors in code examples in reference manual
This commit fixes syntax errors in Java, Kotlin, and XML examples in
the reference manual, such as Java syntax in Kotlin examples,
unbalanced braces and parentheses, and unclosed XML elements.

Closes gh-37392
2026-10-04 15:27:56 +02:00

49 lines
1.2 KiB
Plaintext

[[webflux-client-attributes]]
= Attributes
You can add attributes to a request. This is convenient if you want to pass information
through the filter chain and influence the behavior of filters for a given request.
For example:
[tabs]
======
Java::
+
[source,java,indent=0,subs="verbatim,quotes"]
----
WebClient client = WebClient.builder()
.filter((request, next) -> {
Optional<Object> usr = request.attribute("myAttribute");
// ...
})
.build();
client.get().uri("https://example.org/")
.attribute("myAttribute", "...")
.retrieve()
.bodyToMono(Void.class);
----
Kotlin::
+
[source,kotlin,indent=0,subs="verbatim,quotes"]
----
val client = WebClient.builder()
.filter { request, _ ->
val usr = request.attributes()["myAttribute"];
// ...
}
.build()
client.get().uri("https://example.org/")
.attribute("myAttribute", "...")
.retrieve()
.awaitBody<Unit>()
----
======
Note that you can configure a `defaultRequest` callback globally at the
`WebClient.Builder` level which lets you insert attributes into all requests,
which could be used for example in a Spring MVC application to populate
request attributes based on `ThreadLocal` data.