首页 | j2ee | j2me | j2se | java代码 | JAVA高级 | java资讯 | 认证考试 | 实用技巧
  当前位置:Java教程网>JAVA基础>文章内容
struts2中用拦截器实现权限管理
来源: 作者: 发布时间:2007-12-18  
一个权限系统建立起来是没什么问题的,问题在于如何能够很好地利用起来。
  以前做struts1的时候,由于spring的AOP也不是那么好用,所以最后只好将权限应用部分写在了action中,这样,总是感觉到有那么些不爽。
  记得以前用ofbiz的时候,它的权限应用就很简单了,mini-lang中只要添加一个标签就可以了,当时没细细看它的具体实现,到了用webwork2的时候,看到webwork2的拦截器,再想想ofbiz中的,也不就是个拦截器么。
  struts2叫是叫"struts",但是很多还是webwork2中的,前两天打算在新架构中将权限管理放进去,由于我看struts2附带例子的时候看到拦截器中可以有初始化参数,所以就想把权限中一些内容通过初始化参数传递进去,后来试了下,是可行的,这样就方便了。
  具体的权限系统是怎样的,我就不再这里赘述了,只说说拦截器部分。
  下面是一个action配置文件的片断:


        <interceptors> 
            <interceptor name="checkAccess" class="cn.wsrf.perms.PermsInterceptor"/>
        </interceptors> 
        <global-results>
            <result name="accessDeny">/accessDeny.ftl</result>             
        </global-results>  
       
        <action name="index">
         <interceptor-ref name="checkAccess">
          <param name="whiteList">test1,test2</param>
          <!--param name="allowUserType">super,system</param>
          <param name="permString">1|发布产品|read,insert</param-->
         </interceptor-ref>
            <result>index.ftl</result>
        </action>

 

  至于怎么更好利用拦截器我也不多说了,上面的“whiteList”、“allowUserType”、“permString”是3种权限验证方式,这是我写的,各人可以随意。
  下面是拦截器的代码:

package cn.wsrf.perms;

import java.util.Map;

import org.apache.log4j.Logger;

import cn.wsrf.pojo.UserLogin;

import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

public class PermsInterceptor extends AbstractInterceptor
{
    /**
     * Logger for this class
     */
    private static final Logger logger = Logger
        .getLogger(PermsInterceptor.class);

    private String whiteList = null;
    private String allowUserType = null;
    private String permString = null;

    private static final String ACCESS_DENY = "accessDeny";

    public String getWhiteList()
    {
        return whiteList;
    }

    public void setWhiteList(String whiteList)
    {
        this.whiteList = whiteList;
    }

    public String getAllowUserType()
    {
        return allowUserType;
    }

    public void setAllowUserType(String allowUserType)
    {
        this.allowUserType = allowUserType;
    }

    public String getPermString()
    {
        return permString;
    }

    public void setPermString(String permString)
    {
        this.permString = permString;
    }

    public String intercept(ActionInvocation ai) throws Exception
(阅读次数:

共2页: 上一页 1 [2] 下一页
上一篇:Struts2拦截器的使用   下一篇:struts2拦截器介绍
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论
  热点文章
·jfreechar的使用
·一个JSF例子
·java中用TreeMap进行中文排序
·Java转义符
·java数组排序实例
·Java正则表达式初探
·javascript给二维数组赋值示例
·struts2标签学习
·spring入门之简单登陆例子
·简化spring数据源配置:创建自定
·Java在线教程与书籍推荐
·eXtremeComponents代码结构解析
·java反射机制详解
·java析构函数替代者finalize()解
·Java程序设计实验报告
·谈谈Spring持久层封装
·Java开发常用方法
·DWR学习
·Java排序:TreeMap,Set,List
·CAS 单点登录原理
  相关文章
·Struts2拦截器的使用
·struts2拦截器介绍
·JMX规范详解
·javax.servlet.http提供的HTTP S
·二维数组的排序
·Java开发者需坚守的10条准则
·IOC容器
·iText 介绍
·Subversion使用经验
·jcob 从word到pdf
·《JAVA编程思想》学习之Initiali
·一款非常专业Web报表工具软件
·单点登录原理
·CAS浅析
·CAS 单点登录原理
·Java开发中版权声明及类注释的自
·web services 中的传递 二进制
·一个SOA案例:工作申请系统
·java bean规范
·Java自定义事件
Power by DedeCms