• 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
    
  • 相关阅读:
    ffmpeg显示视频
    眼见为实(1):C++基本概念在编译器中的实现
    在Windows系统上实现轻量级的线程间及进程间消息队列
    Intellij IDEA 2017 debug断点调试技巧与总结详解篇
    redis 全局命令 查看所有的键,删除键,检查键是否存在,获取过期时间,键的数据结构类型
    java.security.InvalidKeyException: IOException : Short read of DER length
    RSA解密报错java.security.spec.InvalidKeySpecException的解决办法
    IntelliJ IDEA全局内容搜索和替换
    RSA加密/解密 Decryption error异常解决
    java rsa 解密报:javax.crypto.BadPaddingException: Decryption error
  • 原文地址:https://www.cnblogs.com/wangxiaopei/p/8551268.html
Copyright © 2020-2023  润新知