oauth2重新加载用户权限

时间:2015-03-09 16:40:12

标签: spring token spring-security-oauth2

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

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

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

另请注意,在某些方面可能会对权限进行更改的服务器是资源服务器,而不是运行oauth2内容的服务器。

1 个答案:

答案 0 :(得分:1)

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