`
y806839048
  • 浏览: 1126387 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

shiro的权限配置特征

阅读更多

 

shiro的权限加载从上到下,按照map的特性,key(url相同的会被下面覆盖掉),利用这种特性,可以在数据库中设好其为菜单,在管理员设置好了权限内的菜单之后,其就在权限控制中,而且会显示,(要在权限控制中的先要有一个角色(管理员)勾选好),至于需要显示的菜单有不希望有

权限控制的可以在动态加载最后静态设置一次覆盖掉

同时注意静态资源不可纳入权限的控制内,

在最后设置/**(余下的)都进入权限控制(这样设置的必要是所有的地址(除了静态资源)都纳入了shiro,这样任何一个请求方法都会拿到shrio的上下文及其中的用户信息,不会出现有的求情,拿不到shiro登录信息,

做不了相应业务需求报错null

)设置anon也有这种效果---不需要登录,有shiro上下文

 

 

 

 

 

/**

     * ShiroFilterFactoryBean 处理拦截资源文件问题。

     * 注意:单独一个ShiroFilterFactoryBean配置是或报错的,因为在

     * 初始化ShiroFilterFactoryBean的时候需要注入:SecurityManager

     *

     Filter Chain定义说明

     1、一个URL可以配置多个Filter,使用逗号分隔

     2、当设置多个过滤器时,全部验证通过,才视为通过

     3、部分过滤器可指定参数,如perms,roles

     *

     */

 public ShiroFilterFactoryBean shirFilter(SecurityManager securityManager){

        System.out.println("ShiroConfiguration.shirFilter()");

        ShiroFilterFactoryBean shiroFilterFactoryBean  = new ShiroFilterFactoryBean();

 

        // 必须设置 SecurityManager

        shiroFilterFactoryBean.setSecurityManager(securityManager);

        // 如果不设置默认会自动寻找Web工程根目录下的"/login.jsp"页面

        shiroFilterFactoryBean.setLoginUrl("/login");

        // 登录成功后要跳转的链接

        shiroFilterFactoryBean.setSuccessUrl("/index");

        //未授权界面;

        shiroFilterFactoryBean.setUnauthorizedUrl("/403");

        //拦截器.

        Map<String,String> filterChainDefinitionMap = new LinkedHashMap<String,String>();

 

        //配置退出 过滤器,其中的具体的退出代码Shiro已经替我们实现了

        filterChainDefinitionMap.put("/logout", "logout");

        filterChainDefinitionMap.put("/css/**","anon");

        filterChainDefinitionMap.put("/js/**","anon");

        filterChainDefinitionMap.put("/img/**","anon");

        filterChainDefinitionMap.put("/font-awesome/**","anon");

        filterChainDefinitionMap.put("/favicon.ico","anon");

        filterChainDefinitionMap.put("/users/reecover","anon");

        //<!-- 过滤链定义,从上向下顺序执行,一般将 /**放在最为下边 -->:这是一个坑呢,一不小心代码就不好使了;

        //<!-- authc:所有url都必须认证通过才可以访问; anon:所有url都都可以匿名访问-->

        //自定义加载权限资源关系

        List<Resources> resourcesList = resourcesService.queryAll();

         for(Resources resources:resourcesList){

 

            if (StringUtil.isNotEmpty(resources.getResurl())) {

                String permission = "perms[" + resources.getResurl()+ "]";

                filterChainDefinitionMap.put(resources.getResurl(),permission);

            }

        }

//        filterChainDefinitionMap.put("/**", "authc");

        filterChainDefinitionMap.put("/rule/**","anon");

        filterChainDefinitionMap.put("/urule/**","anon");

        filterChainDefinitionMap.put("/urule/loadknowledge","anon");

        filterChainDefinitionMap.put("/**", "authc");

 

 

        shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);

        return shiroFilterFactoryBean;

    }

 

 

 

 

 

分享到:
评论

相关推荐

    shiro权限案例demo

    在这个"shiro权限案例demo"中,我们将深入探讨Shiro如何实现用户权限的管理。 首先,让我们了解Shiro的核心组件: 1. **Subject**:是Shiro的中心概念,代表了当前“安全的用户”。它提供了进行认证、授权、会话...

    Apache shiro权限控制基础配置代码

    在本文中,我们将深入探讨Apache Shiro的基础配置和代码实现,以帮助你理解如何有效地使用Shiro进行权限控制。 **1. Shiro架构组件** Shiro的核心组件包括:Subject、Realms、Caches、Session Manager、...

    spring boot+shiro 权限认证管理案例

    Spring Boot 和 Apache Shiro 的整合是企业级应用中常见的权限认证和安全管理方案。Spring Boot 提供了简化 Java 应用程序开发的框架,而 Shiro 是一个轻量级的安全框架,专注于身份验证、授权、会话管理和加密。...

    shiro权限管理案例加文档

    在这个“shiro权限管理案例加文档”中,我们很可能会找到关于如何在实际项目中应用Shiro进行权限控制的详细教程和实例。 **一、Shiro基础** Shiro的核心组件包括:Subject(主体)、Realms(域)、Cryptography...

    Shiro权限管理 的jar包 ,一些example ,shiro资料笔记与核心单词

    在本文中,我们将深入探讨Shiro权限管理的相关知识点,以及如何利用它来实现高效的安全控制。 1. **Shiro基础概念** - **身份验证(Authentication)**:确认用户身份的过程,通常涉及用户名和密码的校验。 - **...

    Springboot+shiro权限管理

    本文将深入探讨"Springboot+shiro权限管理"的主题,旨在提供最详尽、最清晰的理解路径。 首先,Spring Boot 是一个基于 Spring 框架的轻量级开发工具,它简化了初始化、配置以及运行Spring应用程序的过程。Spring ...

    Ehcache缓存框架整合Spring和shiro权限配置

    缓存可以提高查询数据性能, 对同一批数据进行多次查询时, 第一次查询走数据库, 查询数据后,将数据保存在内存中,第二次以后查询 可以直接从内存获取数据,而不需要 和数据库进行交互。

    shiro权限管理示例

    本示例将深入讲解Shiro在权限管理中的应用。 首先,我们要理解Shiro的核心概念。`认证`是验证用户身份的过程,通常涉及用户名和密码的匹配。`授权`则是确定用户是否拥有执行特定操作的权限,即权限管理。Shiro通过...

    ssm-shiro权限管理(二)

    在“ssm-shiro权限管理(二)”中,我们将深入探讨如何在Shiro的基础上进一步优化登录流程、实现缓存管理和动态权限分配。Shiro是一个强大且易用的Java安全框架,提供了认证、授权、会话管理和加密等功能,为应用...

    shiro权限框架示例

    在这个"shiro权限框架示例"中,我们可以深入学习Shiro的核心功能及其在实际项目中的应用。 1. **Shiro框架介绍** Apache Shiro 并非一个完整的安全框架,而是专注于应用程序的安全控制层,它不涉及网络协议或底层...

    SSM+Shiro权限管理Demo

    SSM+Shiro权限管理Demo是一个综合性的项目实例,它结合了Spring、Spring MVC(SSM)和Apache Shiro框架来实现一个完善的权限控制体系。这个项目不仅涉及到后端的权限设计,还涵盖了前端页面的展示,使得用户界面与...

    vue与shiro结合实现权限按钮

    1. **配置Shiro**:在后端服务器上,我们需要配置Shiro的Web环境,包括 Realm(域)的实现,用于从数据库或其他数据源加载用户、角色和权限信息。同时,设置Filter Chain,使Shiro能够拦截请求并执行权限校验。 2. ...

    ssm-shiro权限管理(一)

    SSM-Shiro权限管理是Java Web开发中一种常见的权限控制框架集成方案,它结合了Spring、SpringMVC、MyBatis以及Apache Shiro这四个组件,实现了一个完整的权限管理系统。在本文中,我们将深入探讨如何将这四个组件...

    shiro权限管理类项目框架

    在这个"shiro权限管理类项目框架"中,我们将深入探讨 Shiro 如何帮助我们实现权限控制。 Shiro 的核心组件包括: 1. **认证**:这是验证用户身份的过程。在 Shiro 中,我们可以创建一个 `Subject` 对象代表当前...

    SpringBoot 集成 Shiro 实现动态uri权限

    SpringBoot集成Shiro实现动态URI权限是一个常见的权限管理实践,主要目的是为了实现更灵活、更安全的用户访问控制。在Web应用中,权限控制通常包括角色管理、菜单管理、操作权限(URI)管理等,而动态URI权限则允许...

    Shiro权限框架文档

    该链接指向的博文是关于如何在基于Spring框架的Web应用中进行Shiro权限配置的详细介绍。 标签中给出了“源码”和“工具”,表明文档中可能包含对Shiro框架源码的解读,以及如何将其作为工具在实际开发中使用。 ...

    ssm+shiro权限框架

    SSM+Shiro权限框架是Java Web开发中常用的一种安全控制解决方案,主要结合了Spring、Spring MVC、MyBatis和Apache Shiro四个组件。这个框架提供了全面的权限管理功能,包括用户认证、授权、会话管理和安全性日志等。...

    Shiro权限基础框架

    1. **安装与配置**:介绍如何在项目中引入Shiro依赖,配置Shiro的核心组件,如SecurityManager。 2. **Shiro组件**:Shiro包含多个关键组件,如Subject(代表当前用户)、Realms(连接应用和安全数据源的桥梁)、...

    shiro权限框架文档

    角色则是由权限组成,Shiro的权限模型非常灵活,可以基于字符串表达式来匹配一个或多个操作。 Shiro的会话管理提供了完整的会话生命周期管理,包括会话的创建、销毁、失效、验证、休眠、激活等。Shiro支持对Web、...

    Shiro权限框架由浅入深讲解教程课件

    2. **配置 Shiro**:创建一个 Spring 配置类,如 `ShiroConfig`,并定义 SecurityManager 和 Realm。SecurityManager 可以通过 `DefaultWebSecurityManager` 创建,并设置 Realm。Realm 的配置可以根据具体认证和...

Global site tag (gtag.js) - Google Analytics