权限组件接口说明文档.docx

上传人:b****4 文档编号:11558710 上传时间:2023-03-19 格式:DOCX 页数:17 大小:59.76KB
下载 相关 举报
权限组件接口说明文档.docx_第1页
第1页 / 共17页
权限组件接口说明文档.docx_第2页
第2页 / 共17页
权限组件接口说明文档.docx_第3页
第3页 / 共17页
权限组件接口说明文档.docx_第4页
第4页 / 共17页
权限组件接口说明文档.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

权限组件接口说明文档.docx

《权限组件接口说明文档.docx》由会员分享,可在线阅读,更多相关《权限组件接口说明文档.docx(17页珍藏版)》请在冰豆网上搜索。

权限组件接口说明文档.docx

权限组件接口说明文档

项目编号:

文档编号:

版本号:

 

<权限组件接口说明文档>

<接口说明文档>

 

编写:

陈照日期:

2011年11月15日

校对:

日期:

年月日

审核:

日期:

年月日

批准:

日期:

年月日

 

保密级别:

秘密

目录

1.RBAC权限模型3

2.RAMS的权限模型3

2.1.RAMS说明3

2.2.RAMS的RBAC结构3

2.3.RAMS的表结构描述3

3.权限接口说明3

3.1.com.redhat.auth.ejb.AccountApplication4

3.2.com.redhat.auth.ejb.BizSystemApplication7

3.3.com.redhat.auth.ejb.FunctionEntityApplication8

3.4.com.redhat.auth.ejb.FunctionEntityTypeApplication10

3.5.com.redhat.auth.ejb.RoleApplication11

3.6.com.redhat.auth.ejb.SecurityStrategyApplication12

4.接口使用说明13

4.1.在Action层中获得接口13

4.2.例子:

为帐户添加权限14

1.RBAC权限模型

RBAC是一个国际普遍认可的权限模型,全名是:

RoleBaseAccessControl,译为基于角色的访问控制。

2.RAMS的权限模型

RAMS说明

RAMS(RedhatAuthorizationManagementSystem),是一个基于RBAC权限控制以及结合了SpringSecurity的权限控制组件(因为项目中可能只用到其一部份)。

RAMS的RBAC结构

RAMS的表结构描述

RAMS_ACCOUNT:

帐户表

RAMS_ROLE:

角色表

RAMS_FUNCTION_ENTITY:

权限表

RAMS_FUNCTION_ENTITY_TYPE:

权限的分类

RAMS_ACCOUNT_R_ROLE:

帐户与角色的关联表(一个帐户关联多个角色)

RAMS_ROLE_R_FUNCTION_ENTITY:

角色与权限的关联表(一个角色关系多个权限)

3.权限接口说明

com.redhat.auth.ejb.AccountApplication

publicinterfaceAccountApplication{

/**

*删除一个帐户,在生产中请勿使用该接口

*@paramid

*@author

iffiff1@">TylerChen

*@since2011-11-15

*/

voiddeleteAccount(Longid);

/**

*新增或修改一个account实体

*@paramaccount

*/

AccountVOupdate(AccountVOaccount);

/**

*新增一个account实体

*@paramaccount

*/

AccountVOadd(AccountVOaccount);

/**

*锁定一个帐号

*@paramaccount

*/

voidlock(LongaccountId);

/**

*解锁一个帐号

*@paramaccount

*/

voidunLock(LongaccountId);

/**

*通过ID获取帐户信息

*@paramid

*@return

*/

AccountVOgetAccount(longid);

/**

*通过用户名来获取帐户信息

*@paramusername

*@return

*@author

iffiff1@">TylerChen

*@since2011-11-15

*/

AccountVOgetAccount(Stringusername);

/**

*根据名称查询帐号是否存在

*@paramusername

*@return

*/

booleanisAccountExistsByName(Stringusername);

/**

*根据帐号Email查询帐号是否存在

*@paramemail

*@return

*/

booleanisAccountExistsByEmail(Stringemail);

/**

*将一个帐号同多个系统绑定起来

*@paramaccountId

*@paramsystemIds

*@return

*/

voidaccountBindSystems(longaccountId,String[]systemIds);

/**

*将一个帐号同多个系统解除绑定

*@paramaccountId

*@paramsystemIds

*/

voidaccountUnBindSystem(longaccountId,String[]systemIds);

/**

*设置一个帐号和一个系统的绑定状态

*@paramaccontId

*@paramsystemId

*@paramstatus

*/

voidsetBizSystemBindingStatus(longaccontId,longsystemId,

intbizSystemBindingStatus);

/**

*将一个系统同多个帐号进行绑定

*@paramsystemId

*@paramaccountIds

*/

voidsystemBindAccount(longsystemId,String[]accountIds);

/**

*解除一个系统同多个帐号之间的绑定

*@paramsystemId

*@paramaccountIds

*/

voidsystemUnBindAccount(longsystemId,String[]accountIds);

/**

*查出所有的accounts

*@paramsearch{username,realName}

*@parampage

*@parampageSize

*@return

*/

ListlistAcounts(AccountVOsearch,intpage,intpageSize);

/**

*根据一个系统ID联动的查询出相应的Account

*@paramsearch{id:

bizSystemId,username,realName}

*@parampage

*@parampageSize

*@return

*/

ListlistAccountBySystemId(AccountVOsearch,intpage,

intpageSize);

/**

*获取一个系统,查询出所有未包含此系统的Account

*@paramsearch{username,realName}

*@parampage

*@parampageSize

*@return

*/

ListlistAccountNotContainsSystemId(AccountVOsearch,intpage,

intpageSize);

/**

*传入accountId时,返回所有此ID未绑定的BizSystem

*@paramsearch{id:

accountId}

*/

ListlistBizSystemNotBindingAccount(AccountVOsearch,

intpage,intpageSize);

/**

*为指定ID的帐户设置其角色

*@paramaccountId

*@paramroleIds

*@author

iffiff1@">TylerChen

*@since2011-11-15

*/

voidsetRoles(LongaccountId,Long[]roleIds);

/**

*为指定ID的帐户添加角色

*@paramaccountId

*@paramroleIds

*@author

iffiff1@">TylerChen

*@since2011-11-15

*/

voidaddRole(LongaccountId,Long[]roleIds);

/**

*为指定ID的帐户删除角色

*@paramaccountId

*@paramroleIds

*@author

iffiff1@">TylerChen

*@since2011-11-15

*/

voidremoveRole(LongaccountId,Long[]roleIds);

}

com.redhat.auth.ejb.BizSystemApplication

publicinterfaceBizSystemApplication{

/**

*删除一个业务系统信息,在生产中请勿使用该接口

*@parambizSystemId

*@author

iffiff1@">TylerChen

*@since2011-11-15

*/

voidremoveBizSystem(LongbizSystemId);

/**

*创建一个系统

*@paramsystem

*@return

*/

BizSystemVOcreateBizSystem(BizSystemVOsystem);

/**

*保存修改

*@paramsystem

*@return

*/

BizSystemVOsaveBizSystem(BizSystemVOsystem);

}

com.redhat.auth.ejb.FunctionEntityApplication

publicinterfaceFunctionEntityApplication{

/**

*查询某节点全部子节点

*@paramparentId上级节点的ID

*@paramcurrentPage当前页

*@parampageSize分页大小

*@return

*/

ListqueryChildNode(LongparentId,intcurrentPage,

intpageSize);

/**

*通过ID获得功能实体信息

*@paramid

*@return

*@author

iffiff1@">TylerChen

*@since2011-11-15

*/

FunctionEntityVOgetFunctionEntityById(Longid);

/**

*创建一个功能实体

*@paramentity

*@return

*@author

iffiff1@">TylerChen

*@since2011-11-15

*/

FunctionEntityVOcreateFunctionEntity(FunctionEntityVOentity);

/**

*更新一个功能实体

*@paramentity

*@return

*@author

iffiff1@">TylerChen

*@since2011-11-15

*/

FunctionEntityVOupdateFunctionEntity(FunctionEntityVOentity);

/**

*删除一个功能实体

*@paramid

*@author

iffiff1@">TylerChen

*@since2011-11-15

*/

voiddeleteFunctionEntityById(Longid);

/**

*获得功能实体的记录数

*@paramsearch

*@return

*@author

iffiff1@">TylerChen

*@since2011-11-15

*/

LonggetCount(FunctionEntityVOsearch);

/**

*查询功能实体信息

*@paramsearch{id,name,alias,status}

*@paramcurrentPage当前页

*@parampageSize分页大小

*@return

*@author

iffiff1@">TylerChen

*@since2011-11-15

*/

ListqueryAllByPage(FunctionEntityVOsearch,

intcurrentPage,intpageSize);

/**

*增加/解除功能实体关联关系

*@paramid

*@paramids

*/

voidsetRelevance(longrscId,longdestId);

/**

*更新功能实体状态

*@paramFunctionEntity

*@paramstatus

*/

voidchangStatus(Longid,intfunctionEntityStatus);

/**

*获取默认父实体,不存在则创建

*@return

*/

FunctionEntityVOgetDefaultRootFunctionEntity();

}

com.redhat.auth.ejb.FunctionEntityTypeApplication

publicinterfaceFunctionEntityTypeApplication{

/**

*保存/增加功能实体类型

*@paramtype

*@return

*@author

iffiff1@">TylerChen

*@since2011-11-15

*/

FunctionEntityTypeVOsave(FunctionEntityTypeVOtype);

/**

*获得一个功能实体类型

*@paramid

*@return

*@author

iffiff1@">TylerChen

*@since2011-11-15

*/

FunctionEntityTypeVOget(longid);

/**

*删除一个功能实体类型

*@paramid

*@author

iffiff1@">TylerChen

*@since2011-11-15

*/

voiddelete(longid);

}

com.redhat.auth.ejb.RoleApplication

publicinterfaceRoleApplication{

/**

*根据ID查询role对象

*@paramid

*@return

*/

RoleVOgetRoleById(Longid);

/**

*创建一个角色

*@paramrole

*@return

*/

RoleVOcreateRole(RoleVOrole);

/**

*更新一个角色

*@paramrole

*@return

*/

RoleVOupdateRole(RoleVOrole);

/**

*删除一个角色对象

*@paramid

*/

voiddeleteRoleById(Longid);

/**

*分页查询角色列表

*@paramsearch{name,status}

*@paramcurrentPage

*@parampageSize

*@return

*/

ListqueryAllByPage(RoleVOsearch,intcurrentPage,intpageSize);

/**

*统计匹配记录数

*@paramsearch

*@return

*/

LonggetCount(RoleVOsearch);

/**

*按功能实体funIds集合给角色id进行权限分配

*@paramcurrentRole

*@paramfunIds

*@return

*/

voidsetPermissions(Longid,Long[]funIds);

/**

*按功能实体funIds集合给角色id进行权限分配

*@paramcurrentRole

*@paramfunIds

*@return

*/

voidremovePermissions(Longid,Long[]funIds);

/**

*按功能实体funIds集合给角色id进行权限分配

*@paramcurrentRole

*@paramfunIds

*/

voidaddPermissions(Longid,Long[]funIds);

/**

*状态设置

*@paramrole

*@paramstatus

*/

voidchangeStatus(Longid,introleStatus);

}

com.redhat.auth.ejb.SecurityStrategyApplication

publicinterfaceSecurityStrategyApplication{

/**

*删除一个安全策略

*@paramid

*@author

iffiff1@">TylerChen

*@since2011-11-15

*/

voiddeleteSecurityStrategy(Longid);

/**

*新增/保存一个安全策略

*@paramstrategy

*@return

*@author

iffiff1@">TylerChen

*@since2011-11-15

*/

SecurityStrategyVOsaveSecurityStrategy(SecurityStrategyVOstrategy);

/**

*获得所有的安全策略

*@return

*@author

iffiff1@">TylerChen

*@since2011-11-15

*/

SecurityStrategyVOloadSecurityStrategy();

}

4.接口使用说明

所需要关注的接口有:

com.redhat.auth.ejb.AccountApplication

com.redhat.auth.ejb.FunctionEntityTypeApplication

com.redhat.auth.ejb.FunctionEntityApplication

com.redhat.auth.ejb.RoleApplication

在Action层中获得接口

com.redhat.auth.ejb.AccountApplication

@Autowired

com.redhat.auth.ejb.AccountApplicationramsAccountApplication

com.redhat.auth.ejb.FunctionEntityTypeApplication

@Autowired

com.redhat.auth.ejb.FunctionEntityTypeApplicationramsFunctionEntityTypeApplication

com.redhat.auth.ejb.FunctionEntityApplication

@Autowired

com.redhat.auth.ejb.FunctionEntityApplicationramsFunctionEntityApplication

com.redhat.auth.ejb.RoleApplication

@Autowired

com.redhat.auth.ejb.RoleApplicationramsRoleApplication

例子:

为帐户添加权限

AccountVOaccount=null;

RoleVOrole=null;

FunctionEntityTypeVOtype=null;

FunctionEntityVOentity=nul

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学案例设计

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1