spring-projects / spring-projects/spring-security
Document behavior when multiple CorsConfigurationSource beans are present
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 9.6k
- Forks
- 6.3k
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 52
Description
Summary
When multiple CorsConfigurationSource beans are present in the application context,
Spring Security fails to start with an ambiguous bean definition error.
Spring Security does not automatically select one of the available candidates,
but this behavior is currently not clearly documented in the CORS section
of the reference documentation.
This often becomes visible after upgrading to Spring Boot 3 or Spring Framework 6,
but the behavior itself belongs to Spring Security’s CORS integration.
Problem
Given more than one CorsConfigurationSource bean, Spring Security fails with an error like:
Parameter 0 of constructor in org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration
required a single bean, but 2 were found:
corsConfigurationSource
anotherCorsConfigurationSource
From a user’s perspective, this is confusing because:
- A custom
CorsConfigurationSourcebean is already defined. - Spring Security does not indicate which bean it expects to use.
- The reference documentation does not mention what happens when multiple such beans are present.
Expected Documentation Behavior
The CORS section of the Spring Security reference documentation should clarify that:
- Spring Security does not automatically choose one
CorsConfigurationSource
when multiple candidates are available. - Users must explicitly specify which bean should be used.
- This can be done using
@Qualifier,@Primary, or the.cors()DSL.
Ideally, this could be documented in the CORS section of the Spring Security reference,
near the examples that show defining a CorsConfigurationSource bean.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in the Spring Security reference documentation's CORS section, near the examples that define a CorsConfigurationSource bean. Confirm how multiple candidates are handled and review the documented @Qualifier, @Primary, and .cors() options. Done means the reference clearly explains the ambiguity and how users explicitly select the bean.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, spring
- Domain
- documentation, security
- Issue type
- Documentation
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 74/100