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;
    }
    }

  • 相关阅读:
    any、some、all for sql
    Date CONVERT() 函数
    Config Database
    移动master 数据库
    使用 OpenRowSet 和 OpenDataSource 访问 Excel 972007
    动态管理视图和函数
    SQL Server 2005 Merge Replication Step by Step Procedure
    系统试图(返回表所有记录数及所有的 identity 列)
    js if without curly brackets bug All In One
    Web3 All In One
  • 原文地址:https://www.cnblogs.com/lihaiyang123/p/7594469.html
Copyright © 2011-2022 走看看