粗颗粒度权限控制

粗颗粒度权限控制:采用过滤器和session来完成

粗颗粒度权限控制作用:使用过滤器完成粗颗粒度的权限控制,如果Session不存在就跳转到首页,如果存在可以通过URL链接访问到对应的操作。

实现:

第一步:先定义一个过滤器

public class SystemFilter implements Filter {

    /**web容器启动的时候,执行的方法*/

    //存放没有Session之前,需要放行的连接

    List<String> list = newArrayList<String>();

    public void init(FilterConfig config) throws ServletException {

        list.add("/index.jsp");

        list.add("/image.jsp");

        list.add("/system/elecMenuAction_menuHome.do");

    }

    /**每次访问URL连接的时候,先执行过滤器的doFilter的方法*/

    public void doFilter(ServletRequest req, ServletResponse res,

            FilterChain chain) throws IOException,ServletException {

        HttpServletRequest request =(HttpServletRequest) req;

        HttpServletResponse response= (HttpServletResponse) res;

        //获取访问的连接地址

        String path =request.getServletPath();

        //如果访问的路径path包含在放行的List的存放的连接的时候,此时需要放行

        if(list.contains(path)){

            chain.doFilter(request,response);

            return;

        }

        //获取用户登录的Session

        ElecUserelecUser = (ElecUser)request.getSession().getAttribute("globle_user");

        //放行

        if(elecUser!=null){

            chain.doFilter(request,response);

            return;

        }

        //重定向到登录页面

        response.sendRedirect(request.getContextPath()+"/index.jsp");

    }

    /**销毁*/

    public void destroy() {

 

    }

}

第二步:在文本容器中添加对应的过滤器

<!-- 自定义过滤器,要求添加到struts2过滤器的前面 -->

    <filter>

        <filter-name>SystemFilter</filter-name>

        <filter-class>cn.itcast.elec.util.SystemFilter</filter-class>

    </filter>

    <filter-mapping>

        <filter-name>SystemFilter</filter-name>

        <url-pattern>*.do</url-pattern>

        <url-pattern>*.jsp</url-pattern>

    </filter-mapping>

总结:粗颗粒的的权限控制

1.使用过滤器

2.在在过滤器中定义放行的连接,因为不是每个操作都会存在session(如:进入登录的界面、生成验证码的界面)

3.在过滤器中获取登陆后存放的Session,如果Session不为空,则放行,即可以操作定义的业务功能,如果Session为空,则挑转到登陆页面。

4.控制访问的系统必须要存在session


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值