Java提高——06-shiro-自定义realm实现

在这里插入图片描述


QQ 1274510382
Wechat JNZ_aming
商业联盟 QQ群538250800
技术搞事 QQ群599020441
解决方案 QQ群152889761
加入我们 QQ群649347320
共享学习 QQ群674240731
纪年科技aming
网络安全 ,深度学习,嵌入式,机器强化,生物智能,生命科学。

叮叮叮:产品已上线 —>关注 官方-微信公众号——济南纪年信息科技有限公司
民生项目:商城加盟/娱乐交友/创业商圈/外包兼职开发-项目发布/
安全项目:态势感知防御系统/内网巡查系统
云服项目:动态扩容云主机/域名/弹性存储-数据库-云盘/API-AIeverthing
产品咨询/服务售后(同)

纸上得来终觉浅,绝知此事要躬行 !!!
寻找志同道合伙伴创业中。。。抱团滴滴aming联系方式!!


#本文为广告系统自动投放广告

# 如有侵权 删改 请速速联系我们




在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.2 自定义认证 Realm

ShiroRun 代码不需要做任何变化。

4.2.1 自定义 Realm 类

在项目中新建 com.samuel.realm.MyRealm

 public class MyRealm extends AuthenticatingRealm {
    
    
 	
 	@Override
	 protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) 
throws AuthenticationException {
    
    
 			System.out.println("执行认证");
 //用户名
 			String username = token.getPrincipal().toString();
 //密码
 			String pwd = new String((char[])token.getCredentials());
 			System.out.println(username+" "+pwd);
  //先从数据库查询 select * from user where username=? 查看用户名是否存在
 			if(username.equals("admin")){
    
    //假设用户名为 admin 时能从数据库中查询出来
 //根据之前查询出来的用户信息获取密码。假设查询出来的密码是 pwd
 			String password= "pwd";
 //此处需要注意,第二个参数是从数据库查询出来的密码,而不是传递过来的密码。
 //第三个参数自定义。但是尽量不重复了。常直接使用用户名当做 realname 名字。
			 AuthenticationInfo info = new 
			SimpleAuthenticationInfo(token.getPrincipal(),password,"realmname");
 //shiro 会判断从数据库查询出来的密码和客户端传递过来的密码是否一致。
		 return info;
 }
 //返回 null 说明用户名不存在。
 			return null;
 } }

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_33608000/article/details/112852228