spring-projects / spring-projects/spring-security
CookieServerCsrfTokenRepository does not add cookie
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 9.6k
- Forks
- 6.3k
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 52
Description
Summary
I have modified the https://github.com/rwinch/spring-security-sample boot-webflux branch to add CSRF using the CookieServerCsrfTokenRepository.
Actual Behavior
If I do a GET to localhost:8080 I do not see a CSRF cookie being set.
Expected Behavior
A cookie is set so that on subsequent requests I can extract the CSRF token from there and pass it along using a CSRF header.
Configuration
I have modified the boot-webflux WebSecurityConfig like so:
@EnableWebFluxSecurity
public class WebSecurityConfig {
@Bean
public SecurityWebFilterChain securityWebFilterChain(ServerHttpSecurity http) {
return http
.authorizeExchange()
.anyExchange().permitAll()
.and()
.csrf().csrfTokenRepository(new CookieServerCsrfTokenRepository())
.and()
.build();
}
Version
I am using Spring Boot 2.1.0.RC2 which uses Spring Security 5.1.0.RC1.
Sample
See https://github.com/RoyJacobs/spring-security-cookie-repro
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 with CookieServerCsrfTokenRepository and the boot-webflux WebSecurityConfig shown in the report, then reproduce the GET request using the linked spring-security-cookie-repro sample. Trace how the repository is used for a WebFlux GET and verify the fix by confirming that localhost:8080 returns a CSRF cookie for subsequent header-based requests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, spring-boot
- Domain
- security
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100