使用jhipster生成的微服务,采用其默认的JWT认证方式。代码中获取用户是通过SecurityUtils.getCurrentUserLogin().orElse("admin");方式获取用户信息。

在测试系统中,测试完全没有问题。但是发布到正式环境后系统调用gateway中认证通过,但是调用其它的微服务认识失败,报错Invalid JWT signature。

开始以为是nginx代理的问题,但是添加上cookie、autothention后还是不行,最后网上搜索发现可能是prod配置文件的设置问题。经过prod和dev两个配置文件比较,发现如下不同: 

测试配置文件如下:

JWT token加密

正式配置文件如下:

JWT token加密

secret不一样。而且gateway和其它服务器的secret一串数字也不一样。这个secret是用来生成jwttoken的,gateway中按照自己的加密方式生成token,拿到其它服务中肯定不认识,因为他们的加密不一样。所以将prod中的secret修改成测试文件中的字符串,所有服务器保持一致,问题搞定。

 

相关文章:

  • 2018-11-27
  • 2022-01-11
  • 2022-12-23
  • 2022-02-14
  • 2022-12-23
  • 2021-12-31
  • 2022-01-23
猜你喜欢
  • 2021-11-29
  • 2022-01-19
  • 2021-07-22
  • 2022-12-23
  • 2021-11-17
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案