Browse Source

新增认证对象简化权限验证

tags/v3.3.0
RuoYi 3 years ago
parent
commit
d0a5c25b5d
  1. 1
      ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/interceptor/HeaderInterceptor.java
  2. 2
      ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java
  3. 60
      ruoyi-ui/src/plugins/auth.js
  4. 3
      ruoyi-ui/src/plugins/index.js

1
ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/interceptor/HeaderInterceptor.java

@ -14,6 +14,7 @@ import com.ruoyi.system.api.model.LoginUser; @@ -14,6 +14,7 @@ import com.ruoyi.system.api.model.LoginUser;
/**
* 自定义请求头拦截器将Header数据封装到线程变量中方便获取
* 注意此拦截器会同时验证当前用户有效期自动刷新有效期
*
* @author ruoyi
*/

2
ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java

@ -59,7 +59,7 @@ public class AuthFilter implements GlobalFilter, Ordered @@ -59,7 +59,7 @@ public class AuthFilter implements GlobalFilter, Ordered
Claims claims = JwtUtils.parseToken(token);
if (claims == null)
{
return unauthorizedResponse(exchange, "token已过期或验证不正确!");
return unauthorizedResponse(exchange, "令牌已过期或验证不正确!");
}
String userkey = JwtUtils.getUserKey(claims);
boolean islogin = redisService.hasKey(getTokenKey(userkey));

60
ruoyi-ui/src/plugins/auth.js

@ -0,0 +1,60 @@ @@ -0,0 +1,60 @@
import store from '@/store'
function authPermission(permission) {
const all_permission = "*:*:*";
const permissions = store.getters && store.getters.permissions
if (permission && permission.length > 0) {
return permissions.some(v => {
return all_permission === v || v === permission
})
} else {
return false
}
}
function authRole(role) {
const super_admin = "admin";
const roles = store.getters && store.getters.roles
if (role && role.length > 0) {
return roles.some(v => {
return super_admin === v || v === role
})
} else {
return false
}
}
export default {
// 验证用户是否具备某权限
hasPermi(permission) {
return authPermission(permission);
},
// 验证用户是否含有指定权限,只需包含其中一个
hasPermiOr(permissions) {
return permissions.some(item => {
return authPermission(item)
})
},
// 验证用户是否含有指定权限,必须全部拥有
hasPermiAnd(permissions) {
return permissions.every(item => {
return authPermission(item)
})
},
// 验证用户是否具备某角色
hasRole(role) {
return authRole(role);
},
// 验证用户是否含有指定角色,只需包含其中一个
hasRoleOr(roles) {
return roles.some(item => {
return authRole(item)
})
},
// 验证用户是否含有指定角色,必须全部拥有
hasRoleAnd(roles) {
return roles.every(item => {
return authRole(item)
})
}
}

3
ruoyi-ui/src/plugins/index.js

@ -1,9 +1,12 @@ @@ -1,9 +1,12 @@
import auth from './auth'
import cache from './cache'
import modal from './modal'
import download from './download'
export default {
install(Vue) {
// 认证对象
Vue.prototype.$auth = auth
// 缓存对象
Vue.prototype.$cache = cache
// 模态框对象

Loading…
Cancel
Save