From 332197947a394040be1a9ddaa57855ac73f64bcd Mon Sep 17 00:00:00 2001 From: 6500liuwei <1540629869@qq.com> Date: Fri, 5 May 2017 10:52:43 +0800 Subject: [PATCH] =?UTF-8?q?1.=E7=AE=A1=E7=90=86=E5=90=8E=E5=8F=B0=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E7=94=A8=E6=88=B7=E5=90=8D=E5=AF=86=E7=A0=81=E5=90=8E?= =?UTF-8?q?,=E6=B8=85=E7=90=86=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/smallchill/core/shiro/ShiroKit.java | 14 +++++++++++++- .../system/controller/UserController.java | 1 + 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/smallchill/core/shiro/ShiroKit.java b/src/main/java/com/smallchill/core/shiro/ShiroKit.java index 0558548b..97373c77 100644 --- a/src/main/java/com/smallchill/core/shiro/ShiroKit.java +++ b/src/main/java/com/smallchill/core/shiro/ShiroKit.java @@ -20,6 +20,7 @@ import java.util.Random; import org.apache.shiro.SecurityUtils; import org.apache.shiro.crypto.hash.Md5Hash; import org.apache.shiro.crypto.hash.SimpleHash; +import org.apache.shiro.mgt.RealmSecurityManager; import org.apache.shiro.session.Session; import org.apache.shiro.subject.Subject; import org.apache.shiro.util.ByteSource; @@ -268,5 +269,16 @@ public class ShiroKit { } return ""; } - + + /** + * 清理AuthenticationInfo缓存 + * 参考:http://blog.csdn.net/win7system/article/details/51038131 + * @param account + */ + public static void clearCachedAuthenticationInfo(String account) { + + RealmSecurityManager securityManager =(RealmSecurityManager) SecurityUtils.getSecurityManager(); + ShiroDbRealm userRealm = (ShiroDbRealm) securityManager.getRealms().iterator().next(); + userRealm.getCacheManager().getCache(userRealm.getAuthenticationCacheName()).remove(account); + } } diff --git a/src/main/java/com/smallchill/system/controller/UserController.java b/src/main/java/com/smallchill/system/controller/UserController.java index 761b4416..e146fb90 100644 --- a/src/main/java/com/smallchill/system/controller/UserController.java +++ b/src/main/java/com/smallchill/system/controller/UserController.java @@ -127,6 +127,7 @@ public class UserController extends BaseController implements ConstShiro{ user.setVersion(user.getVersion() + 1); boolean temp = blade.update(user); if (temp) { + ShiroKit.clearCachedAuthenticationInfo(user.getAccount()); return success(UPDATE_SUCCESS_MSG); } else { return error(UPDATE_FAIL_MSG); -- Gitee