無法查詢權(quán)限問題 求大佬看看
我自定義sql 通過角色名查詢不到權(quán)限 隨后使用默認(rèn)sql 并把默認(rèn)sql查詢 是可以獲得權(quán)限
有沒有大佬能說說這里面的流程是怎么樣的 我把我知道的方案都試了 依然獲取不到權(quán)限
setPermissionsLookupEnabled?已設(shè)置為true //這是我的測(cè)試方法 ????????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); ????????//查詢權(quán)限 //????????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); ????????//構(gòu)建Security環(huán)境 ????????DefaultSecurityManager?defaultSecurityManager?=?new?DefaultSecurityManager(); ????????defaultSecurityManager.setRealm(jdbcRealm); ????????//主體提交認(rèn)證請(qǐng)求 ????????SecurityUtils.setSecurityManager(defaultSecurityManager); ????????//獲取主體 ????????Subject?subject?=?SecurityUtils.getSubject(); ????????UsernamePasswordToken?token?=?new?UsernamePasswordToken("jack","123456"); ????????subject.login(token); ????????subject.checkRole("普通角色"); ????????subject.checkPermission("客戶管理"); ????????System.out.println("是否認(rèn)證:"?+?subject.isAuthenticated());
2022-07-14
這個(gè)token的時(shí)間是設(shè)置的多少呢