無法查詢權限問題 求大佬看看
我自定義sql 通過角色名查詢不到權限 隨后使用默認sql 并把默認sql查詢 是可以獲得權限

有沒有大佬能說說這里面的流程是怎么樣的 我把我知道的方案都試了 依然獲取不到權限


setPermissionsLookupEnabled?已設置為true
//這是我的測試方法
????????JdbcRealm?jdbcRealm?=?new?JdbcRealm();
????????jdbcRealm.setDataSource(dataSource);
????????jdbcRealm.setPermissionsLookupEnabled(true);
????????//自定義查詢用戶sql
????????String?sql?=?"select?password?from?account?where?username?=??";
????????jdbcRealm.setAuthenticationQuery(sql);
????????//查詢角色sql
????????String?roleSql?=?"SELECT?role_name?FROM?role?WHERE?role_id?=?(SELECT?role_id?FROM?account?WHERE?username?=??)";
????????jdbcRealm.setUserRolesQuery(roleSql);
????????//查詢權限
//????????String?permissionSql?=?"SELECT?resource_name?FROM?resource?WHERE?resource_id?in?(SELECT?resource_id?FROM?role_resource?WHERE?role_id?=?(SELECT?role_id?FROM?role?WHERE?role_name?=??))";
//????????jdbcRealm.setPermissionsQuery(permissionSql);
????????//構建Security環境
????????DefaultSecurityManager?defaultSecurityManager?=?new?DefaultSecurityManager();
????????defaultSecurityManager.setRealm(jdbcRealm);
????????//主體提交認證請求
????????SecurityUtils.setSecurityManager(defaultSecurityManager);
????????//獲取主體
????????Subject?subject?=?SecurityUtils.getSubject();
????????UsernamePasswordToken?token?=?new?UsernamePasswordToken("jack","123456");
????????subject.login(token);
????????subject.checkRole("普通角色");
????????subject.checkPermission("客戶管理");
????????System.out.println("是否認證:"?+?subject.isAuthenticated());
2022-07-14
這個token的時間是設置的多少呢