Jhipster-如何将请求/信息从网关发送到微服务
我正在使用Jhipster Microservice Archi,它更适合我的需要 我正试图找到一种方法将请求从网关发送到Microservice,或者至少向Microservice发送更多的用户信息(电话号码、电子邮件…)。有没有办法做到这一点 我想做的基本上是当一个用户刚刚注册时,我想从网关向microservice发送一个请求,以便创建例如TaxiLocation(如果用户的权限是taxi),或者创建一个商店(如果用户是商店经理)Jhipster-如何将请求/信息从网关发送到微服务,jhipster,Jhipster,我正在使用Jhipster Microservice Archi,它更适合我的需要 我正试图找到一种方法将请求从网关发送到Microservice,或者至少向Microservice发送更多的用户信息(电话号码、电子邮件…)。有没有办法做到这一点 我想做的基本上是当一个用户刚刚注册时,我想从网关向microservice发送一个请求,以便创建例如TaxiLocation(如果用户的权限是taxi),或者创建一个商店(如果用户是商店经理) 感谢您的帮助。您要做的是在微服务之间进行通信,因此,在这里
感谢您的帮助。您要做的是在微服务之间进行通信,因此,在这里,网关的后端希望向其他微服务发送请求。 我说得对吗 如果是这样的话,你可以看这张票,它已经被讨论过了:
希望能对你有所帮助。谢谢你的帮助,我终于明白了: 1-使用RequestInterceptor创建一个外部配置,这样请求将被认证 公共类假配置{
@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和MicroserviceClient回调
@假客户端(name=“xxxxxxxx”,fallback=MicroserviceClientFallback.class,configuration=FeignConfig.class)
公共接口微服务客户端{
@RequestMapping(value = "/api/createuser",
method = RequestMethod.POST,
produces = MediaType.APPLICATION_JSON_VALUE)
UserInfo createUser(UserInfo user);
private final Logger log = LoggerFactory.getLogger(MicroserviceClientFallback.class);
@Override
public UserInfo createUser(UserInfo user) {
log.warn("Triggered fallback for createUser : {}", user);
return null;
}
}
@组成部分
公共类MicroserviceClientFallback实现MicroserviceClient{
@RequestMapping(value = "/api/createuser",
method = RequestMethod.POST,
produces = MediaType.APPLICATION_JSON_VALUE)
UserInfo createUser(UserInfo user);
private final Logger log = LoggerFactory.getLogger(MicroserviceClientFallback.class);
@Override
public UserInfo createUser(UserInfo user) {
log.warn("Triggered fallback for createUser : {}", user);
return null;
}
}
3-最后从rest控制器调用它
@Inject
private MicroserviceClient microserviceClient;
...
microserviceClient.createUser(userInfo);
这些都是很好的方法,但作为一种替代方法,您可以向JWT令牌声明中添加更多信息,只要这些附加信息不是敏感数据,因为令牌没有被加密,只有base64编码和签名。谢谢,伙计,这正是我要找的。我会仔细看看;)谢谢你的帮助,我终于明白了:你能为遇到同样问题的其他人创建一个详细的分步指南吗。谢谢