现在的位置: 首页 > 综合 > 正文

权限组件之三(角色)

2012年12月10日 ⁄ 综合 ⁄ 共 1950字 ⁄ 字号 评论关闭

    首先,我定义了一个角色接口,可以从其中取出其的各种属性.代码如后面所示.

    然后定义一个AbstractRoleRole共性的东西进行处理.所有的取属性的方法都已实现.用户只要根据实现情况继承AbstractRole把自己要定义的属性进行处理即可.(因为每个系统的用户都会有不同的属性,所以留成抽象类供使用者自己扩展). 只要初始化变量description, name ,id, prop,users(可能是群组), permissionMap即可.

 

    最后定义了一个类XMLRole来实现具体的Role作随包的一个Role供一般使用者使用.不建议直接使用XMLRole,因为以后的版本可能会重写该类.如果要使用的话可以把该类改名为自己的类即可.

 

    这部分涉及到了一个ResourceLib,该类中存是我自己定义的存储各种资源配置用的类,可以直接使用.

 

======================Role.java===============================

package org.fswan.permission;

import org.fswan.Identity;

import java.util.Properties;

import org.fswan.workflow.exception.CantFoundIDException;

public interface Role

{

    /**

     * 获取角色ID

     * @return

     */

    public Identity getId();

    /**

     * 获取角色的名称

     * @return 名称

     */

    public String getName();

    /**

     * 获取角色的描述

     * @return 描述

     */

    public String getDescription();

    /**

     * 获取角色的所有的用户()

     * @return 用户

     */

    public User[] getUsers() throws CantFoundIDException;

    /**

     * 角色的属性

     * @return 属性值

     */

    public Properties getProperties();

   

    /**

     * 获取用户用作权限判断的属性

     * @param prop 权限属性

     * @return 属性值

     */

    public Object getPermissionProp(String prop);

}

=======================AbstractRole===================================

package org.fswan.permission;

 

import java.util.HashMap;

import java.util.Properties;

 

import org.fswan.Identity;

import org.fswan.workflow.exception.IdentityMappingError;

 

public class AbstractRole implements Role

{

    /**

     * 描述

     */

    protected String description ;

    /**

     * 名称

     */

    protected String name;

    /**

     * 标识

     */

    protected Identity id;

    /**

     * 属性

     */

    protected Properties prop;

    /**

     * 该角色所有用户的标识

     */

    protected Identity[] users;

    /**

     * 权限属性表

     */

    protected HashMap permissionMap;

    /* (non-Javadoc)

     * @see org.fswan.permission.Role#getDescription()

     */

    public String getDescription()

    {

        return description;

    }

 

    /* (non-Javadoc)

     * @see org.fswan.permission.Role#getId()

     */

    public Identity getId()

    {

        return id;

    }

 

    /* (non-Javadoc)

     * @see org.fswan.permission.Role#getName()

抱歉!评论已关闭.