权限的控制 shiro的使用
Posted islandlxl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了权限的控制 shiro的使用相关的知识,希望对你有一定的参考价值。
******shiro的使用
三大核心组件
Subject:即当前用户,在权限管理的应用程序里往往需要知道谁能够操作什么,谁拥有操作该程序的权利,shiro中则需要通过Subject来提供基础的当前用户信息,Subject 不仅仅代表某个用户,与当前应用交互的任何东西都是Subject,如网络爬虫等。所有的Subject都要绑定到SecurityManager上,与Subject的交互实际上是被转换为与SecurityManager的交互。
SecurityManager:即所有Subject的管理者,这是Shiro框架的核心组件,可以把他看做是一个Shiro框架的全局管理组件,用于调度各种Shiro框架的服务。作用类似于SpringMVC中的DispatcherServlet,用于拦截所有请求并进行处理。
Realm:Realm是用户的信息认证器和用户的权限人证器,我们需要自己来实现Realm来自定义的管理我们自己系统内部的权限规则。SecurityManager要验证用户,需要从Realm中获取用户。可以把Realm看做是数据源。
1 pom中导入shiro-core shiro-spring
<!-- shiro的开发包 --> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.2.3</version> </dependency> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.4.0</version> </dependency>
2 web.xml中导入拦截器:注意filter-name:shiroFilter要和spring整合shiro中的拦截器名字一致
<!-- 配置shiro的核心拦截器 --> <filter> <filter-name>shiroFilter</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> </filter> <filter-mapping> <filter-name>shiroFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
3.spring整合shiro的配置文件
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.3.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd"> <!-- 登录和权限范围 --> <bean id="shiroRealm" class="com.shiro.MenuRealm"></bean> <!-- 安全控制器 --> <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager"> <property name="realm" ref="shiroRealm" /> </bean> <!-- 注册所有权限 --> <bean id="menuChainDefinition" class="com.shiro.MenuChainDefinition"> <property name="urls"> <value> /login.jsp = anon /login.do = anon /logout = anon /index.jsp = user /showStudent.jsp =anon /showStudent2.jsp =anon /updateStudentView.jsp =anon </value> </property> </bean> <!-- 具体拦截功能,id要和web.xml里面过滤器名字一样 --> <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"> <property name="securityManager" ref="securityManager" /> <property name="loginUrl" value="/login.jsp" /> <property name="unauthorizedUrl" value="/error.jsp" /> <property name="filterChainDefinitionMap" ref="menuChainDefinition"></property> </bean> </beans>
4.编写数据库一共五张表,user , role user_role, menu, role_menu
5.pojo,映射文件, dao的编写
6.两个类的编写,shiro的登录权限范围shiroRealm,注册所有权限的类menuChainDefinition
以上是关于权限的控制 shiro的使用的主要内容,如果未能解决你的问题,请参考以下文章