oauth2 重新加载用户权限

oauth2 reload user authorities

我想知道最好的方法是什么。我的情况如下:

我有单独的 oath2 服务器和资源服务器通过数据库共享身份验证信息。用户身份验证由从 AbstractUserDetailsAuthenticationProvider 扩展的提供程序进行。每当我构建 UserDetails 对象时,我都会将权限附加到该用户详细信息。问题是,对我的资源服务器的特定调用可能会更改用户权限。据我了解,UserDetails 存储在数据库中,这似乎使过程更加困难。

我的问题:这种做法对吗?或者更好的是,API 准备好处理这样的要求了吗?如果不是,我的选择是什么?

另请注意,将以某种方式改变权限的服务器是资源服务器,而不是运行 oauth2 东西。

我想您处理此问题的方式取决于您的业务需求。访问令牌有点像会话 - 它会过期并且可以通过某种方式撤销。最容易撤销批准并因此禁用刷新令牌,因此处理权限更改的最直接方法是对访问令牌使用短期到期并在刷新时重新加载权限。 (2.0.7 快照有一些配置选项可以使它变得简单或自动,但它正在进行中。)