一、该问题的重现步骤是什么?
按照BladeX-Doc的内容,在idea下载编译了bladex(cloud版本),配置好了nacos,创建了数据库,然后了相关服务启动。nacos中注册成功
2. 下载了saber3前端代码,设置了 website.js
/**
* 全局配置文件
*/
export default {
title: 'Saber',
logo: 'X',
key: 'saber', //配置主键,目前用于存储
indexTitle: 'BladeX 微服务平台',
clientId: 'saber3', // 客户端id
clientSecret: 'saber3_secret', // 客户端密钥
tenantMode: true, // 是否开启租户模式
tenantId: '000000', // 管理组租户编号
captchaMode: true, // 是否开启验证码模式
switchMode: false, // 是否开启登录切换角色部门
lockPage: '/lock',
tokenTime: 3000,
tokenHeader: 'Blade-Auth',
//HTTP状态码白名单
statusWhiteList: [],
//配置首页不可关闭
setting: {
sidebar: 'vertical',
tag: true,
debug: true,
collapse: true,
search: true,
color: true,
lock: true,
screenshot: true,
fullscreen: true,
theme: true,
menu: true,
},
//首页配置
fistPage: {
name: '首页',
path: '/wel/index',
},
//配置菜单的属性
menu: {
iconDefault: 'icon-caidan',
label: 'name',
path: 'path',
icon: 'source',
children: 'children',
query: 'query',
href: 'path',
meta: 'meta',
},
//水印配置
watermark: {
mode: false,
text: 'BladeX',
},
//oauth2配置
oauth2: {
// 是否开启注册功能
registerMode: true,
// 使用后端工程 @org.springblade.test.Sm2KeyGenerator 获取
// bladex-boot
// publicKey: '047729a75f47b154e88fda*****402c2262683e',
// bladex
publicKey: '046b1566ca926d543158******0ed805559451c',
// 第三方系统授权地址
// authUrl: 'http://localhost/blade-auth/oauth/render',
// 单点登录系统认证
ssoMode: false, // 是否开启单点登录功能
ssoBaseUrl: 'http://localhost:8100', // 单点登录系统地址(cloud端口为8100,boot端口为80)
ssoAuthUrl: '/oauth/authorize?client_id=saber3&response_type=code&redirect_uri=', // 单点登录授权地址
ssoLogoutUrl: '/oauth/authorize/logout?redirect_uri=', // 单点登录退出地址
redirectUri: 'http://localhost:2888/login', // 单点登录回调地址(Saber服务的登录界面地址)
},
//设计器配置
design: {
// 流程设计器类型(true->nutflow,false->flowable)
designMode: true,
// 流程设计器地址(flowable模式)
designUrl: 'http://localhost:9999',
// 报表设计器地址(cloud端口为8108,boot端口为80)
reportUrl: 'http://localhost/ureport',
// 规则设计引擎地址
edgeUrl: 'http://localhost:1880',
},
};
3. 启动前端,打开页面,输入验证码,点击登录。
二、你期待的结果是什么?实际看到的又是什么?
正常登录进入系统。
实际看到的又是什么?
1)前端页面提示用户不存在
{"success":false,"error_code":2001,"error_description":"用户不存在"}
2)后端AuthApplication服务报错
2025-04-12 21:21:59.126 WARN 40120 --- [ XNIO-1 task-2] .c.RetryAwareServiceInstanceListSupplier : No instances found after removing previously used service instance from the search (com.alibaba.cloud.nacos.NacosServiceInstance@ba63ab88). Returning all found instances.
2025-04-12 21:21:59.127 ERROR 40120 --- [ XNIO-1 task-2] o.s.core.cloud.feign.BladeFeignFallback : BladeFeignFallback:[org.springblade.system.feign.IUserClient.userInfo] serviceId:[blade-system] message:[Connection refused executing GET http://blade-system/feign/client/user/info/info-by-tenant-id-account-type?tenantId=000000&account=admin&userType=web]
2025-04-12 21:21:59.127 WARN 40120 --- [ XNIO-1 task-2] o.s.core.oauth2.utils.OAuth2LogUtil : ----------OAuth2认证异常,具体信息如下----------
2025-04-12 21:21:59.128 WARN 40120 --- [ XNIO-1 task-2] o.s.core.oauth2.utils.OAuth2LogUtil : OAuth2Request: OAuth2Request(clientArgs={client_id=saber3, client_secret=saber3_secret}, parameterArgs={username=admin, password=dffbae3c52d575099ab14b7eca28ea27420444f6871b7e729a5e132ec2b6e776cb9f493509ba51c2c01e5d57cd7c7fcc00142414191f6a274acffd653ae8876725a36be1e1292913529a98a90ab018a8ddfddcbbdd1c1fd06316de0749bdde511689b5de72, grant_type=captcha, scope=all}, headerArgs={Authorization=Basic c2FiZXIzOnNhYmVyM19zZWNyZXQ=, Tenant-Id=000000, Role-Id=, Dept-Id=, Captcha-Key=c1e4dd32-72fd-4147-9b7f-df0907d2d96c, Captcha-Code=fsbfh})
2025-04-12 21:21:59.128 WARN 40120 --- [ XNIO-1 task-2] o.s.core.oauth2.utils.OAuth2LogUtil : OAuth2Exception:
org.springblade.core.oauth2.exception.UsernameNotFoundException: 用户不存在
Caused by: java.lang.Throwable: null
at org.springblade.core.oauth2.utils.OAuth2ExceptionUtil.lambda$static$1(OAuth2ExceptionUtil.java:48) ~[blade-core-oauth2-4.5.0.RELEASE.jar:4.5.0.RELEASE]
at org.springblade.core.oauth2.utils.OAuth2ExceptionUtil.throwFromCode(OAuth2ExceptionUtil.java:108) ~[blade-core-oauth2-4.5.0.RELEASE.jar:4.5.0.RELEASE]
at org.springblade.core.oauth2.granter.AbstractTokenGranter.user(AbstractTokenGranter.java:100) ~[blade-core-oauth2-4.5.0.RELEASE.jar:4.5.0.RELEASE]
at org.springblade.core.oauth2.granter.PasswordTokenGranter.user(PasswordTokenGranter.java:56) ~[blade-core-oauth2-4.5.0.RELEASE.jar:4.5.0.RELEASE]
at org.springblade.auth.granter.CaptchaTokenGranter.user(CaptchaTokenGranter.java:71) ~[classes/:na]
at org.springblade.core.oauth2.endpoint.OAuth2TokenEndPoint.token(OAuth2TokenEndPoint.java:117) ~[blade-core-oauth2-4.5.0.RELEASE.jar:4.5.0.RELEASE]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[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:568) ~[na:na]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:255) ~[spring-web-6.1.15.jar:6.1.15]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:188) ~[spring-web-6.1.15.jar:6.1.15]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.1.15.jar:6.1.15]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:926) ~[spring-webmvc-6.1.15.jar:6.1.15]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:831) ~[spring-webmvc-6.1.15.jar:6.1.15]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.1.15.jar:6.1.15]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.1.15.jar:6.1.15]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.1.15.jar:6.1.15]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.1.15.jar:6.1.15]
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914) ~[spring-webmvc-6.1.15.jar:6.1.15]
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:547) ~[jakarta.servlet-api-6.0.0.jar:6.0.0]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.1.15.jar:6.1.15]
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614) ~[jakarta.servlet-api-6.0.0.jar:6.0.0]
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74) ~[undertow-servlet-2.3.17.Final.jar:2.3.17.Final]
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129) ~[undertow-servlet-2.3.17.Final.jar:2.3.17.Final]
at org.springblade.core.log.filter.LogTraceFilter.doFilter(LogTraceFilter.java:48) ~[blade-starter-log-4.5.0.RELEASE.jar:4.5.0.RELEASE]
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67) ~[undertow-servlet-2.3.17.Final.jar:2.3.17.Final]
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-2.3.17.Final.jar:2.3.17.Final]
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.1.15.jar:6.1.15]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.15.jar:6.1.15]
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67) ~[undertow-servlet-2.3.17.Final.jar:2.3.17.Final]
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-2.3.17.Final.jar:2.3.17.Final]
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.1.15.jar:6.1.15]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.15.jar:6.1.15]
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67) ~[undertow-servlet-2.3.17.Final.jar:2.3.17.Final]
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-2.3.17.Final.jar:2.3.17.Final]
at org.springframework.session.web.http.SessionRepositoryFilter.doFilterInternal(SessionRepositoryFilter.java:142) ~[spring-session-core-3.2.6.jar:3.2.6]
at org.springframework.session.web.http.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:82) ~[spring-session-core-3.2.6.jar:3.2.6]
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362) ~[spring-web-6.1.15.jar:6.1.15]
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278) ~[spring-web-6.1.15.jar:6.1.15]
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67) ~[undertow-servlet-2.3.17.Final.jar:2.3.17.Final]
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-2.3.17.Final.jar:2.3.17.Final]
at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:113) ~[spring-web-6.1.15.jar:6.1.15]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.15.jar:6.1.15]
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67) ~[undertow-servlet-2.3.17.Final.jar:2.3.17.Final]
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-2.3.17.Final.jar:2.3.17.Final]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.1.15.jar:6.1.15]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.15.jar:6.1.15]
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67) ~[undertow-servlet-2.3.17.Final.jar:2.3.17.Final]
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-2.3.17.Final.jar:2.3.17.Final]
at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84) ~[undertow-servlet-2.3.17.Final.jar:2.3.17.Final]
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) ~[undertow-servlet-2.3.17.Final.jar:2.3.17.Final]
at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68) ~[undertow-servlet-2.3.17.Final.jar:2.3.17.Final]
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) ~[undertow-servlet-2.3.17.Final.jar:2.3.17.Final]
at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68) ~[undertow-servlet-2.3.17.Final.jar:2.3.17.Final]
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117) ~[undertow-servlet-2.3.17.Final.jar:2.3.17.Final]
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) ~[undertow-servlet-2.3.17.Final.jar:2.3.17.Final]
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) ~[undertow-core-2.3.17.Final.jar:2.3.17.Final]
at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46) ~[undertow-core-2.3.17.Final.jar:2.3.17.Final]
at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64) ~[undertow-servlet-2.3.17.Final.jar:2.3.17.Final]
at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60) ~[undertow-core-2.3.17.Final.jar:2.3.17.Final]
at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77) ~[undertow-servlet-2.3.17.Final.jar:2.3.17.Final]
at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43) ~[undertow-core-2.3.17.Final.jar:2.3.17.Final]
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) ~[undertow-core-2.3.17.Final.jar:2.3.17.Final]
at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52) ~[undertow-servlet-2.3.17.Final.jar:2.3.17.Final]
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) ~[undertow-core-2.3.17.Final.jar:2.3.17.Final]
at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:276) ~[undertow-servlet-2.3.17.Final.jar:2.3.17.Final]
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135) ~[undertow-servlet-2.3.17.Final.jar:2.3.17.Final]
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:132) ~[undertow-servlet-2.3.17.Final.jar:2.3.17.Final]
at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48) ~[undertow-servlet-2.3.17.Final.jar:2.3.17.Final]
at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43) ~[undertow-servlet-2.3.17.Final.jar:2.3.17.Final]
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:256) ~[undertow-servlet-2.3.17.Final.jar:2.3.17.Final]
at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:101) ~[undertow-servlet-2.3.17.Final.jar:2.3.17.Final]
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:395) ~[undertow-core-2.3.17.Final.jar:2.3.17.Final]
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:859) ~[undertow-core-2.3.17.Final.jar:2.3.17.Final]
at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18) ~[jboss-threads-3.5.0.Final.jar:3.5.0.Final]
at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513) ~[jboss-threads-3.5.0.Final.jar:3.5.0.Final]
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538) ~[jboss-threads-3.5.0.Final.jar:3.5.0.Final]
at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282) ~[xnio-api-3.8.16.Final.jar:3.8.16.Final]
at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na]
2025-04-12 21:21:59.129 WARN 40120 --- [ XNIO-1 task-2] o.s.core.oauth2.utils.OAuth2LogUtil : --------------------------------------------
2025-04-12 21:21:59.133 ERROR 40120 --- [ XNIO-1 task-2] o.s.a.handler.BladeAuthorizationHandler : 用户:admin,认证失败,失败原因:用户不存在
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
最新的saber3和bladex,macos15.3
四、请提供详细的错误堆栈信息,这很重要。
五、若有更多详细信息,请在下面提供。
后端使用bladex-boot版本,可以正常登录。