diff --git a/src/main/java/com/nis/web/controller/sys/UserController.java b/src/main/java/com/nis/web/controller/sys/UserController.java index a478ef14a..1dddc5222 100644 --- a/src/main/java/com/nis/web/controller/sys/UserController.java +++ b/src/main/java/com/nis/web/controller/sys/UserController.java @@ -110,6 +110,20 @@ public class UserController extends BaseController{ // 如果新密码为空,则不更换密码 if (StringUtils.isNotBlank(user.getNewPassword())) { user.setPassword(StringUtils.entryptPassword(user.getNewPassword())); + + //密码修改之后,更新此用户的redis缓存 + RealmSecurityManager securityManager = (RealmSecurityManager) SecurityUtils.getSecurityManager(); + Collection realm = securityManager.getRealms(); + for (Realm realm2 : realm) { + SystemAuthorizingRealm userRealm = (SystemAuthorizingRealm) realm2; + RedisCache cache = (RedisCache) userRealm.getAuthenticationCache(); + String keyPrefix = cache.getKeyPrefix(); + for (AuthenticationInfo auth : cache.values()) { + userRealm.getAuthenticationCache().remove(auth.getPrincipals().getPrimaryPrincipal()); + } + systemService.deleteAuthenticationCache(keyPrefix + user.getName()); + systemService.deleteAuthenticationCache(keyPrefix + user.getId()); + } } /*if (!beanValidator(model, user)){ return form(user, model);