web/src/main/java/org/springframework/security/web/reactive/result/method/annotation/CurrentSecurityContextArgumentResolver.java
@Override
	public Mono<Object> resolveArgument(MethodParameter parameter, BindingContext bindingContext,
			ServerWebExchange exchange) {
		ReactiveAdapter adapter = getAdapterRegistry().getAdapter(parameter.getParameterType());
		Mono<SecurityContext> reactiveSecurityContext = ReactiveSecurityContextHolder.getContext();
		if (reactiveSecurityContext == null) {
			return null;
		}
		return reactiveSecurityContext.flatMap( a -> {
			Object p = resolveSecurityContext(parameter, a);
			Mono<Object> o = Mono.justOrEmpty(p);
			return adapter == null ? o : Mono.just(adapter.fromPublisher(o));
		});

	}
@Override
	public Mono<Object> resolveArgument(MethodParameter parameter, BindingContext bindingContext,
			ServerWebExchange exchange) {
		ReactiveAdapter adapter = getAdapterRegistry().getAdapter(parameter.getParameterType());
		Mono<SecurityContext> reactiveSecurityContext = ReactiveSecurityContextHolder.getContext();
		if (reactiveSecurityContext == null) {
			return null;
		}
		return reactiveSecurityContext.flatMap( a -> {
			Object p = resolveSecurityContext(parameter, a);
			Mono<Object> o = Mono.justOrEmpty(p);
			return adapter == null ? o : Mono.just(adapter.fromPublisher(o));
		});

	}
resolve the argument to inject into the controller parameter.
@param parameter the method parameter.
@param bindingContext the binding context.
@param exchange the server web exchange.
@return the reactive mono object result.