时间:2021-05-20
这篇文章主要介绍了Springboot整合Shiro的代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
1、导入依赖
2、创建ShiroRealm.java文件
(这里按照需求,只做登录认证这块)
package com.hyqfx.manager.shiro;import com.baomidou.mybatisplus.mapper.EntityWrapper;import com.hyqfx.manager.entity.po.SystemAdmin;import com.hyqfx.manager.service.ISystemAdminService;import org.apache.shiro.authc.*;import org.apache.shiro.authz.AuthorizationInfo;import org.apache.shiro.realm.AuthorizingRealm;import org.apache.shiro.subject.PrincipalCollection;import org.springframework.beans.factory.annotation.Autowired;public class ShiroRealm extends AuthorizingRealm { @Autowired private ISystemAdminService adminService; //授权 @Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) { return null; } //认证 @Override protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException { //加这一步的目的是在Post请求的时候会先进认证,然后在到请求 if (authenticationToken.getPrincipal() == null) { return null; } //获取用户信息 String name = authenticationToken.getPrincipal().toString(); SystemAdmin admin = adminService.selectOne(new EntityWrapper<SystemAdmin>().eq("username",name)); if (admin == null) { return null; } else { //这里验证authenticationToken和simpleAuthenticationInfo的信息 SimpleAuthenticationInfo simpleAuthenticationInfo = new SimpleAuthenticationInfo(name, admin.getPassword().toString(), getName()); return simpleAuthenticationInfo; } }}3、创建ShiroConfiguration.java文件
4、自定义Shiro的密码比较器
package com.becl.shiro;import org.apache.shiro.authc.AuthenticationInfo;import org.apache.shiro.authc.AuthenticationToken;import org.apache.shiro.authc.UsernamePasswordToken;import org.apache.shiro.authc.credential.SimpleCredentialsMatcher;import org.mindrot.jbcrypt.BCrypt;/** * 自定义密码比较器 */public class PasswordMatcher extends SimpleCredentialsMatcher { @Override public boolean doCredentialsMatch(AuthenticationToken token, AuthenticationInfo info) { UsernamePasswordToken utoken=(UsernamePasswordToken) token; //获得用户输入的密码:(可以采用加盐(salt)的方式去检验) String inPassword = new String(utoken.getPassword()); String username = utoken.getUsername(); //获得数据库中的密码 String dbPassword = (String) info.getCredentials(); //进行密码的比对 boolean flag = BCrypt.checkpw(inPassword,dbPassword); return flag; }}以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
这篇文章主要介绍了SpringBoot整合Shiro+Thymeleaf过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需
安全无处不在,趁着放假读了一下Shiro文档,并记录一下Shiro整合SpringBoot在数据库中根据角色控制访问权限简介ApacheShiro是一个功能强大
springboot整合vue实现上传下载文件,供大家参考,具体内容如下环境springboot1.5.x完整代码下载:springboot整合vue实现上传下
前言这几天在集中学习Springboot+Shiro框架,因为之前view层用jsp比较多,所以想在springboot中配置jsp,但是springboot官
这篇文章主要介绍了springboot2.1.7整合thymeleaf代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要