记录一次fegin调用错误

在使用SpringSecurity权限控制的同时使用fegin调用其他服务,产生401权限错误。

后台打印错误: 

org.springframework.security.authentication.InternalAuthenticationServiceException: com.netflix.client.ClientException: Load balancer does not have available server for client: xxx 

前端请求返回:

{

    "timestamp": "2020-05-10T03:20:04.813+0000",

    "status": 401,

    "error": "Unauthorized",

    "message": "com.netflix.client.ClientException: Load balancer does not have available server for client: im-logic-user",

    "path": "/auth/login"

}

 

我的SpringBoot版本为2.2.6.RELEASE,解决方法是在配置文件中加入如下配置: 

fegin:
  okhttp:
    enabled: true

上面配置的意思是采用feign.okhttp.OkHttpClient的通信方式,默认为HttpURLConnection

问题原因是SpringSecurity拦截了fegin调用请求,也可以将fegin调用的路径配置成资源路径,即不需要权限验证,还有就是干掉SpringSecurity也是完全可以的。

 

你可能感兴趣的:(奇葩错误)