短信资源不通过登录授权,直接配置放行后,发送短信提示“未获取到对应的短信配置”

Blade 未结 1 1157
926380193
926380193 剑宗 2022-03-22 18:12

一、该问题的重现步骤是什么?

  1. 通过yml配置放行资源不做授权验证,配置yml放行如下:

  secure:

  skip-url:

   - /sms/endpoint/**

   在管理后台-短信配置也设置为启用状态

2. 请求短信接口/blade-resource/sms/endpoint/send-validate

  提示如下错误信息:

{

  "code": 400,

  "success": false,

  "data": {},

  "msg": "未获取到对应的短信配置"

}

3.如果开启登录授权验证是可以成功发送短信的,确认短信配置是正确的参数,在短信配置测试也是能成功发送短信的。


二、你期待的结果是什么?实际看到的又是什么?

放行短信资源url,可以支持正常发送短信

三、你正在使用的是什么产品,什么版本?在什么操作系统上?

2.9.0.Release商业授权的框架

四、请提供详细的错误堆栈信息,这很重要。

2022-03-22 17:45:21.964  INFO 2080 --- [  XNIO-1 task-1] o.s.core.log.aspect.RequestLogAspect     : 


===============  Response Start  ================

<=== POST: /sms/endpoint/send-validate (97387 ms)

===============   Response End   ================


2022-03-22 17:45:22.022 ERROR 2080 --- [ent-executor-45] c.a.n.c.remote.client.grpc.GrpcClient    : [1647942206510_119.123.50.35_62553]Request stream onCompleted, switch server

2022-03-22 17:45:22.076 ERROR 2080 --- [  XNIO-1 task-1] o.s.c.l.e.BladeRestExceptionTranslator   : 业务异常


org.springblade.core.log.exception.ServiceException: 未获取到对应的短信配置


2022-03-22 17:45:22.157 ERROR 2080 --- [s.client.Worker] com.alibaba.nacos.common.remote.client   : Send request fail, request=ConfigBatchListenRequest{headers={charset=UTF-8, Client-AppName=unknown, Client-RequestToken=ccbd1a8f62591a3212c816b06193cdb6, Client-RequestTS=1647942321989, exConfigInfo=true, Timestamp=1647942322022}, requestId='null'}, retryTimes=0,errorMessage=Client not connected,current status:UNHEALTHY

2022-03-22 17:45:22.258 ERROR 2080 --- [s.client.Worker] com.alibaba.nacos.common.remote.client   : Send request fail, request=ConfigBatchListenRequest{headers={charset=UTF-8, Client-AppName=unknown, Client-RequestToken=ccbd1a8f62591a3212c816b06193cdb6, Client-RequestTS=1647942321989, exConfigInfo=true, Timestamp=1647942322022}, requestId='null'}, retryTimes=1,errorMessage=Client not connected,current status:UNHEALTHY

2022-03-22 17:45:22.342 ERROR 2080 --- [aming.updater.1] com.alibaba.nacos.common.remote.client   : Send request fail, request=ServiceQueryRequest{headers={}, requestId='null'}, retryTimes=0,errorMessage=Connection is unregistered.

2022-03-22 17:45:22.362 ERROR 2080 --- [s.client.Worker] com.alibaba.nacos.common.remote.client   : Send request fail, request=ConfigBatchListenRequest{headers={charset=UTF-8, Client-AppName=unknown, Client-RequestToken=ccbd1a8f62591a3212c816b06193cdb6, Client-RequestTS=1647942321989, exConfigInfo=true, Timestamp=1647942322022}, requestId='null'}, retryTimes=2,errorMessage=Client not connected,current status:UNHEALTHY

2022-03-22 17:45:22.373 ERROR 2080 --- [s.client.Worker] c.a.n.client.config.impl.ClientWorker    : Async listen config change error 


com.alibaba.nacos.api.exception.NacosException: Client not connected,current status:UNHEALTHY

at com.alibaba.nacos.common.remote.client.RpcClient.request(RpcClient.java:655)

at com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient.requestProxy(ClientWorker.java:1067)

at com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient.requestProxy(ClientWorker.java:1042)

at com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient.executeConfigListen(ClientWorker.java:831)

at com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$4.run(ClientWorker.java:748)

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)

at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266)

at java.util.concurrent.FutureTask.run(FutureTask.java)

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

at java.lang.Thread.run(Thread.java:748)


Disconnected from the target VM, address: '127.0.0.1:55561', transport: 'socket'

2022-03-22 17:49:06.677  INFO 2080 --- [extShutdownHook] io.undertow                              : stopping server: Undertow - 2.1.7.Final

2022-03-22 17:49:06.909  INFO 2080 --- [extShutdownHook] io.undertow.servlet                      : Destroying Spring FrameworkServlet 'dispatcherServlet'

2022-03-22 17:49:06.961  INFO 2080 --- [extShutdownHook] o.s.s.c.ThreadPoolTaskScheduler          : Shutting down ExecutorService 'Nacos-Watch-Task-Scheduler'

2022-03-22 17:49:06.979 ERROR 2080 --- [extShutdownHook] c.a.cloud.nacos.discovery.NacosWatch     : namingService unsubscribe failed, properties:NacosDiscoveryProperties{serverAddr='120.76.138.159:8048', endpoint='', namespace='', watchDelay=30000, logName='', service='blade-resource', weight=1.0, clusterName='DEFAULT', group='DEFAULT_GROUP', namingLoadCacheAtStart='false', metadata={preserved.register.source=SPRING_CLOUD}, registerEnabled=true, ip='192.168.0.112', networkInterface='', port=8010, secure=false, accessKey='', secretKey='', heartBeatInterval=null, heartBeatTimeout=null, ipDeleteTimeout=null, failFast=true}


1条回答
  • 2022-03-25 14:39

    系统是会根据租户id去查询的,你放行后没有token就没有租户,那自然就查不到。

    image.png

    如果需要放行也能调用,可以直接用SmsTemplate来创建接口调用,但你需要保证接口的安全性,否则分分钟短信包就欠费了。


    0 讨论(0)
提交回复