为用户添加权限

首先登陆位置:

public void login()
    {
        String loginAccount = ((String[])ActionContext.getContext().getParameters().get("loginAccount"))[0];
       
        User user = userService.getByAccount(loginAccount);
        ActionContext.getContext().getSession().put("login_user",user);
        Role role = user.getRole();
        List<Right> rights = rightService.getRightFunctionByRole(role.getRoleId());
        Map<String,String> rightMap = new HashMap<String,String>();
        for(Right right : rights)
        {
            rightMap.put(right.getFunction(), right.getFunction());
        }
        ActionContext.getContext().getSession().put("rightMap", rightMap);
        try
        {
            if(user.getRole().getRoleName().indexOf("管理员") >= 0)
              {
                  getResponse().getWriter().write("0");
              }
              else
              {
                  getResponse().getWriter().write("7");
              }
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }

}

设置getRightsByRole方法(如果LAZY设置成  lazy="true")

public List<Right> getRightsByRole(int roleId)
    {
        QueryHelper queryHelper = new QueryHelper(Role.class, "r");
        queryHelper.addCondition("roleId = ?", roleId);
        queryHelper.addOrderProperty("roleId", true);
        List<Object> parameters = queryHelper.getParameters();
        Query listQuery = getSession().createQuery(queryHelper.getListQueryHql());
        for(int i =0; i<parameters.size();i++)
        {
            listQuery.setParameter(i, parameters.get(i));
        }
        List<Role> roleList = listQuery.list();
        List<Right> rightList = new ArrayList<Right>();
        
        if(0 != roleList.get(0).getRights().size())
        {
            for(Right right : roleList.get(0).getRights())
            {
                rightList.add(right);
            }        
            return rightList;
        }
        return null;
    }

设置过滤器

public class MyInterceptot extends AbstractInterceptor
{
    
    private static final long serialVersionUID = 6645338921893814285L;
    @SuppressWarnings("unchecked")
    @Override
    public String intercept(ActionInvocation invocation) throws Exception
    {
        
        ActionContext actionContext = invocation.getInvocationContext();
        ServletContext context = (ServletContext) actionContext.get(StrutsStatics.SERVLET_CONTEXT);
        ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(context);
        UserService userService = (UserService)ctx.getBean("userServiceImpl");
        
        String functionName = actionContext.getName();//获取访问的action及方法名
        Map<String, Object> session = actionContext.getSession();
        User user = (User) session.get("login_user");
        System.out.println("访问路径:" + functionName);
        Map<String, String> rightMap = (Map<String, String>)session.get("rightMap");
        if(null != user)
        {
            if(null != rightMap.get(functionName) || "admin".equals(user.getLoginAccount()))
            {
                return invocation.invoke();
            }
           else
           {
                return "no_right";
           }
        }
        else
        {
            return Action.LOGIN;
        }
    }
}

时间: 2024-10-05 04:55:54

为用户添加权限的相关文章

为Kubernetes dashboard访问用户添加权限控制

为Kubernetes dashboard访问用户添加权限控制 [TOC] 1. 需求 在开发环境给开发人员创建应用部署管理权限,可以使用dashboard的token和kubeconfig文件登录,并在开发人员机器上安装kubectl命令,可以使用kubectl port-forward命令. 2. 方案 因为我们用到了dashboard和kubeapps,所以他们的rbac权限都要分配. 创建namespace:dev 创建ServiceAccount:dev-user1 给相应权限,并绑定

MySQL 针对某一个用户 添加权限

pj 是用户名  pjd是数据库名  pj8520是数据库名 grant all privileges on pjd.* to 'pj'@'%' identified by 'pj8520' with grant option; 然后刷新权限(提交) flush privileges; 完事! 原文地址:https://www.cnblogs.com/MegaByte/p/12254374.html

mysql给用户添加权限

mysql>GRANT SELECT,INSERT,UPDATE,DELETE ON [db_name].* TO [username]@[ipadd] identified by '[password]'; [username]:远程登入的使用者代码 [db_name]:表示欲开放给使用者的数据库称 [password]:远程登入的使用者密码 ep: mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON xxx.* TO " identified 

MySQL8.0添加用户和权限

参考代码: -- 使用mysql数据库 USE mysql -- 创建用户 CREATE USER myuser IDENTIFIED BY 'mypass'; -- 查看用户 SELECT user, host, authentication_string FROM USER WHERE USER='myuser'; -- 修改用户密码update user set authentication_string='' where user='myuser';ALTER USER 'myuser'

RBAC用户角色权限设计方案

转自http://www.cnblogs.com/zwq194/archive/2011/03/07/1974821.html RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成“用户-角色-权限”的授权模型.在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系.(如下图) 角色是什么?可以理解为一定数量的权限的集合,权限的载体.例如:一个论坛系统

MySQL创建数据库用户、权限设置

创建数据库用户 添加权限 类别 详细解示 基本语法 grant 权限 on 库.表 to '用户'@'主机' identified by '密码'; 示例 grant select, insert on test.* to 'liwenkai'@'localhost' identified by '4311'; 示例说明 给予liwenkai用户,在本机连接test库所有表的权限.操作的这些表具有查询和写入权限 注:可以针对一个用户增加多条权限. 删除权限 类别 详细解示 基本语法 revoke

MySQL如何新增用户(权限),改密码,删除用户

查看MYSQL数据库中所有用户mysql>use mysql;mysql>select host, user from user;或者mysql> SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;查看数据库中具体某个用户的权限mysql>show grants for [email protected]: 1.使用 root 管理员登陆 mysqlmysql -u

linux 添加用户、权限

linux 添加用户.权限 # useradd –d /usr/sam -m sam 此命令创建了一个用户sam,其中-d和-m选项用来为登录名sam产生一个主目录/usr/sam(/usr为默认的用户主目录所在的父目录). 假设当前用户是sam,则下面的命令修改该用户自己的口令: # passwd Old password:****** New password:******* Re-enter new password:******* 如果是超级用户,可以用下列形式指定任何用户的口令: #

服务启动错误1053,一例解决方案(给用户添加NetworkService权限)

WIndows XP的服务中,有一个服务需要以NT  AUTHORITY/NetworkService用户启动,但怎么也启动不起来,使用本地系统帐户启动没有任何问题,但是换成NetworkService就启动不了,报“错误1053:服务没有及时相应启动或控制请求”.找不到解决方案,我在另一台电脑上好好的,怎么到了这台电脑就不行了呢? 后来,寻到一个网页(转)用户 'nt authority/network service' 登录失败,对阿,这两台电脑硬盘分区格式不一样,那台能用的是Fat32分区