Describe the bug Build the Eureka server & client, client registe to eureka server return 403
Using the spring cloud version:
log:
Securing GET /eureka/apps/
Authenticated user
Set SecurityContextHolder to UsernamePasswordAuthenticationToken [Principa
Secured GET /eureka/apps/
Securing POST /eureka/apps/SPRING-CONFIG-DEMO
Securing PUT /eureka/apps/SPRING-CONFIG-DEMO/spring-eureka-demo:spring-con
Invalid CSRF token found for http://spring-eureka-demo:3000/eureka/apps/SP
Responding with 403 status code
Invalid CSRF token found for http://spring-eureka-demo:3000/eureka/apps/SP
Responding with 403 status code
Securing POST /error
Set SecurityContextHolder to anonymous SecurityContext
Securing PUT /error?status=UP&lastDirtyTimestamp=1725333287255
To Reproduce Eureka server:
@Configuration
@EnableWebSecurity
public class SecurityConfig {
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http.authorizeHttpRequests((authz) -> authz
.requestMatchers("/eureka/**").permitAll()
.requestMatchers("/actuator/health").permitAll()
.requestMatchers("/actuator/**").hasRole("ADMIN")
.anyRequest().authenticated()
)
.httpBasic(withDefaults())
.csrf(csrf -> csrf.csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
.csrfTokenRequestHandler(new CsrfTokenRequestAttributeHandler())
.disable()
);
return http.build();
}
}
spring:
application:
name: spring-eureka-demo
security:
user:
name: admin
password: admin
server:
port: 3000
eureka:
client:
register-with-eureka: false
fetch-registry: false
server:
enable-self-preservation: false
logging:
level:
org:
springframework:
security: DEBUG
cloud:
netflix: DEBUG
Eureka client:
spring:
application:
name: spring-config-demo
security:
user:
name: admin
password: admin
profiles:
default: native
active: native
cloud:
config:
server:
native:
search-locations: classpath:/configDev/
eureka:
client:
serviceUrl:
defaultZone: http://admin:admin@spring-eureka-demo:3000/eureka/
server:
port: 8104
Expected behavior Eureka client should registed into eureka server.
Sample
Comment From: marcusdacoregio
Hi @weiro-9-w7. Since the register process is a server-to-server communication it might make sense to disable CSRF for eureka endpoints, take a look at the documentation. Does that make sense?