我们的基础设施如下:
它是这样的:
site.example.com
并输入他的用户名/密码。auth.example.com
。someUUID
)。someUUID
保存在其本地存储中。gw.example.com/some/path
发出请求。someUUID
)相匹配的用户详细信息。然后,API网关将用户详细信息转换为JWT令牌,并将其添加到名为X-Auth
的自定义标头中。 JWT令牌如下所示:
Header:
{
"typ": "SomeSpecificType",
"alg": "...",
"x5t": "...",
"x5u": "https://x501.example.com/path/to/public-key"
}
Body:
{
"jti": "some jti",
"iss": "some iss",
"ver": "2.0",
"sub": "some sub",
"exp": 1559999999,
"nbf": 1559000000,
"iat": 1559999999,
"usr": "Some.User@gmail.com"
}
Authorization
标头。现在,在第十步中,我想检查在X-Auth
标头中传递给API的JWT令牌,并加载用户主体并将其提供给我的控制器等。
没有Spring Security,实现此目的的一种方法是编写自定义过滤器,手动检查X-Auth
标头,并准备可在控制器中使用的用户主体对象,等等。
但是如果我想使用Spring Security,我该如何处理这种情况?我应该使用Spring Security的Pre-Auth功能吗?