如何跨单个项目的不同 Spring Boot 微服务实施 JPA 审计?

How to implement JPA Audit across different Spring Boot Microservices of a single project?

我有一个 AUTH_SERVICE,它验证用户凭据并发送 JWT 令牌作为响应 header。我还有 GATEWAY_SERVICE 拦截请求并验证令牌并将请求转发给其他微服务的控制器。

现在,在这个过程中,我似乎无法弄清楚如何实现 JPA Auditing 以防万一目标微服务的任何 table 数据发生更改。

有什么建议吗?

这是一个Github link to my project

下面是项目中的微服务列表

- zuul-server (Port:8762)
- auth-server (Port: 9100)
- gallery-service (Port: 8100)
- image-service (Port: 8200)

✖ - 现在,我需要发送 username/token 或说 user_idzuul-servergallery-service 以进行 JPA 审计。关于我该怎么做的任何建议?

根据 spring 文档,您可以借助 zuul 配置将 Headers 从 zuul 发送到其他服务。

Spring 文档:

敏感Headers为黑名单,默认不为空。因此,要让 Zuul 发送所有 headers(忽略的除外),您必须明确地将其设置为空列表。如果您想将 cookie 或授权 headers 传递到后端,则必须这样做。

示例:

zuul:
  routes:
    users:
      path: /myusers/**
      sensitiveHeaders: