被调用模块未开启鉴权,fegin调用报401
时间: 2024-04-28 11:27:14 浏览: 8
如果被调用模块未开启鉴权,那么你需要在调用时手动添加鉴权信息。你可以通过在Feign客户端接口上添加请求头的方式进行鉴权。例如,你可以在Feign客户端接口上添加一个带有认证令牌的请求头,如下所示:
```java
@FeignClient(name = "example-client", url = "http://example.com", configuration = MyFeignConfiguration.class)
public interface ExampleClient {
@RequestMapping(method = RequestMethod.GET, value = "/example")
public String getExample(@RequestHeader("Authorization") String authorization);
}
```
在这个例子中,我们在Feign客户端接口的`getExample()`方法上添加了一个请求头`Authorization`,该请求头包含认证令牌。你需要在请求头中添加正确的认证令牌才能成功调用被调用模块的API。
相关问题
被调用模块未开启鉴权,fegin调用报401 解决方法
如果被调用模块未开启鉴权,那么在进行 feign 调用时会出现 401 错误,因为 feign 默认会将当前服务的认证信息传递到被调用服务中。解决这个问题有以下几种方法:
1. 在被调用的服务中开启鉴权机制,即在被调用服务中配置认证信息,这样 feign 调用时就可以正常传递认证信息了。
2. 在 feign 的配置类中关闭认证信息的传递,即设置 `feign.hystrix.enabled=false`,这样 feign 就不会传递当前服务的认证信息到被调用服务中,但是这种方式会降低系统的安全性。
3. 在 feign 的配置类中设置自定义的认证信息传递方式,例如使用 `RequestInterceptor` 接口,在 `apply` 方法中设置自定义的认证信息传递方式,例如将认证信息存储在一个公共的头部中,然后在 feign 调用时将头部信息传递到被调用服务中。这种方式相对较为安全,也可以解决上述问题。
总之,需要根据具体情况采取不同的解决方法,以确保系统的安全性和稳定性。
fegin 调用无鉴权的模块 401
关于 Feign 调用无鉴权的模块返回 401 的问题,通常有以下几种解决方案:
1. 在请求头中添加鉴权信息。可以通过自定义 Feign 的拦截器,在请求头中添加鉴权信息,具体实现可以参考 Feign 的官方文档。
2. 在请求时携带凭证。如果你使用的是 OAuth2 认证,可以在请求时携带 access_token 或者 refresh_token,以此来获取访问权限。
3. 绕过鉴权。如果你的应用场景中,无鉴权的模块对应的接口只是一些公开信息,可以考虑直接绕过鉴权。
需要注意的是,以上方案都需要根据具体的业务场景来选择,不能一概而论。