Prev Next

Spring / Spring7 Intermediate to Advanced Interview questions

How does Spring Security 7 improve OAuth2 client support for HTTP service clients like RestClient?

Spring Security 7 adds OAuth2 support directly into the builders for HTTP service clients, so an outbound call to a protected downstream API can have a bearer token attached automatically instead of the application manually managing token acquisition and refresh in an interceptor.

@Bean
@ClientRegistrationId("inventory-service")
public InventoryClient inventoryClient(RestClient.Builder builder) {
    RestClient client = builder.baseUrl("https://inventory.internal").build();
    HttpServiceProxyFactory factory = HttpServiceProxyFactory
        .builderFor(RestClientAdapter.create(client)).build();
    return factory.createClient(InventoryClient.class);
}

Placing @ClientRegistrationId at the class level, rather than repeating it on every method, is a smaller but meaningful convenience addition - previously each individual call site needed its own registration-id annotation even when a whole client interface always talked to the same downstream service. Together these changes reduce the amount of hand-written token-management plumbing needed for service-to-service OAuth2 calls.

What does OAuth2 support in HTTP service client builders eliminate the need for?
Where can @ClientRegistrationId now be placed to avoid repeating it per method?

Invest now in Acorns!!! 🚀 Join Acorns and get your $5 bonus!
Acorns Logo

Invest now in Acorns!!! 🚀
Join Acorns and get your $5 bonus!

Earn passively and while sleeping

Acorns is a micro-investing app that automatically invests your "spare change" from daily purchases into diversified, expert-built portfolios of ETFs. It is designed for beginners, allowing you to start investing with as little as $5. The service automates saving and investing. Disclosure: I may receive a referral bonus.

Robinhood Logo

Invest now!!! Get Free equity stock (US, UK only)!

Use Robinhood app to invest in stocks. It is safe and secure. Use the Referral link to claim your free stock when you sign up!.

The Robinhood app makes it easy to trade stocks, crypto and more.


Webull Logo

Webull! Receive free stock by signing up using the link: Webull signup.

More Related questions...

What is the difference between Spring Framework 6 and Spring Framework 7? How does Spring Boot 4 differ from Spring Boot 3 in terms of baseline requirements? Which is better and why: upgrading directly from Spring Boot 2 to Spring Boot 4, or upgrading incrementally through Spring Boot 3? Why did Spring Framework 7 move from Jakarta EE 10 to Jakarta EE 11? What happens when a Spring Boot 3 / Spring 6 application is upgraded to Spring Boot 4 / Spring 7 without addressing RestTemplate and other deprecations? What is the difference between Spring Security 6 and Spring Security 7? How does multi-factor authentication (MFA) work natively in Spring Security 7? Why was the OAuth2 password grant removed in Spring Security 7? How does Spring Security 7 improve OAuth2 client support for HTTP service clients like RestClient? When should you choose PKCE over the classic authorization code flow in Spring Security 7's Authorization Server? Explain the execution flow of a request through the Spring Security filter chain? How do you prevent duplicate form submissions caused by double-clicking a submit button in a Spring MVC application? How would you implement idempotency-key based duplicate request detection in a Spring REST API? Why is the Post/Redirect/Get pattern not sufficient on its own to prevent double-click duplicate submissions? Why doesn't @Transactional work when called from within the same class (self-invocation)? How does Spring resolve circular dependencies between singleton beans? Explain the internal working of the DispatcherServlet request-handling flow in Spring MVC? Explain the internal working of Spring AOP proxy creation? How is a GraalVM native image build different from a traditional JAR deployment in Spring Boot 4? When should you choose WebFlux over Spring MVC in a Spring Framework 7 application? How do you troubleshoot a bean that fails to initialize due to a circular dependency? What happens when two beans of the same type exist without a @Primary or @Qualifier? How can you optimize Spring Boot 4 application startup time? Why should you avoid field injection in production Spring codebases? How is the API version resolved when a client sends no version header in Spring Framework 7? Which is better and why: RestClient or WebClient for a blocking Spring MVC service? How does Spring Framework 7 take advantage of virtual threads compared to the traditional platform-thread model? Why doesn't a @Scheduled method run concurrently with itself by default in Spring? How do you troubleshoot a NoSuchBeanDefinitionException in a Spring application? Explain the lifecycle of a request handled through an HTTP Interface client (@HttpExchange) in Spring 7? What is the difference between @ControllerAdvice and a Filter for handling errors in Spring MVC? Why is JSpecify considered a breaking change for some Kotlin Spring projects upgrading to Spring Framework 7? How do you optimize a Spring Data JPA application to avoid the N+1 query problem? When would you choose NESTED over REQUIRES_NEW transaction propagation? How does Micrometer observability integrate with Spring Framework 7's tracing support? Why is @Order important when multiple Filters or HandlerInterceptors are registered in a Spring application? How does Spring Framework 7's BeanRegistrar differ from a traditional @Configuration class with multiple @Bean methods? What is the difference between @RequestMapping's version attribute and content negotiation via the Accept header for API evolution? How do you troubleshoot slow Spring Boot 4 native image builds? Why do many teams delay adopting GraalVM native images despite the startup-time benefits in Spring Boot 4?
Show more question and Answers...

Hibernate

Comments & Discussions