下面开始使用Shiro实现带认证的登录操作
导入依赖
org.apache.shiro
shiro-core
1.3.2
org.apache.shiro
shiro-web
1.3.2
org.apache.shiro
shiro-spring
1.3.2
第一个demo
基本思路
用户输入的账号密码 和 数据库中存储的账号密码 比对
注意:shiro 默认不支持连接数据库 默认通过配置文件获取数据
所以我们要重写Realm中的方法,实现对数据库的连接
-
接收用户输入的账号密码,
-
要重写Realm中的方法,实现对数据库的连接和数据获取
-
写Springboot的配置类,创建并将重写的Realm设置放进去安全管理器, 将安全管理器 和Subject建立联系
-
将用户输入的账号密码给Subject
-
调用Subject的login方法完成登录
代码实现流程
重写Realm的代码
package com.macw.realm;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.macw.entity.Admin;
import com.macw.mapper.AdminMapper;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.*;
import org.apache.shiro.realm.AuthenticatingRealm;
import org.apache.shiro.subject.Subject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.annotation.Resource;
/**
-
@author maCw
-
@version 1.0
-
@date 2019/8/22 16:13
*/
public class MyRealm extends AuthenticatingRealm {
@Resource
private AdminMapper adminMapper;