javaweb开发中的权限管理的方法

(1)最近,上课老师讲了一种web后台开发控制权限管理的方法,基于过滤器实现鉴权,解释:
先说下过滤器:请求来的时候,先通过滤器进行拦截,过滤器中有特定的方法doFilter(),来对拦截的请求进行处理,若满足条件(包含用户有跳转到下一个页面的权限),则继续向下执行,否则重定向到错误页面,或者其他提示页面。
通过过滤器进行权限控制有两种主要的方法,最常用分目录
例如在webapps下:admin文件夹,user文件夹,其中,不需要鉴权的界面,直接放在根目录下即可,如图:
这里写图片描述

用户在访问时, 过滤器进行判断,拥有admin权限(session中写有从数据库中读出来的写有用户信息的标志 如:request.getSession().setAttribute(“adminflag”, “ok”);)

FilterAdmin:

package com.xupt.ttms.filter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/** 
 * @author wangpei 
 * @version 创建时间:2016年11月2日 下午7:26:25 
 * 类说明 
 */

@WebFilter("/admin/*")
public class FilterAdmin implements Filter {


    public FilterAdmin() {
     }


    public void destroy() {
    }


    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        HttpServletRequest req=(HttpServletRequest)request;
        HttpServletResponse resp=(HttpServletResponse)response;
        String s=(String)req.getSession().getAttribute("adminflag");
        if(s!=null&&s.equalsIgnoreCase("ok")){
            chain.doFilter(request, response); 

        }
        else{ 
            request.setAttribute("desc", "对不起,您无权访问!!!");
            RequestDispatcher rd = request.getRequestDispatcher("/error.jsp");
            rd.forward(request, response);

        } 
    }


    public void init(FilterConfig fConfig) throws ServletException {
    }

}

(2)通过开原框架shiro做
这个我只是处于初级会用的地步,还得继续往下深看,等看通了,再写。具体配置shiro我以前写过,可以看。

分目录存储的具体例子http://download.csdn.net/detail/wangpei555/9687729
原文地址:https://www.cnblogs.com/wangxiaopei/p/8551268.html