我实现了一个微服务架构。在访问每个微服务之前,请求通过一个网关来检查身份验证,并在此过程中添加一个 X-User
包含用户id的标头。
在我的每个微服务中,我都希望能够检索到这个用户( X-User
)以优雅的方式:不添加 HttpRequest
/ @RequestHeader
给我所有的控制器并把它传给服务等。
使用类似于 SecurityContextHolder.getContext().getAuthentication().getUserId();
“这将是完美的,但由于我不管理我的微服务的身份验证,这是不可能的。
1条答案
按热度按时间dxxyhpgq1#
您应该能够:
实现一个servlet
Filter
(详见这篇baeldung文章)userId
从ServletRequest
并储存在ThreadLocal
(详见本文)取回那个
ThreadLocal
从任何需要userId
祝你好运!