|
@@ -19,9 +19,9 @@ import com.xt.js.gkaq.frame.model.UserModel;
|
|
|
import com.xt.js.gkaq.frame.service.UserService;
|
|
|
|
|
|
/**
|
|
|
- * 瀹夊叏Realm
|
|
|
+ * 安全Realm
|
|
|
*
|
|
|
- * @author 琚佹檽鍐�
|
|
|
+ * @author 袁晓冬
|
|
|
*
|
|
|
*/
|
|
|
public class GkaqAuthorizingRealm extends AuthorizingRealm {
|
|
@@ -29,7 +29,7 @@ public class GkaqAuthorizingRealm extends AuthorizingRealm {
|
|
|
private UserService userService;
|
|
|
|
|
|
/**
|
|
|
- * 娓呴櫎鎵€鏈夌敤鎴锋巿鏉冧俊鎭�紦瀛�.
|
|
|
+ * 清除所有用户授权信息缓存.
|
|
|
*/
|
|
|
public void clearAllCachedAuthorizationInfo() {
|
|
|
Cache<Object, AuthorizationInfo> cache = getAuthorizationCache();
|
|
@@ -41,7 +41,7 @@ public class GkaqAuthorizingRealm extends AuthorizingRealm {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 鏇存柊鐢ㄦ埛鎺堟潈淇℃伅缂撳瓨.
|
|
|
+ * 更新用户授权信息缓存.
|
|
|
*/
|
|
|
public void clearCachedAuthorizationInfo(UserModel user) {
|
|
|
SimplePrincipalCollection principals = new SimplePrincipalCollection(user, getName());
|
|
@@ -49,7 +49,7 @@ public class GkaqAuthorizingRealm extends AuthorizingRealm {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 璁よ瘉鍥炶皟鍑芥暟, 鐧诲綍鏃惰皟鐢�.
|
|
|
+ * 认证回调函数, 登录时调用.
|
|
|
*/
|
|
|
@Override
|
|
|
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authcToken)
|
|
@@ -63,14 +63,14 @@ public class GkaqAuthorizingRealm extends AuthorizingRealm {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 鎺堟潈鏌ヨ�鍥炶皟鍑芥暟, 杩涜�閴存潈浣嗙紦瀛樹腑鏃犵敤鎴风殑鎺堟潈淇℃伅鏃惰皟鐢�.
|
|
|
+ * 授权查询回调函数, 进行鉴权但缓存中无用户的授权信息时调用.
|
|
|
*/
|
|
|
@Override
|
|
|
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
|
|
|
UserModel loginUser = (UserModel) principals.fromRealm(getName()).iterator().next();
|
|
|
- // 棣栧厛浠巗ession涓�幏鍙栨潈闄�
|
|
|
+ // 首先从session中获取权限
|
|
|
Session s = SecurityUtils.getSubject().getSession();
|
|
|
- // 缂撳瓨涓�笉瀛樺湪锛屽垯浠庢暟鎹�簱鏌ヨ�
|
|
|
+ // 缓存中不存在,则从数据库查询
|
|
|
UserModel user = userService.findById(loginUser.getId());
|
|
|
if (user != null) {
|
|
|
SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
|