【问题标题】:Jhipster - How to send Request/Information from Gateway to MicroserviceJhipster - 如何将请求/信息从网关发送到微服务
【发布时间】:2017-05-26 13:04:54
【问题描述】:

我正在使用更适合我需要的 Jhipster 微服务架构。

我正在尝试找到一种方法将请求从网关发送到微服务,或者至少将更多用户信息(电话号码、电子邮件...)发送到微服务。有什么办法吗?

我想做的基本上是当用户刚刚注册时,我想从网关向微服务发送一个请求,以便在用户的权限是出租车时创建例如 TaxiLocation,或者在用户是商店经理...

感谢您的帮助。

【问题讨论】:

  • 感谢您的帮助,我终于想通了:

标签: jhipster


【解决方案1】:

您要做的是微服务之间的通信,所以在这里,您的网关后端想要向您的其他微服务发送请求。 我说的对吗?

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

JHipster 团队的 Xetys 也有这个教程:

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

希望对你有帮助。

【讨论】:

  • 这些是很好的方法,但作为替代方案,您可以向 JWT 令牌声明添加更多信息,只要此附加信息不是敏感数据,因为令牌未加密,仅 base64 编码和签名。
  • 谢谢老兄,这正是我想要的。我会深入研究一下;)
【解决方案2】:

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

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);

【讨论】:

  • 您能否为遇到相同问题的其他人创建详细的分步指南。谢谢。
猜你喜欢
  • 2019-06-07
  • 2020-04-20
  • 2018-12-10
  • 2021-07-09
  • 2018-10-04
  • 2019-03-02
  • 1970-01-01
  • 2019-09-18
  • 1970-01-01
相关资源
最近更新 更多