shiro是纯java的权限管理框架,可以处理认证、权限、加密等标准需求。
shiro的思路就是给控制处理。封装处理的其实很不错,使用起来很方便。
但是,使用shiro得了解一些它的基本特点。
=======================================
一、shiro权限模型
(1)配置之前,需要知道基本的权限控制概念。这里使用数据库模型控制。【用户-角色-权限】
(2)权限表--sys_permission
(3)角色表- sys_role
(4)角色-权限-对应表 sys_role_permission
二、配置文件ShiroConfig
(1)添加依赖
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring</artifactId>
<version>${shiro.version}</version>
</dependency>
(2)创建配置类:ShiroConfig.java
(3)配置过滤器
1、设置核心 2、设置登录页(登录失败)3、设置首页(登录成功)4、自定义过滤器-logoutFilter 5、自定义过滤器-restfulFilter 6、加载自定义过滤器7、 为默认过滤器设置参数
注:当运行一个Web应用程序时,Shiro将会创建一些有用的默认Filter实例。
/**
* anon---------------org.apache.shiro.web.filter.authc.AnonymousFilter 没有参数,表示可以匿名使用。
* authc--------------org.apache.shiro.web.filter.authc.FormAuthenticationFilter 表示需要认证(登录)才能使用,没有参数
* authcBasic---------org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter 没有参数表示httpBasic认证
* logout-------------org.apache.shiro.web.filter.authc.LogoutFilter
* noSessionCreation--org.apache.shiro.web.filter.session.NoSessionCreationFilter
* perms--------------org.apache.shiro.web.filter.authz.PermissionAuthorizationFilter 参数可以写多个,多个时必须加上引号,并且参数之间用逗号分割,例如/admins/user/**=perms["user:add:*,user:modify:*"],当有多个参数时必须每个参数都通过才通过,想当于isPermitedAll()方法。
* port-