我使用 Spring 和 Apache CXF 创建了一个 REST Web 服务应用程序。我使用 x.509 证书对用户进行身份验证,然后使用自定义授权服务来获取所有用户组和详细信息。我已经实现了一个自定义UserDetailsService来提取用户信息并填充一个UserDetails对象。填充此对象的部分过程涉及对公司授权服务的请求。不幸的是,授权服务是一个专有系统,但至少它们提供了 Java API。除其他外,授权服务会返回用户所属的组列表。
我仍处于开发阶段,但到目前为止我的观察似乎表明UserDetailsService在初始连接时被调用一次。然后每个请求使用一个缓存的授权对象。
所以我的问题和潜在问题是……公司政策规定,应用程序只允许在一段时间内缓存用户授权详细信息。那么,Spring 会在刷新之前将这些UserDetails对象缓存多久呢?而且,我怎样才能控制这个缓存时间以确保我遵守政策?