alibaba / nacos

an easy-to-use dynamic service discovery, configuration and service management platform for building cloud native applications.
https://nacos.io
Apache License 2.0
30.29k stars 12.84k forks source link

[SecurityProxy] login http request failed url #5359

Closed blueiky closed 3 years ago

blueiky commented 3 years ago

use environment: nacos server: 2.0.0 nacos client: 1.4.1 spring cloud 2020.0.2 spring cloud alibaba 2020.0.RC1

This problem occurs when using nacos config

error log: [SecurityProxy] login http request failed url: http://192.168.80.140:8848/nacos/v1/auth/users/login, params: {username=naocs}, bodyMap: {password=nacos}, errorMsg: errCode: 100, errMsg: Nacos serialize for class [com.alibaba.nacos.common.http.HttpRestResult] failed.

blueiky commented 3 years ago

supplementary description:

bootstrap.yml config: server-addr: ${spring.cloud.nacos.config.server-addr} username: ${spring.cloud.nacos.config.username} password: ${spring.cloud.nacos.config.password} file-extension: yaml prefix: ${spring.application.name} profiles: dev

application.yml discovery: server-addr: ${spring.cloud.nacos.config.server-addr} username: ${spring.cloud.nacos.config.username} password: ${spring.cloud.nacos.config.password}

same configuration, I can not reproduce the problem at home

configuration of the computer used at home os:macOS Big Sur 11.2.3 nacos server: 2.0.0-bugfix nacos client: 1.4.1

only difference home used localhost company used Virtual Machine Virtual Machine OS Centos7.3

haoyann commented 3 years ago

Let me try.

luoxiner commented 3 years ago

Did it occur randomly ?

blueiky commented 3 years ago

I do not know,but I have tried the same computer, the same set of configuration, one has this problem, the other project does not appear

haoyann commented 3 years ago
  1. 使用一个错误的账号、密码,登陆返回403; image
  2. 登陆失败打印异常日志,SECURITY_LOGGER.error("login failed: {}", JacksonUtils.toJson(restResult));
  3. httphead 里有不合法数据,导致json序列化错误; image image
  4. 我使用develop分支和2.0分支打一个client包,没有复现这个问题; image image
KomachiSion commented 3 years ago
  1. 使用一个错误的账号、密码,登陆返回403; image
  2. 登陆失败打印异常日志,SECURITY_LOGGER.error("login failed: {}", JacksonUtils.toJson(restResult));
  3. httphead 里有不合法数据,导致json序列化错误; image image
  4. 我使用develop分支和2.0分支打一个client包,没有复现这个问题; image image

我记得那个null key的问题已经解决掉了, 在之前的那个PR里

https://github.com/alibaba/nacos/issues/3695

haoyann commented 3 years ago

3695 是在head里面处理的,这里的null key出现在originalResponseHeader,我看 #4870,已经处理了这个问题。

blueiky commented 3 years ago

这个问题我在重新创建一个项目的时候就会消失,又遇到过一次,重新创建项目就没有了,配置信息都是基本一致的

用户名与密码均正确

  1. 这是项目首次运行的时候 微信截图_20210422165901

  2. 这是项目后续 nacos 自动请求的情况 微信截图_20210422165936

这个demo项目晚上我会使用另外一台电脑来测试一下

Maijh97 commented 3 years ago

这个问题我在重新创建一个项目的时候就会消失,又遇到过一次,重新创建项目就没有了,配置信息都是基本一致的

用户名与密码均正确

  1. 这是项目首次运行的时候 微信截图_20210422165901
  2. 这是项目后续 nacos 自动请求的情况 微信截图_20210422165936

这个demo项目晚上我会使用另外一台电脑来测试一下

image

这里看到header 是为LinkedHashMap, 目前最新的代码应该为TreeMap, 如@haoyann 说的,已在 #4870 处理 originalResponseHeader key is null 的问题,你可以拉取develop分支最新代码自行打包尝试一下

blueiky commented 3 years ago

搞定了,这个问题是因为SpringCloud Alibaba依赖自带的 Nacos Client客户端版本低导致的,需要将SpringCloudAlibaba自带的client忽略,然后自行导入client 2.0.0,就不会出现序列化错误

会存在一个unknown user的问题,也就是会进入 image

这个问题不会影响正常使用,进行通过配置日志等级即可进行忽略。

373616885 commented 3 years ago

@xiaomo-23 这个unknown user的问题什么情况,谁能解释一下