Jhipster-如何将请求/信息从网关发送到微服务

Jhipster-如何将请求/信息从网关发送到微服务,jhipster,Jhipster,我正在使用Jhipster Microservice Archi,它更适合我的需要 我正试图找到一种方法将请求从网关发送到Microservice,或者至少向Microservice发送更多的用户信息(电话号码、电子邮件…)。有没有办法做到这一点 我想做的基本上是当一个用户刚刚注册时,我想从网关向microservice发送一个请求,以便创建例如TaxiLocation(如果用户的权限是taxi),或者创建一个商店(如果用户是商店经理) 感谢您的帮助。您要做的是在微服务之间进行通信,因此,在这里

我正在使用Jhipster Microservice Archi,它更适合我的需要

我正试图找到一种方法将请求从网关发送到Microservice,或者至少向Microservice发送更多的用户信息(电话号码、电子邮件…)。有没有办法做到这一点

我想做的基本上是当一个用户刚刚注册时,我想从网关向microservice发送一个请求,以便创建例如TaxiLocation(如果用户的权限是taxi),或者创建一个商店(如果用户是商店经理)


感谢您的帮助。

您要做的是在微服务之间进行通信,因此,在这里,网关的后端希望向其他微服务发送请求。 我说得对吗

如果是这样的话,你可以看这张票,它已经被讨论过了:

您也有来自JHipster团队的Xetys的本教程:

而且,你有一个特定的模块也可以完成这项工作,由Christophe制作,也来自JHipster团队:


希望能对你有所帮助。

谢谢你的帮助,我终于明白了:

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编码和签名。谢谢,伙计,这正是我要找的。我会仔细看看;)谢谢你的帮助,我终于明白了:你能为遇到同样问题的其他人创建一个详细的分步指南吗。谢谢