You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shenyu.apache.org by "tian-pengfei (via GitHub)" <gi...@apache.org> on 2023/01/23 07:50:18 UTC

[GitHub] [shenyu] tian-pengfei opened a new pull request, #4331: fix #4253 issue in Cryptor-Response Plugin

tian-pengfei opened a new pull request, #4331:
URL: https://github.com/apache/shenyu/pull/4331

   <!-- Describe your PR here; eg. Fixes #issueNo -->
   
   <!--
   Thank you for proposing a pull request. This template will guide you through the essential steps necessary for a pull request.
   -->
   Make sure that:
   
   - [x] You have read the [contribution guidelines](https://shenyu.apache.org/community/contributor-guide).
   - [ ] You submit test cases (unit or integration tests) that back your changes.
   - [x] Your local test passed `./mvnw clean install -Dmaven.javadoc.skip=true`.
   
   ## task
   1. fixed  #4253
   2. decoupled 
   
   ## bug
   if Cryptor-Response Plugin had errors when decrypt or encrypt, still rewrite response body 
   ![image](https://user-images.githubusercontent.com/42602026/213986467-543ed70e-04c2-42fc-a1bb-7d0be24de49f.png)
   
   ## demonstration
   1. config
   
   ![image](https://user-images.githubusercontent.com/42602026/213987443-05938edb-9a38-41b5-9764-aa6b01b56d77.png)
   
   ![image](https://user-images.githubusercontent.com/42602026/213987281-5700f145-63c9-4c86-b440-80dc755e1f39.png)
   
   2. test in postman
    
   ![image](https://user-images.githubusercontent.com/42602026/213987551-09efa9c7-c857-4eef-806c-fb54ad3bfc97.png)
   
   3. view log 
     ```tex
   2023-01-23 15:42:29 [reactor-http-nio-2] INFO  org.apache.shenyu.plugin.base.AbstractShenyuPlugin - cryptorResponse selector success match , selector name :/**
   2023-01-23 15:42:29 [reactor-http-nio-2] INFO  org.apache.shenyu.plugin.base.AbstractShenyuPlugin - cryptorResponse rule success match , rule name :all
   2023-01-23 15:42:32 [reactor-http-nio-2] ERROR org.apache.shenyu.plugin.cryptor.strategy.CryptorStrategyFactory - decrypt data error: 
   java.lang.IllegalArgumentException: Last unit does not have enough valid bits
   	at java.base/java.util.Base64$Decoder.decode0(Base64.java:766)
   	at java.base/java.util.Base64$Decoder.decode(Base64.java:538)
   	at java.base/java.util.Base64$Decoder.decode(Base64.java:561)
   	at org.apache.shenyu.plugin.cryptor.strategy.CryptorStrategyFactory.decrypt(CryptorStrategyFactory.java:96)
   	at org.apache.shenyu.plugin.cryptor.strategy.CryptorStrategyFactory.match(CryptorStrategyFactory.java:61)
   	at org.apache.shenyu.plugin.cryptor.decorator.CryptorResponseDecorator.strategyMatch(CryptorResponseDecorator.java:67)
   	at org.apache.shenyu.plugin.cryptor.decorator.CryptorResponseDecorator.lambda$writeWith$0(CryptorResponseDecorator.java:57)
   	at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:125)
   	at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:539)
   	at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129)
   	at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107)
   	at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.onNext(FluxMapFuseable.java:299)
   	at reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.onNext(FluxFilterFuseable.java:337)
   	at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816)
   	at reactor.core.publisher.MonoCollect$CollectSubscriber.onComplete(MonoCollect.java:159)
   	at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onComplete(FluxPeekFuseable.java:277)
   	at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400)
   	at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.request(FluxPeekFuseable.java:144)
   	at reactor.core.publisher.MonoCollect$CollectSubscriber.onSubscribe(MonoCollect.java:103)
   	at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onSubscribe(FluxPeekFuseable.java:178)
   	at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55)
   	at reactor.core.publisher.Mono.subscribe(Mono.java:4400)
   	at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263)
   	at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51)
   	at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64)
   	at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157)
   	at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:539)
   	at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129)
   	at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107)
   	at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.onNext(FluxMapFuseable.java:299)
   	at reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.onNext(FluxFilterFuseable.java:337)
   	at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816)
   	at reactor.core.publisher.MonoCollect$CollectSubscriber.onComplete(MonoCollect.java:159)
   	at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onComplete(FluxOnAssembly.java:549)
   	at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400)
   	at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:649)
   	at reactor.core.publisher.MonoCollect$CollectSubscriber.onSubscribe(MonoCollect.java:103)
   	at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onSubscribe(FluxOnAssembly.java:633)
   	at reactor.core.publisher.FluxJust.subscribe(FluxJust.java:68)
   	at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64)
   	at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52)
   	at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240)
   	at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203)
   	at reactor.core.publisher.Operators.complete(Operators.java:137)
   	at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46)
   	at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52)
   	at reactor.core.publisher.Mono.subscribe(Mono.java:4400)
   	at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263)
   	at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51)
   	at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52)
   	at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52)
   	at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52)
   	at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52)
   	at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157)
   	at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79)
   	at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79)
   	at reactor.core.publisher.SerializedSubscriber.onNext(SerializedSubscriber.java:99)
   	at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.onNext(FluxRetryWhen.java:174)
   	at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onNext(MonoPeekTerminal.java:180)
   	at reactor.core.publisher.SerializedSubscriber.onNext(SerializedSubscriber.java:99)
   	at reactor.core.publisher.SerializedSubscriber.onNext(SerializedSubscriber.java:99)
   	at reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.onNext(FluxTimeout.java:180)
   	at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onNext(MonoPeekTerminal.java:180)
   	at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816)
   	at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:249)
   	at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79)
   	at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74)
   	at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816)
   	at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:249)
   	at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.complete(MonoIgnoreThen.java:292)
   	at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onNext(MonoIgnoreThen.java:187)
   	at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:236)
   	at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203)
   	at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onComplete(Operators.java:2058)
   	at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89)
   	at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onComplete(FluxMapFuseable.java:152)
   	at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onComplete(FluxOnAssembly.java:549)
   	at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144)
   	at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260)
   	at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144)
   	at reactor.core.publisher.Operators.complete(Operators.java:137)
   	at reactor.netty.channel.FluxReceive.startReceiver(FluxReceive.java:176)
   	at reactor.netty.channel.FluxReceive.subscribe(FluxReceive.java:143)
   	at reactor.core.publisher.InternalFluxOperator.subscribe(InternalFluxOperator.java:62)
   	at reactor.netty.ByteBufFlux.subscribe(ByteBufFlux.java:340)
   	at reactor.core.publisher.Mono.subscribe(Mono.java:4400)
   	at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263)
   	at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51)
   	at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157)
   	at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816)
   	at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:151)
   	at reactor.core.publisher.FluxDefaultIfEmpty$DefaultIfEmptySubscriber.onNext(FluxDefaultIfEmpty.java:101)
   	at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816)
   	at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:151)
   	at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:539)
   	at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129)
   	at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107)
   	at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.onNext(FluxMapFuseable.java:299)
   	at reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.onNext(FluxFilterFuseable.java:337)
   	at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816)
   	at reactor.core.publisher.MonoCollect$CollectSubscriber.onComplete(MonoCollect.java:159)
   	at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144)
   	at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260)
   	at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144)
   	at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:400)
   	at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:419)
   	at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:473)
   	at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:703)
   	at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:93)
   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
   	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
   	at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436)
   	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:327)
   	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:299)
   	at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251)
   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
   	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
   	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
   	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
   	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
   	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:722)
   	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:658)
   	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:584)
   	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:496)
   	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:995)
   	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
   	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
   	at java.base/java.lang.Thread.run(Thread.java:840)
   2023-01-23 15:42:32 [shenyu-netty-nio-3] ERROR org.apache.shenyu.web.handler.GlobalErrorHandler - handle error: [826a4bd4-1] Resolved [UnsupportedOperationException: null] for HTTP POST /http/test/payment
   java.lang.UnsupportedOperationException: null
   	at org.springframework.http.ReadOnlyHttpHeaders.remove(ReadOnlyHttpHeaders.java:131)
   	Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: 
   Error has been observed at the following site(s):
   	*__checkpoint ⇢ org.apache.shenyu.web.configuration.ErrorHandlerConfiguration$1 [DefaultWebFilterChain]
   	*__checkpoint ⇢ org.apache.shenyu.web.filter.FileSizeFilter [DefaultWebFilterChain]
   	*__checkpoint ⇢ org.apache.shenyu.web.filter.CrossFilter [DefaultWebFilterChain]
   	*__checkpoint ⇢ org.springframework.security.web.server.authorization.AuthorizationWebFilter [DefaultWebFilterChain]
   	*__checkpoint ⇢ org.springframework.security.web.server.authorization.ExceptionTranslationWebFilter [DefaultWebFilterChain]
   	*__checkpoint ⇢ org.springframework.security.web.server.authentication.logout.LogoutWebFilter [DefaultWebFilterChain]
   	*__checkpoint ⇢ org.springframework.security.web.server.savedrequest.ServerRequestCacheWebFilter [DefaultWebFilterChain]
   	*__checkpoint ⇢ org.springframework.security.web.server.context.SecurityContextServerWebExchangeWebFilter [DefaultWebFilterChain]
   	*__checkpoint ⇢ org.springframework.security.web.server.context.ReactorContextWebFilter [DefaultWebFilterChain]
   	*__checkpoint ⇢ org.springframework.security.web.server.header.HttpHeaderWriterWebFilter [DefaultWebFilterChain]
   	*__checkpoint ⇢ org.springframework.security.config.web.server.ServerHttpSecurity$ServerWebExchangeReactorContextWebFilter [DefaultWebFilterChain]
   	*__checkpoint ⇢ org.springframework.security.web.server.WebFilterChainProxy [DefaultWebFilterChain]
   	*__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain]
   	*__checkpoint ⇢ HTTP POST "/http/test/payment" [ExceptionHandlingWebHandler]
   Original Stack Trace:
   		at org.springframework.http.ReadOnlyHttpHeaders.remove(ReadOnlyHttpHeaders.java:131)
   		at org.apache.shenyu.plugin.base.utils.ResponseUtils.fixHeaders(ResponseUtils.java:162)
   		at org.apache.shenyu.plugin.base.utils.ResponseUtils.fixBodyMessage(ResponseUtils.java:92)
   		at org.apache.shenyu.plugin.base.utils.ResponseUtils.lambda$writeWith$2(ResponseUtils.java:142)
   		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:44)
   		at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240)
   		at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203)
   		at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126)
   		at reactor.core.publisher.MonoFlatMap$FlatMapMain.onComplete(MonoFlatMap.java:181)
   		at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onComplete(FluxSwitchIfEmpty.java:85)
   		at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:209)
   		at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:238)
   		at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51)
   		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52)
   		at reactor.core.publisher.Mono.subscribe(Mono.java:4400)
   		at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onComplete(FluxSwitchIfEmpty.java:82)
   		at reactor.core.publisher.MonoSingle$SingleSubscriber.onComplete(MonoSingle.java:164)
   		at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onComplete(FluxMapFuseable.java:152)
   		at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondComplete(MonoFlatMap.java:196)
   		at reactor.core.publisher.MonoFlatMap$FlatMapInner.onComplete(MonoFlatMap.java:268)
   		at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126)
   		at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onComplete(MonoPeekTerminal.java:299)
   		at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondComplete(MonoFlatMap.java:196)
   		at reactor.core.publisher.MonoFlatMap$FlatMapInner.onComplete(MonoFlatMap.java:268)
   		at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onComplete(FluxPeekFuseable.java:277)
   		at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onComplete(MonoPeekTerminal.java:299)
   		at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89)
   		at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:230)
   		at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126)
   		at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondComplete(MonoFlatMap.java:196)
   		at reactor.core.publisher.MonoFlatMap$FlatMapInner.onComplete(MonoFlatMap.java:268)
   		at reactor.netty.FutureMono$FutureSubscription.operationComplete(FutureMono.java:196)
   		at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:578)
   		at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:571)
   		at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:550)
   		at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:491)
   		at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:616)
   		at io.netty.util.concurrent.DefaultPromise.setSuccess0(DefaultPromise.java:605)
   		at io.netty.util.concurrent.DefaultPromise.trySuccess(DefaultPromise.java:104)
   		at io.netty.util.internal.PromiseNotificationUtil.trySuccess(PromiseNotificationUtil.java:48)
   		at io.netty.channel.ChannelOutboundBuffer.safeSuccess(ChannelOutboundBuffer.java:717)
   		at io.netty.channel.ChannelOutboundBuffer.remove(ChannelOutboundBuffer.java:272)
   		at io.netty.channel.ChannelOutboundBuffer.removeBytes(ChannelOutboundBuffer.java:352)
   		at io.netty.channel.socket.nio.NioSocketChannel.doWrite(NioSocketChannel.java:421)
   		at io.netty.channel.AbstractChannel$AbstractUnsafe.flush0(AbstractChannel.java:931)
   		at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.flush0(AbstractNioChannel.java:354)
   		at io.netty.channel.AbstractChannel$AbstractUnsafe.flush(AbstractChannel.java:895)
   		at io.netty.channel.DefaultChannelPipeline$HeadContext.flush(DefaultChannelPipeline.java:1372)
   		at io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:750)
   		at io.netty.channel.AbstractChannelHandlerContext.invokeFlush(AbstractChannelHandlerContext.java:742)
   		at io.netty.channel.AbstractChannelHandlerContext.flush(AbstractChannelHandlerContext.java:728)
   		at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.flush(CombinedChannelDuplexHandler.java:531)
   		at io.netty.channel.ChannelOutboundHandlerAdapter.flush(ChannelOutboundHandlerAdapter.java:125)
   		at io.netty.channel.CombinedChannelDuplexHandler.flush(CombinedChannelDuplexHandler.java:356)
   		at io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:750)
   		at io.netty.channel.AbstractChannelHandlerContext.invokeFlush(AbstractChannelHandlerContext.java:742)
   		at io.netty.channel.AbstractChannelHandlerContext.flush(AbstractChannelHandlerContext.java:728)
   		at io.netty.channel.ChannelDuplexHandler.flush(ChannelDuplexHandler.java:127)
   		at io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:750)
   		at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:765)
   		at io.netty.channel.AbstractChannelHandlerContext$WriteTask.run(AbstractChannelHandlerContext.java:1071)
   		at io.netty.util.concurrent.AbstractEventExecutor.runTask$$$capture(AbstractEventExecutor.java:174)
   		at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java)
   		at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:167)
   		at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)
   		at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
   		at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:503)
   		at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:995)
   		at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
   		at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
   		at java.base/java.lang.Thread.run(Thread.java:840)
   2023-01-23 15:42:32 [shenyu-netty-nio-3] ERROR org.springframework.web.server.adapter.HttpWebHandlerAdapter - [826a4bd4-1] Error [java.lang.UnsupportedOperationException] for HTTP POST "/http/test/payment", but ServerHttpResponse already committed (200 OK)
   ......
   
   ```
   4. view logs after fixed 
    only have error about  decrypt or encrypt
     ```tex
    2023-01-23 15:47:27 [reactor-http-nio-3] INFO  org.apache.shenyu.plugin.base.AbstractShenyuPlugin - cryptorResponse selector success match , selector name :/**
   2023-01-23 15:47:27 [reactor-http-nio-3] INFO  org.apache.shenyu.plugin.base.AbstractShenyuPlugin - cryptorResponse rule success match , rule name :all
   2023-01-23 15:47:27 [reactor-http-nio-3] ERROR org.apache.shenyu.plugin.cryptor.strategy.CryptorStrategyFactory - decrypt data error: 
   java.lang.IllegalArgumentException: Last unit does not have enough valid bits
   	at java.base/java.util.Base64$Decoder.decode0(Base64.java:766)
   	at java.base/java.util.Base64$Decoder.decode(Base64.java:538)
   	at java.base/java.util.Base64$Decoder.decode(Base64.java:561)
   	at org.apache.shenyu.plugin.cryptor.strategy.CryptorStrategyFactory.decrypt(CryptorStrategyFactory.java:96)
   	at org.apache.shenyu.plugin.cryptor.strategy.CryptorStrategyFactory.match(CryptorStrategyFactory.java:61)
   	at org.apache.shenyu.plugin.cryptor.utils.CryptorUtil.crypt(CryptorUtil.java:124)
   	at org.apache.shenyu.plugin.cryptor.response.CryptorResponsePlugin.convert(CryptorResponsePlugin.java:82)
   	at org.apache.shenyu.plugin.cryptor.response.CryptorResponsePlugin.lambda$doExecute$0(CryptorResponsePlugin.java:64)
   	at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113)
   	at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:539)
   	at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129)
   	at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107)
   	at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.onNext(FluxMapFuseable.java:299)
   	at reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.onNext(FluxFilterFuseable.java:337)
   	at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816)
   	at reactor.core.publisher.MonoCollect$CollectSubscriber.onComplete(MonoCollect.java:159)
   	at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onComplete(FluxPeekFuseable.java:277)
   	at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400)
   	at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.request(FluxPeekFuseable.java:144)
   	at reactor.core.publisher.MonoCollect$CollectSubscriber.onSubscribe(MonoCollect.java:103)
   	at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onSubscribe(FluxPeekFuseable.java:178)
   	at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55)
   	at reactor.core.publisher.Mono.subscribe(Mono.java:4400)
   	at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263)
   	at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51)
   	at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64)
   	at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157)
   	at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:539)
   	at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129)
   	at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107)
   	at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.onNext(FluxMapFuseable.java:299)
   	at reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.onNext(FluxFilterFuseable.java:337)
   	at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816)
   	at reactor.core.publisher.MonoCollect$CollectSubscriber.onComplete(MonoCollect.java:159)
   	at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onComplete(FluxOnAssembly.java:549)
   	at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400)
   	at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:649)
   	at reactor.core.publisher.MonoCollect$CollectSubscriber.onSubscribe(MonoCollect.java:103)
   	at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onSubscribe(FluxOnAssembly.java:633)
   	at reactor.core.publisher.FluxJust.subscribe(FluxJust.java:68)
   	at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64)
   	at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52)
   	at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240)
   	at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203)
   	at reactor.core.publisher.Operators.complete(Operators.java:137)
   	at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46)
   	at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52)
   	at reactor.core.publisher.Mono.subscribe(Mono.java:4400)
   	at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263)
   	at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51)
   	at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52)
   	at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64)
   	at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52)
   	at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52)
   	at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52)
   	at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157)
   	at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79)
   	at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79)
   	at reactor.core.publisher.SerializedSubscriber.onNext(SerializedSubscriber.java:99)
   	at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.onNext(FluxRetryWhen.java:174)
   	at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onNext(MonoPeekTerminal.java:180)
   	at reactor.core.publisher.SerializedSubscriber.onNext(SerializedSubscriber.java:99)
   	at reactor.core.publisher.SerializedSubscriber.onNext(SerializedSubscriber.java:99)
   	at reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.onNext(FluxTimeout.java:180)
   	at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onNext(MonoPeekTerminal.java:180)
   	at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816)
   	at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:249)
   	at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79)
   	at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74)
   	at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816)
   	at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:249)
   	at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.complete(MonoIgnoreThen.java:292)
   	at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onNext(MonoIgnoreThen.java:187)
   	at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:236)
   	at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203)
   	at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onComplete(Operators.java:2058)
   	at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89)
   	at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onComplete(FluxMapFuseable.java:152)
   	at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onComplete(FluxOnAssembly.java:549)
   	at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144)
   	at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260)
   	at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144)
   	at reactor.core.publisher.Operators.complete(Operators.java:137)
   	at reactor.netty.channel.FluxReceive.startReceiver(FluxReceive.java:176)
   	at reactor.netty.channel.FluxReceive.subscribe(FluxReceive.java:143)
   	at reactor.core.publisher.InternalFluxOperator.subscribe(InternalFluxOperator.java:62)
   	at reactor.netty.ByteBufFlux.subscribe(ByteBufFlux.java:340)
   	at reactor.core.publisher.Mono.subscribe(Mono.java:4400)
   	at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263)
   	at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51)
   	at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157)
   	at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816)
   	at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:151)
   	at reactor.core.publisher.FluxDefaultIfEmpty$DefaultIfEmptySubscriber.onNext(FluxDefaultIfEmpty.java:101)
   	at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816)
   	at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:151)
   	at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:539)
   	at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129)
   	at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107)
   	at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.onNext(FluxMapFuseable.java:299)
   	at reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.onNext(FluxFilterFuseable.java:337)
   	at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816)
   	at reactor.core.publisher.MonoCollect$CollectSubscriber.onComplete(MonoCollect.java:159)
   	at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144)
   	at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260)
   	at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144)
   	at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:400)
   	at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:419)
   	at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:473)
   	at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:703)
   	at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:93)
   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
   	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
   	at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436)
   	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:327)
   	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:299)
   	at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251)
   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
   	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
   	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
   	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
   	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
   	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:722)
   	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:658)
   	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:584)
   	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:496)
   	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:995)
   	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
   	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
   	at java.base/java.lang.Thread.run(Thread.java:840)
   
   ```
   
   


-- 
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: notifications-unsubscribe@shenyu.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [shenyu] codecov-commenter commented on pull request #4331: fix #4253 issue in Cryptor-Response Plugin

Posted by "codecov-commenter (via GitHub)" <gi...@apache.org>.
codecov-commenter commented on PR #4331:
URL: https://github.com/apache/shenyu/pull/4331#issuecomment-1399946040

   # [Codecov](https://codecov.io/gh/apache/shenyu/pull/4331?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) Report
   > Merging [#4331](https://codecov.io/gh/apache/shenyu/pull/4331?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) (6d0171d) into [master](https://codecov.io/gh/apache/shenyu/commit/d0b93698f67785a50f8429888d8cf5d8ebc22170?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) (d0b9369) will **increase** coverage by `0.20%`.
   > The diff coverage is `23.80%`.
   
   ```diff
   @@             Coverage Diff              @@
   ##             master    #4331      +/-   ##
   ============================================
   + Coverage     68.01%   68.21%   +0.20%     
   - Complexity     7484     7515      +31     
   ============================================
     Files          1020     1020              
     Lines         28831    28822       -9     
     Branches       2585     2580       -5     
   ============================================
   + Hits          19608    19660      +52     
   + Misses         7691     7620      -71     
   - Partials       1532     1542      +10     
   ```
   
   
   | [Impacted Files](https://codecov.io/gh/apache/shenyu/pull/4331?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) | Coverage Δ | |
   |---|---|---|
   | [.../shenyu/plugin/base/support/ResponseDecorator.java](https://codecov.io/gh/apache/shenyu/pull/4331?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-c2hlbnl1LXBsdWdpbi9zaGVueXUtcGx1Z2luLWJhc2Uvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3NoZW55dS9wbHVnaW4vYmFzZS9zdXBwb3J0L1Jlc3BvbnNlRGVjb3JhdG9yLmphdmE=) | `0.00% <0.00%> (ø)` | |
   | [...enyu/plugin/base/utils/ServerWebExchangeUtils.java](https://codecov.io/gh/apache/shenyu/pull/4331?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-c2hlbnl1LXBsdWdpbi9zaGVueXUtcGx1Z2luLWJhc2Uvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3NoZW55dS9wbHVnaW4vYmFzZS91dGlscy9TZXJ2ZXJXZWJFeGNoYW5nZVV0aWxzLmphdmE=) | `0.00% <0.00%> (ø)` | |
   | [...plugin/cryptor/response/CryptorResponsePlugin.java](https://codecov.io/gh/apache/shenyu/pull/4331?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-c2hlbnl1LXBsdWdpbi9zaGVueXUtcGx1Z2luLWNyeXB0b3Ivc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3NoZW55dS9wbHVnaW4vY3J5cHRvci9yZXNwb25zZS9DcnlwdG9yUmVzcG9uc2VQbHVnaW4uamF2YQ==) | `36.36% <22.22%> (-16.97%)` | :arrow_down: |
   | [...pache/shenyu/plugin/cryptor/utils/CryptorUtil.java](https://codecov.io/gh/apache/shenyu/pull/4331?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-c2hlbnl1LXBsdWdpbi9zaGVueXUtcGx1Z2luLWNyeXB0b3Ivc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3NoZW55dS9wbHVnaW4vY3J5cHRvci91dGlscy9DcnlwdG9yVXRpbC5qYXZh) | `35.48% <28.57%> (-2.02%)` | :arrow_down: |
   | [...u/plugin/cryptor/request/CryptorRequestPlugin.java](https://codecov.io/gh/apache/shenyu/pull/4331?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-c2hlbnl1LXBsdWdpbi9zaGVueXUtcGx1Z2luLWNyeXB0b3Ivc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3NoZW55dS9wbHVnaW4vY3J5cHRvci9yZXF1ZXN0L0NyeXB0b3JSZXF1ZXN0UGx1Z2luLmphdmE=) | `53.84% <100.00%> (+6.97%)` | :arrow_up: |
   | [.../client/server/consul/ShenyuConsulConfigWatch.java](https://codecov.io/gh/apache/shenyu/pull/4331?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-c2hlbnl1LXJlZ2lzdGVyLWNlbnRlci9zaGVueXUtcmVnaXN0ZXItY2xpZW50LXNlcnZlci9zaGVueXUtcmVnaXN0ZXItY2xpZW50LXNlcnZlci1jb25zdWwvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3NoZW55dS9yZWdpc3Rlci9jbGllbnQvc2VydmVyL2NvbnN1bC9TaGVueXVDb25zdWxDb25maWdXYXRjaC5qYXZh) | `60.41% <0.00%> (-25.00%)` | :arrow_down: |
   | [...yu/sync/data/http/refresh/AbstractDataRefresh.java](https://codecov.io/gh/apache/shenyu/pull/4331?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-c2hlbnl1LXN5bmMtZGF0YS1jZW50ZXIvc2hlbnl1LXN5bmMtZGF0YS1odHRwL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zaGVueXUvc3luYy9kYXRhL2h0dHAvcmVmcmVzaC9BYnN0cmFjdERhdGFSZWZyZXNoLmphdmE=) | `68.96% <0.00%> (-13.80%)` | :arrow_down: |
   | [...he/shenyu/loadbalancer/spi/RandomLoadBalancer.java](https://codecov.io/gh/apache/shenyu/pull/4331?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-c2hlbnl1LWxvYWRiYWxhbmNlci9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc2hlbnl1L2xvYWRiYWxhbmNlci9zcGkvUmFuZG9tTG9hZEJhbGFuY2VyLmphdmE=) | `81.81% <0.00%> (-9.10%)` | :arrow_down: |
   | [...che/shenyu/sync/data/http/HttpSyncDataService.java](https://codecov.io/gh/apache/shenyu/pull/4331?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-c2hlbnl1LXN5bmMtZGF0YS1jZW50ZXIvc2hlbnl1LXN5bmMtZGF0YS1odHRwL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zaGVueXUvc3luYy9kYXRhL2h0dHAvSHR0cFN5bmNEYXRhU2VydmljZS5qYXZh) | `81.63% <0.00%> (-8.17%)` | :arrow_down: |
   | ... and [53 more](https://codecov.io/gh/apache/shenyu/pull/4331?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) | |
   
   :mega: We’re building smart automated test selection to slash your CI/CD build times. [Learn more](https://about.codecov.io/iterative-testing/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation)
   


-- 
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: notifications-unsubscribe@shenyu.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [shenyu] yu199195 merged pull request #4331: [type:bugfix] fix #4253 issue in Cryptor-Response Plugin

Posted by "yu199195 (via GitHub)" <gi...@apache.org>.
yu199195 merged PR #4331:
URL: https://github.com/apache/shenyu/pull/4331


-- 
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: notifications-unsubscribe@shenyu.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org