line / armeria

Your go-to microservice framework for any situation, from the creator of Netty et al. You can build any type of microservice leveraging your favorite technologies, including gRPC, Thrift, Kotlin, Retrofit, Reactive Streams, Spring Boot and Dropwizard.
https://armeria.dev
Apache License 2.0
4.83k stars 918 forks source link

Make auto-configured spring actuator management endpoints `TransientService` #5127

Open ks-yim opened 1 year ago

ks-yim commented 1 year ago

WebOperationService, the backing implementation to bridge spring-actuator's management endpoints and Armeria, does not implement TransientService so access to those endpoints leaves access or service logs which may even contain request and response body.

Given that Armeria's native internal services(e.g. HealthCheckService, PrometheusExpositionService) implement TransientService, it looks quite natural to make WebOperationService implements TransientService, too.

And I believe it is the right choice in the security point of view, because it is quite easy for users to leak sensitive data in access logs for management endpoints without awareness, if they were enabled content logging in access logs.

minwoox commented 1 year ago

Thanks, @ks-yim! That's a good idea and I totally agree with you. 😉 I think we can disable all options for WebOperationService by default and enable TransientServiceOptions using a filed(e.g. actuator-transient-service-options) in InternalServiceProperties Does it make sense? 😄