ljngtan opened a new issue, #4664:
URL: https://github.com/apache/shenyu/issues/4664

   ### Is there an existing issue for this?
   
   - [X] I have searched the existing issues
   
   ### Current Behavior
   
   java.lang.IllegalArgumentException: Validation failed for header 
'Accept-Encoding'
        at 
io.netty.handler.codec.DefaultHeaders.validateValue(DefaultHeaders.java:1019) 
~[netty-codec-4.1.92.Final.jar:4.1.92.Final]
        at 
io.netty.handler.codec.DefaultHeaders.setObject(DefaultHeaders.java:536) 
~[netty-codec-4.1.92.Final.jar:4.1.92.Final]
        at 
io.netty.handler.codec.http.DefaultHttpHeaders.set(DefaultHttpHeaders.java:175) 
~[netty-codec-http-4.1.92.Final.jar:4.1.92.Final]
        at 
org.springframework.http.client.reactive.ReactorClientHttpRequest.lambda$applyHeaders$3(ReactorClientHttpRequest.java:127)
 ~[spring-web-5.3.27.jar:5.3.27]
        at java.base/java.util.Map.forEach(Map.java:713) ~[na:na]
        at 
org.springframework.http.client.reactive.ReactorClientHttpRequest.applyHeaders(ReactorClientHttpRequest.java:127)
 ~[spring-web-5.3.27.jar:5.3.27]
        at 
org.springframework.http.client.reactive.AbstractClientHttpRequest.lambda$null$0(AbstractClientHttpRequest.java:142)
 ~[spring-web-5.3.27.jar:5.3.27]
        at reactor.core.publisher.MonoRunnable.subscribe(MonoRunnable.java:49) 
~[reactor-core-3.4.29.jar:3.4.29]
        at reactor.core.publisher.Mono.subscribe(Mono.java:4490) 
~[reactor-core-3.4.29.jar:3.4.29]
        at 
reactor.core.publisher.FluxConcatIterable$ConcatIterableSubscriber.onComplete(FluxConcatIterable.java:147)
 ~[reactor-core-3.4.29.jar:3.4.29]
        at 
reactor.core.publisher.FluxConcatIterable.subscribe(FluxConcatIterable.java:60) 
~[reactor-core-3.4.29.jar:3.4.29]
        at 
reactor.core.publisher.MonoFromFluxOperator.subscribe(MonoFromFluxOperator.java:81)
 ~[reactor-core-3.4.29.jar:3.4.29]
        at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) 
~[reactor-core-3.4.29.jar:3.4.29]
        at 
reactor.netty.http.client.HttpClientConnect$HttpIOHandlerObserver.onStateChange(HttpClientConnect.java:445)
 ~[reactor-netty-http-1.0.32.jar:1.0.32]
        at 
reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:707)
 ~[reactor-netty-core-1.0.32.jar:1.0.32]
        at 
reactor.netty.resources.DefaultPooledConnectionProvider$DisposableAcquire.onStateChange(DefaultPooledConnectionProvider.java:193)
 ~[reactor-netty-core-1.0.32.jar:1.0.32]
        at 
reactor.netty.resources.DefaultPooledConnectionProvider$PooledConnection.onStateChange(DefaultPooledConnectionProvider.java:454)
 ~[reactor-netty-core-1.0.32.jar:1.0.32]
        at 
reactor.netty.channel.ChannelOperationsHandler.channelActive(ChannelOperationsHandler.java:62)
 ~[reactor-netty-core-1.0.32.jar:1.0.32]
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:262)
 ~[netty-transport-4.1.92.Final.jar:4.1.92.Final]
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:238)
 ~[netty-transport-4.1.92.Final.jar:4.1.92.Final]
        at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelActive(AbstractChannelHandlerContext.java:231)
 ~[netty-transport-4.1.92.Final.jar:4.1.92.Final]
        at 
io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelActive(CombinedChannelDuplexHandler.java:412)
 ~[netty-transport-4.1.92.Final.jar:4.1.92.Final]
        at 
io.netty.channel.ChannelInboundHandlerAdapter.channelActive(ChannelInboundHandlerAdapter.java:69)
 ~[netty-transport-4.1.92.Final.jar:4.1.92.Final]
        at 
io.netty.channel.CombinedChannelDuplexHandler.channelActive(CombinedChannelDuplexHandler.java:211)
 ~[netty-transport-4.1.92.Final.jar:4.1.92.Final]
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:260)
 ~[netty-transport-4.1.92.Final.jar:4.1.92.Final]
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:238)
 ~[netty-transport-4.1.92.Final.jar:4.1.92.Final]
        at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelActive(AbstractChannelHandlerContext.java:231)
 ~[netty-transport-4.1.92.Final.jar:4.1.92.Final]
        at 
io.netty.channel.DefaultChannelPipeline$HeadContext.channelActive(DefaultChannelPipeline.java:1398)
 ~[netty-transport-4.1.92.Final.jar:4.1.92.Final]
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:258)
 ~[netty-transport-4.1.92.Final.jar:4.1.92.Final]
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:238)
 ~[netty-transport-4.1.92.Final.jar:4.1.92.Final]
        at 
io.netty.channel.DefaultChannelPipeline.fireChannelActive(DefaultChannelPipeline.java:895)
 ~[netty-transport-4.1.92.Final.jar:4.1.92.Final]
        at 
io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.fulfillConnectPromise(AbstractNioChannel.java:305)
 ~[netty-transport-4.1.92.Final.jar:4.1.92.Final]
        at 
io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:335)
 ~[netty-transport-4.1.92.Final.jar:4.1.92.Final]
        at 
io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776) 
~[netty-transport-4.1.92.Final.jar:4.1.92.Final]
        at 
io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
 ~[netty-transport-4.1.92.Final.jar:4.1.92.Final]
        at 
io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) 
~[netty-transport-4.1.92.Final.jar:4.1.92.Final]
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) 
~[netty-transport-4.1.92.Final.jar:4.1.92.Final]
        at 
io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
 ~[netty-common-4.1.92.Final.jar:4.1.92.Final]
        at 
io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) 
~[netty-common-4.1.92.Final.jar:4.1.92.Final]
        at 
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
 ~[netty-common-4.1.92.Final.jar:4.1.92.Final]
        at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]
   Caused by: java.lang.IllegalArgumentException: a header value contains 
prohibited character 0x20 at index 0.
        at 
io.netty.handler.codec.http.DefaultHttpHeaders$HeaderValueValidator.validate(DefaultHttpHeaders.java:395)
 ~[netty-codec-http-4.1.92.Final.jar:4.1.92.Final]
        at 
io.netty.handler.codec.http.DefaultHttpHeaders$HeaderValueValidator.validate(DefaultHttpHeaders.java:387)
 ~[netty-codec-http-4.1.92.Final.jar:4.1.92.Final]
        at 
io.netty.handler.codec.DefaultHeaders.validateValue(DefaultHeaders.java:1017) 
~[netty-codec-4.1.92.Final.jar:4.1.92.Final]
        ... 40 common frames omitted
   
   ### Expected Behavior
   
   No exception.
   
   ### Steps To Reproduce
   
   
![image](https://github.com/apache/shenyu/assets/37615765/f32a624f-ac80-455a-a9b4-59ecebc25d36)
   
   
   ### Environment
   
   ```markdown
   ShenYu version(s):2.5.1
   ```
   
   
   ### Debug logs
   
   See Current Behavior.
   
   ### Anything else?
   
   It seems https://github.com/apache/shenyu/pull/2301 result in this bug.
   May `String.join(",", acceptEncoding).trim()` resolve it. 
https://github.com/apache/shenyu/blob/e37b73010a571fac478f403707f4c4b6d1d66eda/shenyu-plugin/shenyu-plugin-httpclient/src/main/java/org/apache/shenyu/plugin/httpclient/AbstractHttpClientPlugin.java#L178


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to