[seata]Seata1.6.1版本,配置nacos,存储db。无法登陆后台管理系统,application.yml配置了用户名密码无效,打开后台登陆一直是401

2024-05-09 276 views
6
Ⅰ.问题描述

Seata1.6.1版本,配置nacos,存储db。无法登陆后台管理系统,application.yml配置了用户名密码无效,打开后台登陆一直是401

二.描述发生了什么

nacos版本:2.1.1 mysql版本:8.0.27

本人使用docker-compose配置仅设置了监听ip和端口的环境变量

application.yml配置了用户名和密码如下:

console:
  user:
    username: seata
    password: abc1234 //用seata一样无法登陆

这里用什么密码均无效登陆返回401,结果如下:

  {
    "timestamp": "2023-06-29T19:28:44.236+00:00",
    "status": 401,
    "error": "Unauthorized",
    "path": "/api/v1/auth/login"
}
Just paste your stack trace here!
三.描述你预计会发生什么 IV.如何重现它(尽可能最少且精确) Ⅴ。还有什么我们需要知道的吗?

希望能够自定义账户密码,并且能够正常登陆。无论用什么方式。

Ⅵ.环境:
      - TZ=Asia/Shanghai
      - SEATA_PORT=8091
      - SEATA_IP=62.234.129.146

回答

5

补充:naco服务里面可以正常看到seata-server,并且docker运行日志也没有报错。

6

Seata-server 上有错误日志吗?

1

Seata-server 上有错误日志吗?

17:20:06.453 错误 --- [ http-nio-7091-exec-5] iscsJwtAuthenticationEntryPoint :响应未经授权的错误。消息 - 需要完全身份验证才能访问此资源

容器日志仅显示此消息

0

Seata 控制台示例:http://demo.seata.io

Seata 控制台示例:http://demo.seata.io

我认为某个地方可能有问题,但我不知道问题出在哪里。因为除了无法登录之外其他都正常,所以过来询问一下。我之前什么都没设置的情况下就可以登录到这个后台了。这是默认的 docker 启动,但我需要更改它。用户名密码和nacos配置以及db作为存储。

6

如果我们在浏览器中调试网络,我们可以看到哪些资源正在报告状态 401?确保这些资源包含在 yml 配置文件 security.ignore.urls 中。

图像

6

图像

server:
  port: 7091

spring:
  application:
    name: seata-server

logging:
  config: classpath:logback-spring.xml
  file:
    path: ${user.home}/logs/seata
#  extend:
#    logstash-appender:
#      destination: 127.0.0.1:4560
#    kafka-appender:
#      bootstrap-servers: 127.0.0.1:9092
#      topic: logback_to_logstash

console:
  user:
    username: seata
    password: seata

seata:
  config:
    # support: nacos, consul, apollo, zk, etcd3
    type: nacos

    nacos:
      server-addr: xxx #nacos地址(手动发评论修改的)
      namespace: xxx #命名空间
      group: DEFAULT_GROUP #分组(手动发评论修改的)
      data-id: seataServer.properties
  registry:
    # support: nacos, eureka, redis, zk, consul, etcd3, sofa
    type: nacos
    nacos:
      application: seata-server
      server-addr: xxx #nacos地址(手动发评论修改的)
      group: DEFAULT_GROUP #分组
      namespace:  xxx#命名空间(手动发评论修改的)
      # tc集群名称
      cluster: default
  # store:
  #   # support: file 、 db 、 redis
  #   mode: file
  #  server:
  #    service-port: 8091 #If not configured, the default is '${server.port} + 1000'
  security:
    secretKey: demokey(手动发评论修改的)
    tokenValidityInMilliseconds: 1800000
    ignore:
      urls: /,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.jpeg,/**/*.ico,/api/v1/auth/loginroot
7

如果我们在浏览器中调试网络,我们可以看到哪些资源正在报告状态 401?确保这些资源包含在 yml 配置文件 security.ignore.urls 中。

图像

我上传我的yml

2

图像 自行确认自己的账号密码是否跟lyml配置一致且正确

0

图像自行确认自己的账号密码是否跟lyml配置一致且正确

我确定是一致的,而且是正确的。之前已经发过 yml 配置,我现在改过那个位置了,但是确实登陆不上一直 401 很纳闷所以提交的这个问题寻求帮助

2

你设置回seata Seata这样能登录吗,我怀疑你配置文件根本没有挂载对,没有生效

5

你可能因为 -v 挂载了目录,而容器里面的资源是空的

2

@TripsCoder Seata.security.ignore.urls 后面多了一个root文本,导致登录路径忽略不生效