谢谢你的帮助,我终于弄明白了:
1 - 创建一个带有 RequestInterceptor 的 Feign Config,这样请求就会被认证
公共类 FeignConfig {
@Inject
private JHipsterProperties properties;
@Bean
public RequestInterceptor requestTokenBearerInterceptor() {
return requestTemplate -> {
String token = Jwts.builder().
setSubject("xxx")
.claim("auth", "xxx")
.signWith(SignatureAlgorithm.HS512, properties.getSecurity().getAuthentication().getJwt().getSecret())
.compact();
requestTemplate.header("Authorization", "Bearer " + token);
};
}
}
2- 创建 MicroserviceClient & MicroserviceClientFallback
@FeignClient(name = "xxxxxxxx", fallback = MicroserviceClientFallback.class, configuration = FeignConfig.class)
公共接口 MicroserviceClient {
@RequestMapping(value = "/api/createuser",
method = RequestMethod.POST,
produces = MediaType.APPLICATION_JSON_VALUE)
UserInfo createUser(UserInfo user);
}
@组件
公共类 MicroserviceClientFallback 实现 MicroserviceClient {
private final Logger log = LoggerFactory.getLogger(MicroserviceClientFallback.class);
@Override
public UserInfo createUser(UserInfo user) {
log.warn("Triggered fallback for createUser : {}", user);
return null;
}
}
3 - 最后从休息控制器调用它
@Inject
private MicroserviceClient microserviceClient;
...
microserviceClient.createUser(userInfo);