zoukankan      html  css  js  c++  java
  • 拦截器

    package com.cy.coo.config.shiro;

    import java.util.LinkedHashMap;
    import java.util.Map;

    import org.apache.shiro.mgt.SecurityManager;
    import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
    import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;


    /**
    * Shiro 配置
    *
    Apache Shiro 核心通过 Filter 来实现,就好像SpringMvc 通过DispachServlet 来主控制一样。
    既然是使用 Filter 一般也就能猜到,是通过URL规则来进行过滤和权限校验,所以我们需要定义一系列关于URL的规则和访问权限。
    *
    * @author Angel(QQ:412887952)
    * @version v.0.1
    */
    @Configuration
    public class ShiroConfiguration {

    /**
    * ShiroFilterFactoryBean 处理拦截资源文件问题。
    * 注意:单独一个ShiroFilterFactoryBean配置是或报错的,以为在
    * 初始化ShiroFilterFactoryBean的时候需要注入:SecurityManager
    *
    Filter Chain定义说明
    1、一个URL可以配置多个Filter,使用逗号分隔
    2、当设置多个过滤器时,全部验证通过,才视为通过
    3、部分过滤器可指定参数,如perms,roles
    *
    */
    @Bean
    public ShiroFilterFactoryBean shirFilter(SecurityManager securityManager){
    System.out.println("ShiroConfiguration.shirFilter");
    ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
    //必须设置SecurityManager
    shiroFilterFactoryBean.setSecurityManager(securityManager);

    //拦截器
    Map<String, String> filterChainDefinitionMap =new LinkedHashMap<String,String>();
    //配置退出过滤器,其中的具体的退出代码Shiro已经替我们实现了
    filterChainDefinitionMap.put("logout", "logout");
    //<!-- 过滤链定义,从上向下顺序执行,一般将 /**放在最为下边 -->:这是一个坑呢,一不小心代码就不好使了;
    //<!-- authc:所有url都必须认证通过才可以访问; anon:所有url都都可以匿名访问-->
    filterChainDefinitionMap.put("/**", "authc");
    // 如果不设置默认会自动寻找Web工程根目录下的"/login.jsp"页面
    shiroFilterFactoryBean.setLoginUrl("/login");
    // 登录成功后要跳转的链接
    shiroFilterFactoryBean.setSuccessUrl("/index");
    //未授权界面;
    shiroFilterFactoryBean.setUnauthorizedUrl("/403");
    shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);
    return shiroFilterFactoryBean;
    }
    @Bean
    public SecurityManager securityManager(){
    DefaultWebSecurityManager securityManager =new DefaultWebSecurityManager();

    return securityManager;
    }
    }

  • 相关阅读:
    win10使用Scoop软件包管理器,支持版本切换
    使用ddns-go实现本地IP或公网IP动态域名解析
    使用Frp实现内网穿透
    Win10开发环境搭建
    Java使用Jabba进行版本管理
    Win10将用户目录Users迁移到其他盘
    【测试开发】十五、接口测试-接口定义-实现接口编辑功能
    【测试开发】十四、接口测试-接口定义功能-前后端-实现新增
    【测试开发】十三、接口测试-接口定义功能-前端-实现动态增删表单
    【测试开发】十二、接口测试-实现接口列表功能-递归查询子节点下的接口
  • 原文地址:https://www.cnblogs.com/lihaiyang123/p/7594469.html
Copyright © 2011-2022 走看看