apache / dubbo

The java implementation of Apache Dubbo. An RPC and microservice framework.
https://dubbo.apache.org/
Apache License 2.0
40.52k stars 26.43k forks source link

[3.0.0] RpcException: Invalid token! Forbid invoke remote service interface xxx #9308

Closed 0xbuidler closed 2 years ago

0xbuidler commented 2 years ago

Environment

Steps to reproduce this issue

  1. 创建了两个service: DemoService ,HelloService
    
    package com.example.demo3.api;

public interface DemoService { String getMsg(); }

package com.example.demo3.api;

import java.util.List;

public interface HelloService { List hellos(); }


2. 在provider中添加对应的实现类:DemoServiceImpl ,Hello1ServiceImpl , Hello2ServiceImpl 并且三个实现分别属于不同的group

package com.example.demo2.api;

import com.example.demo3.api.DemoService;

public class DemoServiceImpl implements DemoService { @Override public String getMsg() { return "hello"; } }

package com.example.demo2.api;

import com.example.demo3.api.Hello; import com.example.demo3.api.HelloService; import java.util.ArrayList; import java.util.List;

public class Hello1ServiceImpl implements HelloService { @Override public List hellos() { List tmpList=new ArrayList<>(); tmpList.add(new Hello("provider-hello-1")); return tmpList; } }

package com.example.demo2.api;

import com.example.demo3.api.Hello; import com.example.demo3.api.HelloService; import java.util.ArrayList; import java.util.List;

public class Hello2ServiceImpl implements HelloService { @Override public List hellos() { List tmpList=new ArrayList<>(); tmpList.add(new Hello("provider-hello-2")); return tmpList; } }


demo2-provider.xml

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://dubbo.apache.org/schema/dubbo" xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

<dubbo:application name="demo-provider1">
</dubbo:application>

<dubbo:registry address="zookeeper://${zookeeper.address:127.0.0.1}:2181"/>

<bean id="demoService" class="com.example.demo2.api.DemoServiceImpl"/>
<dubbo:service interface="com.example.demo3.api.DemoService" group="providerDemo" ref="demoService" token="true" />

<bean id="hello1Service" class="com.example.demo2.api.Hello1ServiceImpl"/>

<dubbo:service interface="com.example.demo3.api.HelloService" group="providerHello1" ref="hello1Service" token="true"/>

<bean id="hello2Service" class="com.example.demo2.api.Hello2ServiceImpl"/>

<dubbo:service interface="com.example.demo3.api.HelloService" group="providerHello2" ref="hello2Service" token="true"/>


3. 在consumer中引入Service并调用:

package com.example.demo1.controller;

import com.example.demo3.api.DemoService; import com.example.demo3.api.Hello; import com.example.demo3.api.HelloService; import org.apache.dubbo.config.annotation.DubboReference; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List;

@RestController public class TestController {

@DubboReference(group = "providerDemo" )
DemoService demo;

@GetMapping("/getMsg")
public String getMsg() {
    return demo.getMsg();
}

@DubboReference(group = "*",merger = "list",scope="remote",check = false)
HelloService helloService;

@GetMapping("/getMergeHello")
public List<Hello> getMergeHello() {
    return helloService.hellos();
}

}


demo1-consumer.xml

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://dubbo.apache.org/schema/dubbo" xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

<dubbo:application name="demo-consumer"/>

<dubbo:registry address="zookeeper://${zookeeper.address:127.0.0.1}:2181" check="true"/>

<dubbo:consumer retries="2"></dubbo:consumer>


4. 执行结果:
/getMergeHello
![image](https://user-images.githubusercontent.com/9510705/142978506-773ff8b4-219e-459e-a698-f3ba6407ea87.png)

/getMsg
![image](https://user-images.githubusercontent.com/9510705/142978515-99d4ff8f-6b13-4fb6-8fbb-7a9fbe6c2af9.png)

/getMsg的异常日志:

2021-11-23 14:15:45.343 ERROR 3752 --- [nio-8081-exec-5] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.apache.dubbo.rpc.RpcException: Failed to invoke the method getMsg in the service com.example.demo3.api.DemoService. Tried 3 times of the providers [10.31.52.37:20880] (1/1) from the registry 127.0.0.1:2181 on the consumer 10.31.52.37 using the dubbo version 3.0.0. Last error is: Failed to invoke remote method: getMsg, provider: DefaultServiceInstance{, serviceName='demo-provider1', host='10.31.52.37', port=20880, enabled=true, healthy=true, metadata={anyhost=true, application=demo-provider1, deprecated=false, dubbo=2.0.2, dubbo.endpoints=[{"port":20880,"protocol":"dubbo"}], dubbo.metadata-service.url-params={"version":"1.0.0","dubbo":"2.0.2","release":"3.0.0","port":"20880","protocol":"dubbo"}, dubbo.metadata.revision=ec8103fcae22ed9aab44402f75c6ac01, dubbo.metadata.storage-type=local, dynamic=true, generic=false, group=providerHello1, interface=com.example.demo3.api.HelloService, metadata-type=remote, methods=hellos, pid=9416, release=3.0.0, side=provider, timestamp=1637646971918, token=94eb6de8-f0c4-4baf-a126-79f097065fbf}}, service{name='com.example.demo3.api.DemoService',group='providerDemo',version='null',protocol='dubbo',params={side=provider, release=3.0.0, methods=getMsg, deprecated=false, dubbo=2.0.2, pid=9416, interface=com.example.demo3.api.DemoService, generic=false, token=a283b39f-1218-4e3a-b278-2dc18b9f7e07, metadata-type=remote, application=demo-provider1, dynamic=true, group=providerDemo, anyhost=true, timestamp=1637646970671},consumerParams={side=consumer, register.ip=10.31.52.37, release=3.0.0, methods=getMsg, dubbo=2.0.2, pid=3752, interface=com.example.demo3.api.DemoService, qos.enable=false, retries=2, metadata-type=remote, application=demo-consumer, sticky=false, timestamp=1637647013985, group=providerDemo}}, cause: org.apache.dubbo.remoting.RemotingException: org.apache.dubbo.rpc.RpcException: Invalid token! Forbid invoke remote service interface com.example.demo3.api.DemoService method getMsg() from consumer 10.31.52.37 to provider 10.31.52.37, consumer incorrect token is 94eb6de8-f0c4-4baf-a126-79f097065fbf org.apache.dubbo.rpc.RpcException: Invalid token! Forbid invoke remote service interface com.example.demo3.api.DemoService method getMsg() from consumer 10.31.52.37 to provider 10.31.52.37, consumer incorrect token is 94eb6de8-f0c4-4baf-a126-79f097065fbf at org.apache.dubbo.rpc.filter.TokenFilter.invoke(TokenFilter.java:53) at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$FilterChainNode.invoke(FilterChainBuilder.java:82) at org.apache.dubbo.rpc.filter.TimeoutFilter.invoke(TimeoutFilter.java:46) at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$FilterChainNode.invoke(FilterChainBuilder.java:82) at org.apache.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:89) at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$FilterChainNode.invoke(FilterChainBuilder.java:82) at org.apache.dubbo.rpc.filter.ExceptionFilter.invoke(ExceptionFilter.java:52) at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$FilterChainNode.invoke(FilterChainBuilder.java:82) at org.apache.dubbo.auth.filter.ProviderAuthFilter.invoke(ProviderAuthFilter.java:48) at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$FilterChainNode.invoke(FilterChainBuilder.java:82) at org.apache.dubbo.rpc.filter.ContextFilter.invoke(ContextFilter.java:132) at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$FilterChainNode.invoke(FilterChainBuilder.java:82) at org.apache.dubbo.rpc.filter.GenericFilter.invoke(GenericFilter.java:189) at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$FilterChainNode.invoke(FilterChainBuilder.java:82) at org.apache.dubbo.rpc.filter.ClassLoaderFilter.invoke(ClassLoaderFilter.java:38) at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$FilterChainNode.invoke(FilterChainBuilder.java:82) at org.apache.dubbo.rpc.filter.EchoFilter.invoke(EchoFilter.java:41) at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$FilterChainNode.invoke(FilterChainBuilder.java:82) at org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol$1.reply(DubboProtocol.java:145) at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.handleRequest(HeaderExchangeHandler.java:100) at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:175) at org.apache.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:51) at org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:57) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at org.apache.dubbo.common.threadlocal.InternalRunnable.run(InternalRunnable.java:41) at java.base/java.lang.Thread.run(Thread.java:834) ] with root cause

org.apache.dubbo.remoting.RemotingException: org.apache.dubbo.rpc.RpcException: Invalid token! Forbid invoke remote service interface com.example.demo3.api.DemoService method getMsg() from consumer 10.31.52.37 to provider 10.31.52.37, consumer incorrect token is 94eb6de8-f0c4-4baf-a126-79f097065fbf org.apache.dubbo.rpc.RpcException: Invalid token! Forbid invoke remote service interface com.example.demo3.api.DemoService method getMsg() from consumer 10.31.52.37 to provider 10.31.52.37, consumer incorrect token is 94eb6de8-f0c4-4baf-a126-79f097065fbf at org.apache.dubbo.rpc.filter.TokenFilter.invoke(TokenFilter.java:53) at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$FilterChainNode.invoke(FilterChainBuilder.java:82) at org.apache.dubbo.rpc.filter.TimeoutFilter.invoke(TimeoutFilter.java:46) at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$FilterChainNode.invoke(FilterChainBuilder.java:82) at org.apache.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:89) at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$FilterChainNode.invoke(FilterChainBuilder.java:82) at org.apache.dubbo.rpc.filter.ExceptionFilter.invoke(ExceptionFilter.java:52) at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$FilterChainNode.invoke(FilterChainBuilder.java:82) at org.apache.dubbo.auth.filter.ProviderAuthFilter.invoke(ProviderAuthFilter.java:48) at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$FilterChainNode.invoke(FilterChainBuilder.java:82) at org.apache.dubbo.rpc.filter.ContextFilter.invoke(ContextFilter.java:132) at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$FilterChainNode.invoke(FilterChainBuilder.java:82) at org.apache.dubbo.rpc.filter.GenericFilter.invoke(GenericFilter.java:189) at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$FilterChainNode.invoke(FilterChainBuilder.java:82) at org.apache.dubbo.rpc.filter.ClassLoaderFilter.invoke(ClassLoaderFilter.java:38) at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$FilterChainNode.invoke(FilterChainBuilder.java:82) at org.apache.dubbo.rpc.filter.EchoFilter.invoke(EchoFilter.java:41) at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$FilterChainNode.invoke(FilterChainBuilder.java:82) at org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol$1.reply(DubboProtocol.java:145) at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.handleRequest(HeaderExchangeHandler.java:100) at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:175) at org.apache.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:51) at org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:57) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at org.apache.dubbo.common.threadlocal.InternalRunnable.run(InternalRunnable.java:41) at java.base/java.lang.Thread.run(Thread.java:834)

at org.apache.dubbo.remoting.exchange.support.DefaultFuture.doReceived(DefaultFuture.java:212) ~[dubbo-3.0.0.jar:3.0.0]
at org.apache.dubbo.remoting.exchange.support.DefaultFuture.received(DefaultFuture.java:175) ~[dubbo-3.0.0.jar:3.0.0]
at org.apache.dubbo.remoting.exchange.support.DefaultFuture.received(DefaultFuture.java:163) ~[dubbo-3.0.0.jar:3.0.0]
at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.handleResponse(HeaderExchangeHandler.java:60) ~[dubbo-3.0.0.jar:3.0.0]
at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:181) ~[dubbo-3.0.0.jar:3.0.0]
at org.apache.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:51) ~[dubbo-3.0.0.jar:3.0.0]
at org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:57) ~[dubbo-3.0.0.jar:3.0.0]
at org.apache.dubbo.common.threadpool.ThreadlessExecutor$RunnableWrapper.run(ThreadlessExecutor.java:196) ~[dubbo-3.0.0.jar:3.0.0]
at org.apache.dubbo.common.threadpool.ThreadlessExecutor.waitAndDrain(ThreadlessExecutor.java:99) ~[dubbo-3.0.0.jar:3.0.0]
at org.apache.dubbo.rpc.AsyncRpcResult.get(AsyncRpcResult.java:179) ~[dubbo-3.0.0.jar:3.0.0]
at org.apache.dubbo.rpc.protocol.AbstractInvoker.waitForResultIfSync(AbstractInvoker.java:272) ~[dubbo-3.0.0.jar:3.0.0]
at org.apache.dubbo.rpc.protocol.AbstractInvoker.invoke(AbstractInvoker.java:181) ~[dubbo-3.0.0.jar:3.0.0]
at org.apache.dubbo.rpc.listener.ListenerInvokerWrapper.invoke(ListenerInvokerWrapper.java:78) ~[dubbo-3.0.0.jar:3.0.0]
at org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.invokeWithContext(AbstractClusterInvoker.java:297) ~[dubbo-3.0.0.jar:3.0.0]
at org.apache.dubbo.rpc.cluster.support.FailoverClusterInvoker.doInvoke(FailoverClusterInvoker.java:79) ~[dubbo-3.0.0.jar:3.0.0]
at org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.invoke(AbstractClusterInvoker.java:265) ~[dubbo-3.0.0.jar:3.0.0]
at org.apache.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:89) ~[dubbo-3.0.0.jar:3.0.0]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$FilterChainNode.invoke(FilterChainBuilder.java:82) ~[dubbo-3.0.0.jar:3.0.0]
at org.apache.dubbo.rpc.protocol.dubbo.filter.FutureFilter.invoke(FutureFilter.java:51) ~[dubbo-3.0.0.jar:3.0.0]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$FilterChainNode.invoke(FilterChainBuilder.java:82) ~[dubbo-3.0.0.jar:3.0.0]
at org.apache.dubbo.rpc.cluster.filter.support.ConsumerContextFilter.invoke(ConsumerContextFilter.java:101) ~[dubbo-3.0.0.jar:3.0.0]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$FilterChainNode.invoke(FilterChainBuilder.java:82) ~[dubbo-3.0.0.jar:3.0.0]
at org.apache.dubbo.rpc.cluster.support.wrapper.AbstractCluster$ClusterFilterInvoker.invoke(AbstractCluster.java:93) ~[dubbo-3.0.0.jar:3.0.0]
at org.apache.dubbo.rpc.cluster.support.wrapper.MockClusterInvoker.invoke(MockClusterInvoker.java:93) ~[dubbo-3.0.0.jar:3.0.0]
at org.apache.dubbo.registry.client.migration.MigrationInvoker.invoke(MigrationInvoker.java:277) ~[dubbo-3.0.0.jar:3.0.0]
at org.apache.dubbo.rpc.proxy.InvokerInvocationHandler.invoke(InvokerInvocationHandler.java:95) ~[dubbo-3.0.0.jar:3.0.0]
at org.apache.dubbo.common.bytecode.proxy2.getMsg(proxy2.java) ~[dubbo-3.0.0.jar:3.0.0]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344) ~[spring-aop-5.3.12.jar:5.3.12]
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208) ~[spring-aop-5.3.12.jar:5.3.12]
at com.sun.proxy.$Proxy66.getMsg(Unknown Source) ~[na:na]
at com.example.demo1.controller.TestController.getMsg(TestController.java:20) ~[classes/:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.12.jar:5.3.12]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.12.jar:5.3.12]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.12.jar:5.3.12]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.12.jar:5.3.12]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.12.jar:5.3.12]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.12.jar:5.3.12]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067) ~[spring-webmvc-5.3.12.jar:5.3.12]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) ~[spring-webmvc-5.3.12.jar:5.3.12]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.12.jar:5.3.12]
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) ~[spring-webmvc-5.3.12.jar:5.3.12]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:655) ~[tomcat-embed-core-9.0.54.jar:4.0.FR]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.12.jar:5.3.12]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) ~[tomcat-embed-core-9.0.54.jar:4.0.FR]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.54.jar:9.0.54]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.54.jar:9.0.54]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.54.jar:9.0.54]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.54.jar:9.0.54]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.54.jar:9.0.54]
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.12.jar:5.3.12]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.12.jar:5.3.12]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.54.jar:9.0.54]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.54.jar:9.0.54]
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.12.jar:5.3.12]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.12.jar:5.3.12]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.54.jar:9.0.54]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.54.jar:9.0.54]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.12.jar:5.3.12]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.12.jar:5.3.12]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.54.jar:9.0.54]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.54.jar:9.0.54]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) ~[tomcat-embed-core-9.0.54.jar:9.0.54]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.54.jar:9.0.54]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540) ~[tomcat-embed-core-9.0.54.jar:9.0.54]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) ~[tomcat-embed-core-9.0.54.jar:9.0.54]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.54.jar:9.0.54]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.54.jar:9.0.54]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) ~[tomcat-embed-core-9.0.54.jar:9.0.54]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382) ~[tomcat-embed-core-9.0.54.jar:9.0.54]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.54.jar:9.0.54]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:895) ~[tomcat-embed-core-9.0.54.jar:9.0.54]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1722) ~[tomcat-embed-core-9.0.54.jar:9.0.54]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.54.jar:9.0.54]
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.54.jar:9.0.54]
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.54.jar:9.0.54]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.54.jar:9.0.54]
at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]

Pls. provide [GitHub address] to reproduce this issue.

### Expected Behavior

<!-- What do you expect from the above steps?-->

### Actual Behavior

<!-- What actually happens? -->

If there is an exception, please attach the exception trace:

Just put your stack trace here!

haoyann commented 2 years ago

Maybe fixed here #8383. Please try upgrading the version.

0xbuidler commented 2 years ago

hi,请问这个问题在哪个版本解决了?3.0.4 这个版本可以吗?

haoyann commented 2 years ago

hi,请问这个问题在哪个版本解决了?3.0.4 这个版本可以吗?

应该是可以的。

0xbuidler commented 2 years ago

hi,请问这个问题在哪个版本解决了?3.0.4 这个版本可以吗?

应该是可以的。

谢谢,3.0.4的确已经解决了。