gpt4 book ai didi

caching - Wildfly 刷新安全域缓存

转载 作者:行者123 更新时间:2023-12-02 14:32:44 25 4
gpt4 key购买 nike

我有一个在 Wildfly 上部署了 JAX-RS 接口(interface)的 war 项目,并且配置了一个安全域,它从数据库加载用户密码和角色。安全域使用cache-type=default。安全域无法识别经过身份验证的用户的更新,因为旧数据已被缓存。我用 jboss-cli.sh 验证了这一点。那么如何从缓存中删除特定用户呢?我想在已部署的应用程序中执行此操作,而不是通过 jboss-cli.sh。

最佳答案

您的问题可能与 WildFly 中的错误有关:https://issues.jboss.org/browse/WFLY-3221 .

有一种解决方法可以显式刷新身份验证缓存:

@WebListener
public class SessionInvalidationListener implements HttpSessionListener {

@Inject
private Principal principal;

@Resource(name = "java:jboss/jaas/mydomain/authenticationMgr")
private CacheableManager<?, Principal> authenticationManager;

@Override
public void sessionCreated(HttpSessionEvent se) {
// not used
}

@Override
public void sessionDestroyed(HttpSessionEvent se) {
authenticationManager.flushCache(principal);
}
}

我已经在稍微不同的用例中测试了这种方法。有趣的是访问authenticationManager - 它应该很容易适应您的情况。

该错误应该在 WildFly 9.x 中修复(我没有检查)。

关于caching - Wildfly 刷新安全域缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32385823/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com