feign调用内部服务需要鉴权吗
时间: 2023-09-30 20:10:41 浏览: 70
是的,Feign调用内部服务也需要鉴权。在微服务架构中,服务之间的调用通常需要进行身份认证和授权。Feign调用其他微服务时,也需要在请求头中携带身份认证信息,以便目标服务能够校验请求的合法性。此外,目标服务还需要对请求进行授权,判断请求的发起方是否有访问该资源的权限。因此,Feign调用内部服务也需要进行鉴权。
相关问题
feign远程调用绕过鉴权
这是一个非常不好的做法,因为绕过鉴权可能会导致系统的安全性降低。如果非要这样做,可以在Feign的配置类中将RequestInterceptor禁用掉,这样就不会往请求头中添加鉴权信息了。
具体来说,在Feign的配置类中可以这样设置:
```java
@Configuration
public class FeignConfig {
@Bean
public RequestInterceptor requestInterceptor() {
return requestTemplate -> {
// 这里可以添加一些其他的请求头信息
// ...
// 然后将Authorization这个请求头清空
requestTemplate.header("Authorization", "");
};
}
}
```
这样做虽然可以让请求不带上鉴权信息,但是不建议在生产环境中使用。最好的做法还是要在请求头中加上正确的鉴权信息。
feign调用内部接口
Feign可以用于调用内部接口,只需要在Feign的接口上添加注解@FeignClient,并指定要调用的服务名称即可。同时,需要在配置文件中添加该服务的地址和端口。例如:
```
@FeignClient(name = "my-service")
public interface MyServiceClient {
@PostMapping("/api/my-service/do-something")
String doSomething();
}
```
在调用该接口时,Feign会自动向注册中心查询my-service服务的地址,并通过该地址和端口访问接口。