security.xml
<?xml version="1.0" encoding="GBK" standalone="no" ?>
<!DOCTYPE security SYSTEM "security.dtd">
<security>
<!--
初始化:
1.读入所有操作
2.读入所有角色连同角色的操作
3.读入所有用户连同用户的操作
判断一个用户的权限:
1.取action 的 id
2.取用户所属的角色
3.判断角色是否允许 action,安全起见,禁止的优先级高过允许
4.1 允许,判断用户是否有禁止该 action
4.2 禁止,判断用户是否有允许该 action
注:
1.disable:默认值为 false,这个属性不是必须的,表示操作是否被禁止
例如用户limitguest,本来属于 role 4,有viewuser的权限,但是disable="true"就不能用了
-->
<!--操作-->
<actions>
<action name="all" id="0" display="所有"/>
<action name="signin" id="1" display="登录"/>
<action name="signoff" id="2" display="注销"/>
<action name="modifyselfpass" id="3" display="修改密码"/>
<action name="modifyselfinfo" id="4" display="修改信息"/>
<action name="newuser" id="5" display="新建用户"/>
<action name="deluser" id="6" display="删除用户"/>
<action name="modifyuser" id="7" display="修改用户信息"/>
<action name="viewuser" id="8" display="查看用户信息"/>
</actions>
<!--角色-->
<roles>
<role name="admin" id="1" display="管理员">
<role-action id="0"/>
</role>
<role name="manager" id="2" display="经理">
<role-action id="1 2 3 4"/>
<role-action id="5" disable="true"/>
</role>
<role name="employee" id="3" display="普通员工">
<role-action id="1 2 3 4"/>
</role>
<role name="guest" id="4" display="来宾">
<role-action id="8"/>
</role>
</roles>
<!--用户-->
<users>
<user name="admin" id="1" password="admin" display="管理员" role="1 2"/>
<user name="wuyou" id="2" password="wuyou" display="吴悠" role="2 3"/>
<user name="limin" id="3" password="libo" display="李明" role="3"/>
<user name="guest" id="4" display="来宾" role="4"/>
<user name="limitguest" id="4" display="受限来宾" role="4">
<user-action id="8" disable="true"/>
</user>
</users>
</security>
security.dtd
<?xml version="1.0" encoding="GBK" ?>
<!--声明一个实体-->
<!ENTITY % standardAttribute
"id NMTOKEN #REQUIRED name NMTOKEN #REQUIRED display CDATA #REQUIRED"
>
<!ELEMENT security (actions,roles,users)>
<!ELEMENT actions (action+)>
<!ELEMENT roles (role+)>
<!ELEMENT users (user+)>
<!ELEMENT action EMPTY>
<!ELEMENT role (role-action*)>
<!ELEMENT user (user-action*)>
<!ELEMENT role-action EMPTY>
<!ELEMENT user-action EMPTY>
<!ATTLIST action %standardAttribute;>
<!ATTLIST role %standardAttribute;>
<!ATTLIST user
%standardAttribute;
password NMTOKEN #IMPLIED
role NMTOKENS #REQUIRED
>
<!ATTLIST role-action
id NMTOKENS #REQUIRED
disable (true | false) "false"
>
<!ATTLIST user-action
id NMTOKENS #REQUIRED
disable (true | false) "false"
>