• 单体权限


    在拦截器中,获取访问的路径,然后判断该路径是否需要控制;
    如果不需要控制,直接通过;否则,判断当前用户是否有访问该路径的权限,当前用户信息一般在登录成功后保存到session中。
    
    
    第一步设置放行拦截地址
    /**
     * Created by mis on 2016/7/30.
     * @author lvfang
     */
    @EnableWebMvc
    @Configuration
    public class WebAppConfig extends WebMvcConfigurerAdapter {
    
        //将拦截器注入容器
        @Bean
        HiseeInterceptor hiseeInterceptor(){
            return new HiseeInterceptor();
        }
    
        /**
         * 配置拦截器
         *
         * @param registry
         * @author lvfang
         */
        public void addInterceptors(InterceptorRegistry registry) {
    
            //这里参数是一个实现了HandlerInterceptor接口的拦截器
            registry.addInterceptor(hiseeInterceptor())
                    .addPathPatterns("/**")//需要拦截的请求
                    .excludePathPatterns("/user/login")
                    .excludePathPatterns("/user/exit");//不拦截的请求
    
       }
    }
    第二步设置拦截器
    
    public class BaseInterceptor  implements HandlerInterceptor {
    
        /**
         * 权限列表查询
         * @param permissionDomainRepository
         * @param url
         * @return
         */
    
    
      
            boolean falg = false;
        //获取session用户
            UserSession userSession = SpringUtil.getBean(UserSession.class);
      //登录状态
            boolean isLogin = userSession.isLogin();        
     //是否登录
            if(!isLogin){
                System.out.println("请登录 ... ...");
                return false;
            }
    
           //请求资源
            String url = request.getRequestURI(); 
            //对比查询权限
            Iterator<PermissionInfo> iterator = userSession .permissionInfos.iterator();
    
            while(iterator.hasNext()){
                PermissionInfo permissionInfo = iterator.next();
                if(permissionInfo.getpUrl().equals(url)){
                    falg = true;
                }
            }
            return falg;
        }
    }
    
    
    
    https://www.jianshu.com/p/ce146de530c8
  • 相关阅读:
    Mysql练习#1-建表
    Mysql学习笔记#7-范式
    Git学习笔记#9-标签
    Git学习笔记#8-操作冲突
    Git学习笔记#7-分支操作
    Git学习笔记#6-远程仓库(GitHub)
    Git学习笔记#5-文件删除
    Git学习笔记#4-版本回退
    Git学习笔记#3-修改文件与撤销
    免费分享老男孩全栈9期视频,共126天
  • 原文地址:https://www.cnblogs.com/javakangkang/p/14000621.html
Copyright © 2020-2023  润新知