默认情况下,CAS查询只在登录并为整个SSO会话缓存属性时使用。我正在使用OAuth 2.0端点(/oauth2.0/profile)来获取当前用户的属性。属性存储在数据库中并使用JDBC检索( CAS配置为cas.authn.properties teRepository.jdbc.x.y.z类属性)。
是否有可能关闭缓存?每当有人访问/oauth2.0/profile端点时,我都会查询它们。
CAS 5.2.0版
发布于 2018-05-23 09:08:55
参考资料:https://apereo.github.io/cas/5.2.x/integration/Attribute-Release-Caching.html
默认情况下,解析属性缓存到SSO会话的长度。如果自SSO会话开始以来有任何属性值更改,则这些更改不会在发布时反映并返回给服务。
CAS主体和底层属性存储库源之间的关系,描述了CAS主体属性应该缓存的方式和长度,是由属性存储库控制的。在属性发布时间时,将查询此组件,以确保根据缓存过期策略将适当的属性值释放到作用域服务。如果过期策略已经通过,则将查询基础属性存储库源,以确定可用的属性集。
该组件还能够解决现有主体属性与通过mergingStrategy属性从存储库源检索的属性之间的冲突。如果您希望保留主体已经可用的属性集合,在身份验证事件期间从不同的位置检索到这些属性,这是非常有用的。
此外,可以通过以下方式控制全局缓存策略:
# cas.authn.attributeRepository.expireInMinutes=30
# cas.authn.attributeRepository.maximumCacheSize=10000
# cas.authn.attributeRepository.merger=REPLACE|ADD|MERGE上面的说明描述了属性的一般缓存策略。不确定它们对OAuth配置文件是否有相同的影响,但这是一个好的开始。
https://stackoverflow.com/questions/50483043
复制相似问题