Get API에 413에러를 받는 경우가 발생한다. 이는 URL로 요청하는 사이즈가 스프링 네티에 설정된 max-inital-line-lenght를 넘어서 발생하는 경우이다.
해결 방법으로는 applicaiton.yml을 통해 네티 설정을 하는 방법이 있지만, 확실한 방법으로 WebServerFactoryCustomizer<NettyReactiveWebServerFactor>를 받아
maxInitialLineLength()값을 조정하여 해결 가능.
import org.springframework.boot.web.embedded.netty.NettyReactiveWebServerFactory import org.springframework.boot.web.embedded.netty.NettyServerCustomizer import org.springframework.boot.web.server.WebServerFactoryCustomizer import org.springframework.stereotype.Component import reactor.netty.http.server.HttpRequestDecoderSpec import reactor.netty.http.server.HttpServer @Component class WebConfiguration : WebServerFactoryCustomizer<NettyReactiveWebServerFactory> { @Value("\${server.netty.max-initial-line-length}") private var maxInitialLingLength: Int = 0 override fun customize(serverFactory: NettyReactiveWebServerFactory) { serverFactory.addServerCustomizers(NettyServerCustomizer { httpServer: HttpServer -> httpServer.httpRequestDecoder { httpRequestDecoderSpec: HttpRequestDecoderSpec -> httpRequestDecoderSpec .maxInitialLineLength(maxInitialLingLength) // request param 최대 길이 변경 } }) } }
위에 코드 처럼 application.yml에 해당 값을 둬서 Develop staging에 따라 설정을 overlay 시켜 사용하며, config를 통해 빌드하지 수정가능하겠다.
출처 : https://github.com/spring-cloud/spring-cloud-gateway/issues/402
How to increase HTTP Header Size, getting 413 error · Issue #402 · spring-cloud/spring-cloud-gateway
The layer that calls Spring Cloud Gateway API passes some SAML tokens that are more than the default header size on Netty, and we get a 413 or 'Request entity too large' error. We tried inc...
github.com
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.