shiro简介:Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。
1.创建一个普通的spring-boot项目
2.导入shiro的start依赖
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring-boot-web-starter</artifactId>
<version>1.4.1</version>
</dependency>
导入mybatis-plus的依赖
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.2</version> </dependency>
3.修改配置
需要注入一个Realm的Bean对象
anon:无需认证即可访问。
logout:登出(退出登录)
user:记住我的(登录后即可访问)
在yml或者properties文件中需要加以下配置,其意义则是当被拦截后则会自动跳到定义的html界面
ShiroRealm类,继承了AuthorizingRealm,以及使用mybatis-plus对数据库进行操作,分别是获取用户的信息和其授权信息分别存入SimpleAuthenticationInfo和simpleAuthorizationInfo两个类中,doGetAuthenticationInfo方法中的密码shiro会在返回SimpleAuthenticationInfo的时候进行校验
整个流程对外主要暴露的是一个Subject对象,通过subject进行安全管理,先生成subject对象,然后通过传入用户名和密码在UsernamePasswordToken中进行登录校验,登录成功后则会保存该用户信息即(认证成功),然后就可以访问其他资源了。
@RequiresPermissions(权限名),满足权限才可以访问该资源,否则会被拦截