Grails构建基于RBAC的权限管理平台(二)

本文详细介绍了如何使用Grails构建基于RBAC(Role-Based Access Control)的权限管理平台。用户模型包含用户ID、姓名和密码,并与角色模型建立多对多关系。角色模型包括角色ID和名称,同时与用户和授权模型保持多对多联系。授权模型有授权ID和名称,与角色多对多,与操作一对一。操作模型涵盖操作ID、名称、控制器和动作,确保精细的权限控制。
摘要由CSDN通过智能技术生成
Grails框架是标准的MVC模式。通过控制器(Controller)的闭包(action)控制相应的操作和页面(GSP)渲染。
Grails编程是基于模型驱动的。根据Grails的特点,要实现基于RBAC的权限管理需要定义以下4个数据模型。
Grails目前最新版本是 2.2.3,对many to many的关系映射提供了良好的支持。 
    • 用户模型(User)包括用户标识(user_id)、用户姓名(userName)、用户登录密码(password)。与角色模型是多对多的关系。
    • 角色模型(Role)包括角色标识(role_id)、角色名称(roleName)。与用户模型是多对多的关系。与授权模型也是多对多的关系。
    • 授权模型(Authorization)包括授权标识(auth_id)、授权名称(authName)。与角色模型是多对多的关系。与操作模型是一对一的关系。
    • 操作模型(Operation)包括操作标识(oper_id)、操作名称(operName)、控制器名称(controller)、动作名称(action)。与授权模型是一对一的关系。
package rbac
class User {
String username
String password
static belongsTo = Role
static hasMany = [roles:Role]
String toString(){
"${username}"
}
static constraints = {
username blank:false
password blank:false,password:true
    }
}
/**************************************************************************/
package rbac
class Role {
String roleName
static belongsTo = Auth
static hasMany = [users:User,auths:Auth]
String toString(){
"${roleName}"
}
    static constraints = {
roleName(blank:false)
    }
}
/**************************************************************************/
package rbac
class Auth {
String authName
Oper opers
static hasMany = [roles:Role]
String toString(){
"${authName}"
}
static constraints = {
authName blank:false
    }
}
/**************************************************************************/
package rbac
class Oper {
String operName
String controllerName
String actionName
static belongsTo = [auths:Auth]
String toString(){
"${operName}"
}
static constraints = {
operName(blank:false)
controllerName(blank:false)
actionName(blank:false)
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值