被调用模块未开启鉴权,fegin调用报401 解决方法
时间: 2024-04-28 10:27:08 浏览: 14
如果被调用模块未开启鉴权,那么在进行 feign 调用时会出现 401 错误,因为 feign 默认会将当前服务的认证信息传递到被调用服务中。解决这个问题有以下几种方法:
1. 在被调用的服务中开启鉴权机制,即在被调用服务中配置认证信息,这样 feign 调用时就可以正常传递认证信息了。
2. 在 feign 的配置类中关闭认证信息的传递,即设置 `feign.hystrix.enabled=false`,这样 feign 就不会传递当前服务的认证信息到被调用服务中,但是这种方式会降低系统的安全性。
3. 在 feign 的配置类中设置自定义的认证信息传递方式,例如使用 `RequestInterceptor` 接口,在 `apply` 方法中设置自定义的认证信息传递方式,例如将认证信息存储在一个公共的头部中,然后在 feign 调用时将头部信息传递到被调用服务中。这种方式相对较为安全,也可以解决上述问题。
总之,需要根据具体情况采取不同的解决方法,以确保系统的安全性和稳定性。
相关问题
被调用模块未开启鉴权,fegin调用报401
如果被调用模块未开启鉴权,那么在进行 feign 调用时会出现 401 错误,因为 feign 默认会将当前服务的认证信息传递到被调用服务中。解决这个问题有以下几种方法:
1. 在被调用的服务中开启鉴权机制,即在被调用服务中配置认证信息,这样 feign 调用时就可以正常传递认证信息了。
2. 在 feign 的配置类中关闭认证信息的传递,即设置 `feign.hystrix.enabled=false`,这样 feign 就不会传递当前服务的认证信息到被调用服务中,但是这种方式会降低系统的安全性。
3. 在 feign 的配置类中设置自定义的认证信息传递方式,即实现 `RequestInterceptor` 接口,在 `apply` 方法中设置自定义的认证信息传递方式,例如使用 `ThreadLocal` 存储当前服务的认证信息,然后在 feign 调用时将认证信息传递到被调用服务中。这种方式相对较为安全,也可以解决上述问题。
fegin 调用无鉴权的模块 401
关于 Feign 调用无鉴权的模块返回 401 的问题,通常有以下几种解决方案:
1. 在请求头中添加鉴权信息。可以通过自定义 Feign 的拦截器,在请求头中添加鉴权信息,具体实现可以参考 Feign 的官方文档。
2. 在请求时携带凭证。如果你使用的是 OAuth2 认证,可以在请求时携带 access_token 或者 refresh_token,以此来获取访问权限。
3. 绕过鉴权。如果你的应用场景中,无鉴权的模块对应的接口只是一些公开信息,可以考虑直接绕过鉴权。
需要注意的是,以上方案都需要根据具体的业务场景来选择,不能一概而论。