【发布时间】:2015-12-19 01:57:41
【问题描述】:
能否让 Spring 的缓存框架了解请求上下文的身份验证状态,或者更容易推出自己的缓存解决方案?
【问题讨论】:
标签: java spring-mvc spring-security spring-cache
能否让 Spring 的缓存框架了解请求上下文的身份验证状态,或者更容易推出自己的缓存解决方案?
【问题讨论】:
标签: java spring-mvc spring-security spring-cache
尽管我发现用例非常奇怪,但您可以为几乎所有适用于 SpEL 的东西设置缓存条件。而且由于您可以使用 SpEL 调用任何您想要的方法,所以您可以开始了。
我意识到它比它应该更难,但以下工作。首先创建一个 static 方法来进行检查(您可以使用 SecurityContextHolder)
public class SecurityChecker {
public static boolean isSecured() {
// Whatever
return SecurityContextHolder.getContext().getAuthentication() != null;
}
}
然后在您的注释方法中,指定以下内容(假设myCache 应该受到影响):
@Cacheable(cacheNames = "myCache", condition = "T(com.example.SecurityChecker).isSecured()")
public Foo doIt(String key) { ... }
目前有两个问题:
【讨论】: