anchor.diff:  }
   ----
   
  +.Kotlin
  +[source,kotlin,role="secondary"]
  +----
  +@Bean
  +fun introspector(): ReactiveOpaqueTokenIntrospector {
  +    return NimbusReactiveOpaqueTokenIntrospector(introspectionUri, clientId, clientSecret)
  +}
  +----
  +====
  +
   If the application doesn't expose a `ReactiveOpaqueTokenIntrospector` bean, then Spring Boot will expose the above default one.
   
   And its configuration can be overridden using `introspectionUri()` and `introspectionClientCredentials()` or replaced using `introspector()`.
  
positive.code: }
  ----
  
  Thereafter, this custom introspector can be configured simply by exposing it as a `@Bean`:
  
  [source,java]
  ----
  @Bean
  public ReactiveOpaqueTokenIntrospector introspector() {
      return new JwtOpaqueTokenIntropsector();
  }
  ----
  
  [[webflux-oauth2resourceserver-opaque-userinfo]]
  === Calling a `/userinfo` Endpoint
  
negative.code: }
  ----
  
  .Kotlin
  [source,kotlin,role="secondary"]
  ----
  @Bean
  fun rest(): WebClient {
      return WebClient.builder()
              .filter(ServerBearerExchangeFilterFunction())
              .build()
  }
  ----
  ====
  
  When the above `WebClient` is used to perform requests, Spring Security will look up the current `Authentication` and extract any `{security-api-url}org/springframework/security/oauth2/core/AbstractOAuth2Token.html[AbstractOAuth2Token]` credential.
  Then, it will propagate that token in the `Authorization` header.
  
  For example:
  
  ====
  .Java
  [source,java,role="primary"]
  ----
  this.rest.get()
          .uri("https://other-service.example.com/endpoint")
  