我有以下用例,我想验证:
我有一个资源服务器,可以将其称为(service1),另一个服务将尝试从此服务器获取一些数据(服务2),服务之间的通话使用(OAuth2)进行保护,因此(service2)会向(服务1)发送请求,并在标头(授权),资源服务器将针对某个Auth服务器验证此令牌。
出于某些用例原因,我不能在此令牌中包含客户数据,因此我将制作另一个 JWT 令牌,将客户数据放入其中并沿着请求发送另一个标头(例如:客户授权)。 在资源服务器上,我将采用以下方法:
使用spring安全配置验证第一个令牌( 发送授权标题)
如果是上一次传球,我会添加一个将替换的球衣过滤器。 (Spring安全上下文),新的自定义版本将处理我的第二个令牌在客户授权标题中发送
我将依赖新的Spring安全上下文来获取客户。 数据并进行所有必需的身份验证(e.x:using @PreAutorize)
我想知道这种方法在您看来有什么缺点吗?你会建议更好的方法吗?
(注1:我知道拥有2个访问令牌并不标准,但我们目前的用例需要这个,我们不能在不久的将来更改它)
(注2 :稍微清楚一点,我的第一个令牌用于服务认证服务及其 JWT 令牌,我通过STUPS获取并验证 { {3}}
第二个令牌只是一个 JWT 令牌,我生成该令牌以存储一些客户数据和范围,并在以后的进一步处理中使用它)