复现流程:
版本2.2.3,新部署,
1:admin登录,新建了 租户 "租户1",配置了租户套餐"租户1";登录租户1 创建了 用户1,给用户付普通角色和配置菜单权限
2:admin登录,修改"租户1"的套餐,提示 "角色(1/1) 租户不匹配";

[{"createTime":1609837428000,"updateTime":1755760675000,"createUser":1,"updateUser":1,"isDeleted":0,"tenantId":1,"id":1,"name":"超级管理员","code":"super_admin","sort":1,"status":0,"type":1,"remark":"超级管理员","dataScope":1,"dataScopeDeptIds":null}]
11:26:49.605 [http-nio-48080-exec-7] DEBUG c.j.s.s.m.T.selectById - [debug,135] - ==> Preparing: SELECT id, name, status, remark, menu_ids, create_time, update_time, create_user, update_user, is_deleted FROM system_tenant_package WHERE id = ? AND is_deleted = 0
11:26:49.605 [http-nio-48080-exec-7] DEBUG c.j.s.s.m.T.selectById - [debug,135] - ==> Parameters: 116(Long)
11:26:49.609 [http-nio-48080-exec-7] DEBUG c.j.s.s.m.T.selectById - [debug,135] - <== Total: 1
11:26:49.610 [http-nio-48080-exec-7] DEBUG c.j.s.s.m.T.updateById - [debug,135] - ==> Preparing: UPDATE system_tenant_package SET name = ?, status = ?, remark = ?, menu_ids = ?, update_time = ?, update_user = ? WHERE id = ? AND is_deleted = 0
11:26:49.611 [http-nio-48080-exec-7] DEBUG c.j.s.s.m.T.updateById - [debug,135] - ==> Parameters: 租户1(String), 0(Integer), (String), [1024,1,1025,1026,2,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1046,1048,1050,1051,1052,1053,1054,2083,1063,1064,1065,3115,3116,3117,3118,1075,1076,1087,1090,1093,1094,1095,1096,1097,1098,1100,1101,1102,1103,1104,1105,1106,2130,1107,2131,1108,2132,1109,2133,2134,1110,2135,1111,2136,1112,2137,1113,2138,1114,2139,1115,2140,2141,2142,2143,2144,2145,2146,2147,100,2148,101,2149,102,2150,103,2151,104,2152,105,106,107,109,110,1138,1139,1140,116,1141,1142,1143,1185,1186,1193,1194,1195,1196,1197,1198,1199,1200,1201,1202,1207,1208,1209,1210,1211,1212,1213,1215,1216,1217,1218,1219,1220,1221,1222,1224,2761,1225,2762,1226,2763,1227,1228,2765,1229,1237,1238,1239,1240,1241,1242,1243,1247,1248,1249,1250,1251,1252,1255,1256,1257,2794,1258,2795,1259,2796,1260,2797,1261,2798,2799,1263,2800,1264,2801,1265,2802,1266,2803,1267,2804,2805,2806,2809,2810,2811,2812,2813,2821,2822,2823,2824,2825,2826,2830,2831,2832,2834,2835,2836,2837,2838,2839,2840,2841,2842,2843,2844,2845,2846,2847,2848,2850,2851,2852,2853,2854,2855,2856,2857,2858,2859,2861,2862,2863,2864,2865,2866,2867,2868,2869,2870,2872,2873,2874,2875,2881,2882,2883,2884,2886,2887,2888,2889,2890,2891,2901,2902,2903,2904,2905,2906,2907,2908,2909,2910,2911,2912,2913,2914,2915,2916,2917,2918,2919,2920,2921,2922,2923,2947,2948,2949,2950,2951,2952,2953,2954,2955,2956,2957,2958,2959,2447,2960,2448,2961,2449,2962,2450,2963,2451,2964,2452,2965,2453,2968,2969,2970,2971,2972,2995,2996,2997,2998,2999,3000,3001,2525,3039,3040,3041,3042,3043,3044,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023](String), 2025-09-29T11:26:49.610(LocalDateTime), null, 116(Long)
11:26:49.613 [http-nio-48080-exec-7] DEBUG c.j.s.s.m.T.updateById - [debug,135] - <== Updates: 1
11:26:49.614 [http-nio-48080-exec-7] DEBUG c.j.s.s.m.T.selectList - [debug,135] - ==> Preparing: SELECT id, name, contact_user_id, contact_name, contact_mobile, status, website, package_id, expire_time, account_count, create_time, update_time, create_user, update_user, is_deleted FROM system_tenant WHERE is_deleted = 0 AND (package_id = ?)
11:26:49.616 [http-nio-48080-exec-7] DEBUG c.j.s.s.m.T.selectList - [debug,135] - ==> Parameters: 116(Long)
11:26:49.618 [http-nio-48080-exec-7] DEBUG c.j.s.s.m.T.selectList - [debug,135] - <== Total: 1
11:26:49.619 [http-nio-48080-exec-7] DEBUG c.j.s.s.m.R.selectList - [debug,135] - ==> Preparing: SELECT id, name, code, sort, status, type, remark, data_scope, data_scope_dept_ids, tenant_id, create_time, update_time, create_user, update_user, is_deleted FROM system_role WHERE is_deleted = 0
11:26:49.620 [http-nio-48080-exec-7] DEBUG c.j.s.s.m.R.selectList - [debug,135] - ==> Parameters:
11:26:49.622 [http-nio-48080-exec-7] DEBUG c.j.s.s.m.R.selectList - [debug,135] - <== Total: 3
java.lang.IllegalArgumentException: 角色(1/1) 租户不匹配
at cn.hutool.core.lang.Assert.lambda$isTrue$0(Assert.java:54)
at cn.hutool.core.lang.Assert.isTrue(Assert.java:37)
at cn.hutool.core.lang.Assert.isTrue(Assert.java:54)
at com.jeelowcode.service.system.service.impl.TenantServiceImpl.lambda$null$1(TenantServiceImpl.java:197)
at java.util.ArrayList.forEach(ArrayList.java:1259)
at com.jeelowcode.service.system.service.impl.TenantServiceImpl.lambda$updateTenantRoleMenu$3(TenantServiceImpl.java:197)
at com.jeelowcode.tool.framework.tenant.core.util.TenantUtils.execute(TenantUtils.java:33)
at com.jeelowcode.service.system.service.impl.TenantServiceImpl.updateTenantRoleMenu(TenantServiceImpl.java:194)
at com.jeelowcode.service.system.service.impl.TenantServiceImpl$$FastClassBySpringCGLIB$$4ecc4912.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at com.baomidou.dynamic.datasource.aop.DynamicLocalTransactionInterceptor$1.execute(DynamicLocalTransactionInterceptor.java:51)
at com.baomidou.dynamic.datasource.tx.TransactionalTemplate.doExecute(TransactionalTemplate.java:111)
at com.baomidou.dynamic.datasource.tx.TransactionalTemplate.execute(TransactionalTemplate.java:94)
at com.baomidou.dynamic.datasource.aop.DynamicLocalTransactionInterceptor.invoke(DynamicLocalTransactionInterceptor.java:59)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)
at com.jeelowcode.service.system.service.impl.TenantServiceImpl$$EnhancerBySpringCGLIB$$587aab2a.updateTenantRoleMenu(<generated>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:234)
at com.sun.proxy.$Proxy152.updateTenantRoleMenu(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:234)
at com.sun.proxy.$Proxy152.updateTenantRoleMenu(Unknown Source)
at com.jeelowcode.service.system.service.impl.TenantPackageServiceImpl.lambda$updateTenantPackage$0(TenantPackageServiceImpl.java:61)
at java.util.ArrayList.forEach(ArrayList.java:1259)
at com.jeelowcode.service.system.service.impl.TenantPackageServiceImpl.updateTenantPackage(TenantPackageServiceImpl.java:61)
at com.jeelowcode.service.system.service.impl.TenantPackageServiceImpl$$FastClassBySpringCGLIB$$5241d12.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at com.baomidou.dynamic.datasource.aop.DynamicLocalTransactionInterceptor$1.execute(DynamicLocalTransactionInterceptor.java:51)
at com.baomidou.dynamic.datasource.tx.TransactionalTemplate.doExecute(TransactionalTemplate.java:117)
at com.baomidou.dynamic.datasource.tx.TransactionalTemplate.execute(TransactionalTemplate.java:94)
at com.baomidou.dynamic.datasource.aop.DynamicLocalTransactionInterceptor.invoke(DynamicLocalTransactionInterceptor.java:59)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)
at com.jeelowcode.service.system.service.impl.TenantPackageServiceImpl$$EnhancerBySpringCGLIB$$59e0f856.updateTenantPackage(<generated>)
at com.jeelowcode.service.system.controller.TenantPackageController.updateTenantPackage(TenantPackageController.java:46)
at com.jeelowcode.service.system.controller.TenantPackageController$$FastClassBySpringCGLIB$$e5306542.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)
at com.jeelowcode.tool.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:102)
at com.jeelowcode.tool.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:79)
at sun.reflect.GeneratedMethodAccessor288.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)
at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)
at com.jeelowcode.core.framework.config.log.ApiLogAspect.around(ApiLogAspect.java:88)
at sun.reflect.GeneratedMethodAccessor287.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)
at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)
at com.jeelowcode.service.system.controller.TenantPackageController$$EnhancerBySpringCGLIB$$72634ecc.updateTenantPackage(<generated>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:920)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:558)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at com.jeelowcode.tool.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:108)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at com.jeelowcode.tool.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at com.jeelowcode.tool.framework.xss.core.filter.XssFilter.doFilterInternal(XssFilter.java:37)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at com.jeelowcode.tool.framework.apilog.core.filter.ApiAccessLogFilter.doFilterInternal(ApiAccessLogFilter.java:58)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at com.jeelowcode.tool.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at com.jeelowcode.tool.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at com.jeelowcode.tool.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:750)
11:27:28.709 [http-nio-48080-exec-4] DEBUG c.j.s.s.m.N.selectCount - [debug,135] - ==> Preparing: SELECT COUNT(*) AS total FROM system_notify_message WHERE is_deleted = 0 AND (read_status = ? AND user_id = ? AND user_type = ?)
11:27:28.710 [http-nio-48080-exec-4] DEBUG c.j.s.s.m.N.selectCount - [debug,135] - ==> Parameters: false(Boolean), 1(Long), 2(Integer)
11:27:28.712 [http-nio-48080-exec-4] DEBUG c.j.s.s.m.N.selectCount - [debug,135] - <== Total: 1
11:27:31.299 [pool-10-thread-1] DEBUG c.j.s.s.m.E.selectList - [debug,135] - ==> Preparing: SELECT id, type, application_name, code, message, memo, create_time, update_time, create_user, update_user, is_deleted FROM system_error_code WHERE is_deleted = 0 AND (application_name = ?)
11:27:31.300 [pool-10-thread-1] DEBUG c.j.s.s.m.E.selectList - [debug,135] - ==> Parameters: jeelowcode-server(String)
11:27:31.302 [pool-10-thread-1] DEBUG c.j.s.s.m.E.selectList - [debug,135] - <== Total: 0
11:27:38.886 [http-nio-48080-exec-10] DEBUG c.j.s.s.m.N.selectCount - [debug,135] - ==> Preparing: SELECT COUNT(*) AS total FROM system_notify_message WHERE is_deleted = 0 AND (read_status = ? AND user_id = ? AND user_type = ?)
11:27:38.887 [http-nio-48080-exec-10] DEBUG c.j.s.s.m.N.selectCount - [debug,135] - ==> Parameters: false(Boolean), 1912706932129239047(Long), 2(Integer)
11:27:38.888 [pool-3-thread-5] DEBUG c.j.s.s.m.T.selectById - [debug,135] - ==> Preparing: SELECT id, name, contact_user_id, contact_name, contact_mobile, status, website, package_id, expire_time, account_count, create_time, update_time, create_user, update_user, is_deleted FROM system_tenant WHERE id = ? AND is_deleted = 0
11:27:38.888 [pool-3-thread-5] DEBUG c.j.s.s.m.T.selectById - [debug,135] - ==> Parameters: 165(Long)
11:27:38.889 [http-nio-48080-exec-10] DEBUG c.j.s.s.m.N.selectCount - [debug,135] - <== Total: 1
11:27:38.891 [pool-3-thread-5] DEBUG c.j.s.s.m.T.selectById - [debug,135] - <== Total: 1
11:27:56.695 [http-nio-48080-exec-5] DEBUG c.j.s.s.m.N.selectCount - [debug,135] - ==> Preparing: SELECT COUNT(*) AS total FROM system_notify_message WHERE is_deleted = 0 AND (read_status = ? AND user_id = ? AND user_type = ?)
11:27:56.695 [http-nio-48080-exec-5] DEBUG c.j.s.s.m.N.selectCount - [debug,135] - ==> Parameters: false(Boolean), 1912706932129239046(Long), 2(Integer)
11:27:56.697 [http-nio-48080-exec-5] DEBUG c.j.s.s.m.N.selectCount - [debug,135] - <== Total: 1
11:28:31.305 [pool-10-thread-1] DEBUG c.j.s.s.m.E.selectList - [debug,135] - ==> Preparing: SELECT id, type, application_name, code, message, memo, create_time, update_time, create_user, update_user, is_deleted FROM system_error_code WHERE is_deleted = 0 AND (application_name = ?)
11:28:31.305 [pool-10-thread-1] DEBUG c.j.s.s.m.E.selectList - [debug,135] - ==> Parameters: jeelowcode-server(String)
11:28:31.307 [pool-10-thread-1] DEBUG c.j.s.s.m.E.selectList - [debug,135] - <== Total: 0
11:29:28.708 [http-nio-48080-exec-9] DEBUG c.j.s.s.m.O.selectList - [debug,135] - ==> Preparing: SELECT id, access_token, refresh_token, user_id, user_type, client_id, scopes, expires_time, user_info, login_dept_id, login_role_id, tenant_id, create_time, update_time, create_user, update_user, is_deleted FROM system_oauth2_access_token WHERE is_deleted = 0 AND (access_token = ?)
11:29:28.709 [http-nio-48080-exec-9] DEBUG c.j.s.s.m.O.selectList - [debug,135] - ==> Parameters: 28b99cf03d57422cb748c121155dff5b(String)
11:29:28.713 [http-nio-48080-exec-9] DEBUG c.j.s.s.m.O.selectList - [debug,135] - <== Total: 1
11:29:28.727 [pool-3-thread-6] DEBUG c.j.s.s.m.T.selectById - [debug,135] - ==> Preparing: SELECT id, name, contact_user_id, contact_name, contact_mobile, status, website, package_id, expire_time, account_count, create_time, update_time, create_user, update_user, is_deleted FROM system_tenant WHERE id = ? AND is_deleted = 0
11:29:28.728 [pool-3-thread-6] DEBUG c.j.s.s.m.T.selectById - [debug,135] - ==> Parameters: 1(Long)
11:29:28.730 [pool-3-thread-6] DEBUG c.j.s.s.m.T.selectById - [debug,135] - <== Total: 1
11:29:28.730 [http-nio-48080-exec-4] DEBUG c.j.s.s.m.O.selectList - [debug,135] - ==> Preparing: SELECT id, refresh_token, user_id, user_type, client_id, scopes, expires_time, login_dept_id, login_role_id, tenant_id, create_time, update_time, create_user, update_user, is_deleted FROM system_oauth2_refresh_token WHERE is_deleted = 0 AND (refresh_token = ?)
11:29:28.731 [http-nio-48080-exec-4] DEBUG c.j.s.s.m.O.selectList - [debug,135] - ==> Parameters: 06dc2fa0d0c04cc6b9abdfd2258810c5(String)
11:29:28.733 [http-nio-48080-exec-4] DEBUG c.j.s.s.m.O.selectList - [debug,135] - <== Total: 1
11:29:28.738 [http-nio-48080-exec-4] DEBUG c.j.s.s.m.O.selectList - [debug,135] - ==> Preparing: SELECT id, access_token, refresh_token, user_id, user_type, client_id, scopes, expires_time, user_info, login_dept_id, login_role_id, tenant_id, create_time, update_time, create_user, update_user, is_deleted FROM system_oauth2_access_token WHERE is_deleted = 0 AND (refresh_token = ?)
11:29:28.738 [http-nio-48080-exec-4] DEBUG c.j.s.s.m.O.selectList - [debug,135] - ==> Parameters: 06dc2fa0d0c04cc6b9abdfd2258810c5(String)
11:29:28.740 [http-nio-48080-exec-4] DEBUG c.j.s.s.m.O.selectList - [debug,135] - <== Total: 1
11:29:28.745 [http-nio-48080-exec-4] DEBUG c.j.s.s.m.O.deleteBatchIds - [debug,135] - ==> Preparing: UPDATE system_oauth2_access_token SET is_deleted = 1 WHERE id IN (?) AND is_deleted = 0
11:29:28.746 [http-nio-48080-exec-4] DEBUG c.j.s.s.m.O.deleteBatchIds - [debug,135] - ==> Parameters: 22040(Long)
11:29:28.760 [http-nio-48080-exec-4] DEBUG c.j.s.s.m.O.deleteBatchIds - [debug,135] - <== Updates: 1
11:29:28.763 [http-nio-48080-exec-4] DEBUG c.j.s.s.m.A.selectById - [debug,135] - ==> Preparing: SELECT id, username, password, nickname, remark, dept_id, email, mobile, sex, avatar, status, login_ip, login_date, login_dept_id, login_role_id, tenant_id, create_time, update_time, create_user, update_user, is_deleted FROM system_users WHERE id = ? AND is_deleted = 0
11:29:28.763 [http-nio-48080-exec-4] DEBUG c.j.s.s.m.A.selectById - [debug,135] - ==> Parameters: 1(Long)
11:29:28.766 [http-nio-48080-exec-4] DEBUG c.j.s.s.m.A.selectById - [debug,135] - <== Total: 1
11:29:28.767 [http-nio-48080-exec-4] DEBUG c.j.s.s.m.O.insert - [debug,135] - ==> Preparing: INSERT INTO system_oauth2_access_token (access_token, refresh_token, user_id, user_type, client_id, expires_time, user_info, login_dept_id, tenant_id, create_time, update_time, create_user, update_user) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
11:29:28.768 [http-nio-48080-exec-4] DEBUG c.j.s.s.m.O.insert - [debug,135] - ==> Parameters: bf16896216494076af0b860870583ce7(String), 06dc2fa0d0c04cc6b9abdfd2258810c5(String), 1(Long), 2(Integer), default(String), 2025-09-29T11:59:28.766(LocalDateTime), {"nickname":"超级管理员","deptId":""}(String), 100(Long), 1(Long), 2025-09-29T11:29:28.766(LocalDateTime), 2025-09-29T11:29:28.766(LocalDateTime), null, null
11:29:28.781 [http-nio-48080-exec-4] DEBUG c.j.s.s.m.O.insert - [debug,135] - <== Updates: 1
11:29:28.793 [http-nio-48080-exec-6] DEBUG c.j.s.s.m.N.selectCount - [debug,135] - ==> Preparing: SELECT COUNT(*) AS total FROM system_notify_message WHERE is_deleted = 0 AND (read_status = ? AND user_id = ? AND user_type = ?)
11:29:28.793 [http-nio-48080-exec-6] DEBUG c.j.s.s.m.N.selectCount - [debug,135] - ==> Parameters: false(Boolean), 1(Long), 2(Integer)
11:29:28.795 [http-nio-48080-exec-6] DEBUG c.j.s.s.m.N.selectCount - [debug,135] - <== Total: 1
11:29:31.308 [pool-10-thread-1] DEBUG c.j.s.s.m.E.selectList - [debug,135] - ==> Preparing: SELECT id, type, application_name, code, message, memo, create_time, update_time, create_user, update_user, is_deleted FROM system_error_code WHERE is_deleted = 0 AND (application_name = ?)
11:29:31.309 [pool-10-thread-1] DEBUG c.j.s.s.m.E.selectList - [debug,135] - ==> Parameters: jeelowcode-server(String)
11:29:31.312 [pool-10-thread-1] DEBUG c.j.s.s.m.E.selectList - [debug,135] - <== Total: 0
11:29:38.883 [pool-3-thread-6] DEBUG c.j.s.s.m.T.selectById - [debug,135] - ==> Preparing: SELECT id, name, contact_user_id, contact_name, contact_mobile, status, website, package_id, expire_time, account_count, create_time, update_time, create_user, update_user, is_deleted FROM system_tenant WHERE id = ? AND is_deleted = 0
11:29:38.883 [pool-3-thread-6] DEBUG c.j.s.s.m.T.selectById - [debug,135] - ==> Parameters: 165(Long)
11:29:38.883 [http-nio-48080-exec-2] DEBUG c.j.s.s.m.N.selectCount - [debug,135] - ==> Preparing: SELECT COUNT(*) AS total FROM system_notify_message WHERE is_deleted = 0 AND (read_status = ? AND user_id = ? AND user_type = ?)
11:29:38.883 [http-nio-48080-exec-2] DEBUG c.j.s.s.m.N.selectCount - [debug,135] - ==> Parameters: false(Boolean), 1912706932129239047(Long), 2(Integer)
11:29:38.886 [pool-3-thread-6] DEBUG c.j.s.s.m.T.selectById - [debug,135] - <== Total: 1
11:29:38.886 [http-nio-48080-exec-2] DEBUG c.j.s.s.m.N.selectCount - [debug,135] - <== Total: 1
11:29:56.705 [http-nio-48080-exec-4] DEBUG c.j.s.s.m.N.selectCount - [debug,135] - ==> Preparing: SELECT COUNT(*) AS total FROM system_notify_message WHERE is_deleted = 0 AND (read_status = ? AND user_id = ? AND user_type = ?)
11:29:56.705 [http-nio-48080-exec-4] DEBUG c.j.s.s.m.N.selectCount - [debug,135] - ==> Parameters: false(Boolean), 1912706932129239046(Long), 2(Integer)
11:29:56.707 [http-nio-48080-exec-4] DEBUG c.j.s.s.m.N.selectCount - [debug,135] - <== Total: 1
11:30:00.043 [schedulerName_Worker-2] DEBUG c.j.s.i.m.J.insert - [debug,135] - ==> Preparing: INSERT INTO infra_job_log (job_id, handler_name, handler_param, execute_index, begin_time, status, create_time, update_time, create_user, update_user) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
11:30:00.044 [schedulerName_Worker-2] DEBUG c.j.s.i.m.J.insert - [debug,135] - ==> Parameters: 32(Long), saveModelUsageRecordsJob(String), (String), 1(Integer), 2025-09-29T11:30:00.042(LocalDateTime), 0(Integer), 2025-09-29T11:30:00.043(LocalDateTime), 2025-09-29T11:30:00.043(LocalDateTime), null, null
11:30:00.048 [schedulerName_Worker-2] DEBUG c.j.s.i.m.J.insert - [debug,135] - <== Updates: 1
11:30:00.049 [schedulerName_Worker-2] INFO c.j.c.f.c.j.SaveModelUsageRecordsJob - [execute,24] - *********** 开始保存模块使用记录 ************
11:30:00.053 [schedulerName_Worker-2] INFO c.j.c.f.c.j.SaveModelUsageRecordsJob - [execute,27] - *********** 保存模块使用记录完成,共保存了0条 ************
11:30:00.053 [task-4] DEBUG c.j.s.i.m.J.updateById - [debug,135] - ==> Preparing: UPDATE infra_job_log SET end_time = ?, duration = ?, status = ?, result = ?, update_time = ?, update_user = ? WHERE id = ? AND is_deleted = 0
11:30:00.053 [task-4] DEBUG c.j.s.i.m.J.updateById - [debug,135] - ==> Parameters: 2025-09-29T11:30:00.053(LocalDateTime), 11(Integer), 1(Integer), *********** 保存模块使用记录完成,共保存了0条 ************(String), 2025-09-29T11:30:00.053(LocalDateTime), null, 6853(Long)
11:30:00.061 [task-4] DEBUG c.j.s.i.m.J.updateById - [debug,135] - <== Updates: 1
11:30:31.313 [pool-10-thread-1] DEBUG c.j.s.s.m.E.selectList - [debug,135] - ==> Preparing: SELECT id, type, application_name, code, message, memo, create_time, update_time, create_user, update_user, is_deleted FROM system_error_code WHERE is_deleted = 0 AND (application_name = ?)
11:30:31.313 [pool-10-thread-1] DEBUG c.j.s.s.m.E.selectList - [debug,135] - ==> Parameters: jeelowcode-server(String)
11:30:31.316 [pool-10-thread-1] DEBUG c.j.s.s.m.E.selectList - [debug,135] - <== Total: 0



按了你的顺序试不出来,根据日志,可以调试一下
