书签 分享 收藏 举报 版权申诉 / 15

类型struts权限控制.docx

  • 文档编号:23643422
  • 上传时间:2023-05-19
  • 格式:DOCX
  • 页数:15
  • 大小:41.69KB
");

      }

   }

   /**

    *特殊页面判断

    *是否需要判断权限,如客户端浏览、登录页面则不需要判断权限

    */

   protectedbooleannoFileUrl(Stringurl,HttpServletRequestrequest){

      //不需要权限验证的页面动作等

      Stringexclude="xx.jsp";

       //判断请求页面是否是特殊页面

      if(exclude.indexOf(url)>=0){

          returntrue;

      }

      returnfalse;

   }

}

Action权限过滤器permissiondoFilter

packagedao;

importjavax.servlet.Filter;

importjavax.servlet.FilterConfig;

importjavax.servlet.ServletException;

importjavax.servlet.ServletRequest;

importjavax.servlet.ServletResponse;

importjavax.servlet.FilterChain;

importjava.io.IOException;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpSession;

importjavax.servlet.http.HttpServletResponse;

importpo.login;

publicclasspermissiondoFilterimplementsFilter{

   //1,doFilter方法的第一个参数为ServletRequest对象。

   //此对象给过滤器提供了对进入的信息(包括表单数据、cookie和HTTP请求头)的完全访问。

   //第二个参数为ServletResponse,通常在简单的过滤器中忽略此参数。

   //最后一个参数为FilterChain,此参数用来调用servlet或JSP页。

   privateFilterConfigfilterConfig;

   privateFilterChainchain;

   privateHttpServletRequestrequest;

   privateHttpServletResponseresponse;

   publicvoiddestroy(){

       this.filterConfig=null;

   }

   publicvoidinit(FilterConfigfilterConfig)throwsServletException{

       this.filterConfig=filterConfig;

   }

   publicvoiddoFilter(ServletRequestservletRequest,ServletResponseservletResponse,

          FilterChainchain){

       this.chain=chain;

       this.request=(HttpServletRequest)servletRequest;

       //如果处理HTTP请求,并且需要访问诸如getHeader或getCookies等在ServletRequest中无法得到的方法,就要把此request对象构造成HttpServletRequest

       this.response=((HttpServletResponse)servletResponse);

      //获取当前页面文件名此处url为:

/Gzlkh/login.jsp

      Stringurl=request.getRequestURI();

      //此处截取的url为:

login.jsp

      url=url.substring(url.lastIndexOf("/")+1,url.length());

      try{

          //排除后台不作权限控制的页面名

          //登陆页面无需验证文件

           HttpSessionsession=request.getSession();

           //获取网站访问根目录

          StringaccessPath=request.getContextPath();

           loginst=(login)session.getAttribute("st");         

           if(noFileUrl(url,request)){//不需要判断权限的请求如登录页面,则跳过

               chain.doFilter(request,response);

           }elseif(st==null){

           response.sendRedirect(accessPath+"/login.jsp");//返回登陆页面(未登录或超时)

           }else{

             System.out.println(st.getRolename()+st.getUsername()+"-访问-"+url);

               verifyUrl(url,st);//判断当前user是否拥有访问此url的权限

           }                    

      }catch(Exceptionsx){

          sx.printStackTrace();

      }

   }

   /**

    *@paramurl

    *           当前请求的url

    *@paramuser

    *           当前登录用户

    *@throwsIOException

    *@throwsServletException

    */

   privatevoidverifyUrl(Stringurl,loginst)throwsIOException,ServletException{

       //获取user拥有的所有资源串

   Stringsturl=null;

   Stringurl1="";

   Stringurl2="";

   //考核结果页面

   Stringurl3="";

   //用户管理页面

   Stringurl4="";

   //权重配置页面

   Stringurl5="";

   //个人密码修改公共

   Stringurl6="";     

   sturl=url6;

        if("1".equals(st.getRcgzqx())){

       sturl=sturl+","+url1;

   }

       if("1".equals(st.getKhzbqx())){

       sturl=sturl+","+url2;

   }

       if("1".equals(st.getKhjgqx())){

       sturl=sturl+","+url3;

   }

       if("1".equals(st.getXtpzqx())){

       sturl=sturl+","+url4;

   }

       if("1".equals(st.getYhglqx())){

       sturl=sturl+","+url5;

   }

   if(sturl.indexOf(url)>=0){  

         System.out.println("有权访问!

");

       chain.doFilter(request,response);

           }else{

               System.out.println("无权限!

");

            response.setContentType("text/html;charset=GBK");

                response.getWriter().println("

100auto;text-align:

center;background-image:

url(images/bg.jpg);"

                                        +"font:

bold18px宋体;color:

#0066CC;vertical-align:

middle'>Sorry,您没有权限访问该资源!

");      

           }

   }

/**

    *是否需要判断权限,如客户端浏览、登录页面则不需要判断权限

    */

   protectedbooleannoFileUrl(Stringurl,HttpServletRequestrequest){

   Stringexclude="login.do";

       if(exclude.indexOf(url)>=0){

           returntru

配套讲稿:

如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

特殊限制:

部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

关 键  词:
struts 权限 控制
提示  冰豆网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:struts权限控制.docx
链接地址:https://www.bdocx.com/doc/23643422.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2008-2022 冰点文档网站版权所有

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

收起
展开