1.shiro是什么
shiro是apache开源组织开发的一套开源的安全(权限)框架,跨语言跨平台,能在B/S架构上运行,也能在C/S架构上运行。
2.shiro与传统权限的区别
shiro是对传统的五表权限进行了封装,shiro把用户的认证(登录)和授权(用户赋权限)功能进行了封装处理,使权限操作更加简便,shiro需要传统五表权限来维护用户 角色 权限之间的关系。
3.shiro的原理(运行流程)
securityManager 安全管理中心(shiro的所有操作都由它来完成)
Authenticator 认证 (登录)
Authorizer 授权(使用当前登录用户的id到数据库中查询用户所拥有的权限)
Realm 域 用来连接关系型数据库 执行对应的sql语句
Subject 主体 当前的登录用户 相当于五表权限中的session
认证流程:
1.在pom.xml 导包
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring</artifactId>
<version>1.4.0</version>
</dependency>
2.java 下建一个 shiro 包 ,在包下建一个MyRealm 包 和ShiroConfig 包
MyRealm
package com.jk.shiro;
import com.jk.pojo.User;
import com.jk.service.UserService;
import org.apache.shiro.authc.*;
import org.apache.shiro.authz.AuthorizationInfo;
import org.apache.shiro.authz.SimpleAuthorizationInfo;
import org.apache.shiro.realm.AuthorizingRealm;
import org.apache.shiro.subject.PrincipalCollection;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.ArrayList;
import java.util.List;
public class MyRealm extends AuthorizingRealm {
@Autowired
private UserService userService;
//认证方法
@Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws Authentic