Hel*_*sch 4 jboss caching flush securitydomain wildfly
我有一个部署在wildfly上的JAX-RS接口的war项目,并且配置了一个安全域,它从db加载用户密码和角色.安全域使用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);
}
}
Run Code Online (Sandbox Code Playgroud)
我在稍微不同的用例中测试了这种方法.有趣的是访问authenticationManager- 应该很容易适应你的情况.
该错误应该在WildFly 9.x中修复(我没有检查).
| 归档时间: |
|
| 查看次数: |
4560 次 |
| 最近记录: |