iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >怎么在SpringBoot中利用Shiro实现一个密码登录功能
  • 502
分享到

怎么在SpringBoot中利用Shiro实现一个密码登录功能

2023-06-06 14:06:17 502人浏览 八月长安
摘要

怎么在SpringBoot中利用shiro实现一个密码登录功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。导入依赖(pom.xml) <!--

怎么在SpringBoot中利用shiro实现一个密码登录功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

导入依赖(pom.xml)

 <!--整合Shiro安全框架-->    <dependency>      <groupId>org.apache.shiro</groupId>      <artifactId>shiro-spring</artifactId>      <version>1.4.0</version>    </dependency>    <!--集成Jwt实现token认证-->    <dependency>      <groupId>com.auth0</groupId>      <artifactId>java-jwt</artifactId>      <version>3.2.0</version>    </dependency>

创建 ShiroConfig 配置类

@Configurationpublic class ShiroConfig {    @Bean  public ShiroFilterFactoryBean getShiroFilterFactoryBean(@Qualifier("securityManager") DefaultWEBSecurityManager defaultWebSecurityManager) {    ShiroFilterFactoryBean factoryBean = new ShiroFilterFactoryBean();    //设置安全管理器    factoryBean.setSecurityManager(defaultWebSecurityManager);    // 添加shiro的内置过滤器        Map<String, String> filterMap = new LinkedHashMap<>();    // 放行不需要权限认证的接口    //放行登录接口    filterMap.put("/login  @Bean(name = "securityManager")  public DefaultWebSecurityManager getDefaultWebSecurityManager(@Qualifier("customRealm") CustomRealm customRealm) {    DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();    //关联CustomRealm    securityManager.setRealm(customRealm);    return securityManager;  }    @Bean  public CustomRealm customRealm() {    return new CustomRealm();  }}

创建密码登录时验证授权 CustomRealm 类

@Componentpublic class CustomRealm extends AuthorizingRealm {  @Autowired  AdministratorsService administratorsService;    {    HashedCredentialsMatcher mather = new HashedCredentialsMatcher();    // 加密方式    mather.setHashAlGorithmName("md5");    // 密码进行一次运算    mather.setHashIterations(512);    this.setCredentialsMatcher(mather);  }    @Override  protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {    System.out.println("————授权————doGetAuthorizationInfo————");    return null;  }    @Override  protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {    System.out.println("————认证————doGetAuthenticationInfo————");    UsernamePassWordToken userToken = (UsernamePasswordToken) token;    // 连接数据库 查询用户数据    QueryWrapper<Administrators> wrapper = new QueryWrapper<>();    wrapper.eq("username", userToken.getUsername());    Administrators administrators = administratorsService.getOne(wrapper);    if (administrators == null) {      return null; // 抛出异常 UnknownAccountException    }    // 密码认证,shiro做    return new SimpleAuthenticationInfo("", administrators.getPassword(), "");  }}

控制层用户密码登录

//用户名登录  @apiOperation(value = "管理员登录", notes = "用户名登录--不进行拦截")  @PostMapping("/doLogin")  public String doLogin(@RequestParam("username") String username,             @RequestParam("password") String password,             httpsession session,Model model) {    // 获取当前的用户    Subject subject = SecurityUtils.getSubject();    // 封装用户的登录数据    UsernamePasswordToken token = new UsernamePasswordToken(username, password);    try {      subject.login(token);      //保存session会话 管理员名字      session.setAttribute("adname", username);      return "admin";    } catch (UnknownAccountException e) {      model.addAttribute("usererror", "用户名错误!请重新输入。");      return "login";    } catch (IncorrectCredentialsException ice) {      model.addAttribute("pwerror", "密码错误!请重新输入。");      return "login";    }  }

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网精选频道,感谢您对编程网的支持。

--结束END--

本文标题: 怎么在SpringBoot中利用Shiro实现一个密码登录功能

本文链接: https://www.lsjlt.com/news/247307.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么在SpringBoot中利用Shiro实现一个密码登录功能
    怎么在SpringBoot中利用Shiro实现一个密码登录功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。导入依赖(pom.xml) <!--...
    99+
    2023-06-06
  • 如何在SpringBoot中使用Shiro怎么实现一个邮件验证码登录功能
    如何在SpringBoot中使用Shiro怎么实现一个邮件验证码登录功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。导入依赖(pom.xml)  &...
    99+
    2023-06-06
  • springboot中怎么利用shiro实现多验证登录功能
    springboot中怎么利用shiro实现多验证登录功能,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 首先新建一个shiroConfig shiro的配置类...
    99+
    2023-06-20
  • 利用struts1怎么实现一个登录功能
    利用struts1怎么实现一个登录功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。实例开始工作—导入jar包,在官网上下载struts1框架包,解压之后导入工...
    99+
    2023-05-31
    struts2 st
  • springboot怎么整合shiro实现多验证登录功能
    这篇“springboot怎么整合shiro实现多验证登录功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“springbo...
    99+
    2023-06-08
  • 怎么在React中利用Form组件实现一个登录功能
    本篇文章给大家分享的是有关怎么在React中利用Form组件实现一个登录功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。引入所需的 Antd 组件,代码如下所示:import...
    99+
    2023-06-14
  • springboot整合shiro多验证登录功能的实现(账号密码登录和使用手机验证码登录)
    1. 首先新建一个shiroConfig shiro的配置类,代码如下: @Configuration public class SpringShiroConfig { ...
    99+
    2022-11-12
  • 怎么在SpringBoot中利用WebSocket实现一个群聊功能
    本篇文章为大家展示了怎么在SpringBoot中利用WebSocket实现一个群聊功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。消息群发创建新项目:添加依赖:<dependency>...
    99+
    2023-06-06
  • Android中怎么实现登录记住多个密码功能
    这篇文章将为大家详细讲解有关Android中怎么实现登录记住多个密码功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在popouWindow里面加上ListView,数据是把List以字符...
    99+
    2023-05-31
    android
  • 怎么在SpringBoot利用Mybatis实现一个登录注册页面
    怎么在SpringBoot利用Mybatis实现一个登录注册页面?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。环境jdk8 : “1.8.0_281”Maven...
    99+
    2023-06-06
  • 使用golang怎么实现一个登录验证码功能
    这篇文章将为大家详细讲解有关使用golang怎么实现一个登录验证码功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。golang适合做什么golang可以做服务器端开发,但golang很适合...
    99+
    2023-06-06
  • 使用ajax怎么实现一个登录功能
    本篇文章给大家分享的是有关使用ajax怎么实现一个登录功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。ajax的优点:最大的一点是页面无刷新,用户的体验非常好。使用异步方式与...
    99+
    2023-06-08
  • 如何在Android中利用view实现一个手势密码功能
    这篇文章将为大家详细讲解有关如何在Android中利用view实现一个手势密码功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。用法: <com.leo.library.view.Ge...
    99+
    2023-05-31
    android roi view
  • 怎么在java中使用JDBC实现一个验证登录功能
    怎么在java中使用JDBC实现一个验证登录功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。java基本数据类型有哪些Java的基本数据类型分为:1、整数类型,用来表示整...
    99+
    2023-06-14
  • 怎么在springboot中利用thymeleaf模板实现一个paginate分页功能
    今天就跟大家聊聊有关怎么在springboot中利用thymeleaf模板实现一个paginate分页功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。pom.xml 加入 ...
    99+
    2023-05-31
    springboot thymeleaf paginate
  • 怎么在android中实现一个微信联合登录功能
    怎么在android中实现一个微信联合登录功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1):登录微信开放平台,完成账号申请:https://open.weixin.qq....
    99+
    2023-05-30
    android
  • 在SpringBoot中利用Websocket实现一个网页聊天功能
    这篇文章将为大家详细讲解有关在SpringBoot中利用Websocket实现一个网页聊天功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。导入websocket的包。通过使用SpringB...
    99+
    2023-05-31
    springboot websocket bs
  • 利用SpringBoot怎么实现一个多表联查功能
    这篇文章给大家介绍利用SpringBoot怎么实现一个多表联查功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。具体方法如下:public interface FieldValueDao extends JpaRepo...
    99+
    2023-05-31
    springboot bo
  • 怎么在JavaWeb中利用Session实现一个用户登陆注销功能
    今天就跟大家聊聊有关怎么在JavaWeb中利用Session实现一个用户登陆注销功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Cookie:cookie是客户端技术,程序把每个用...
    99+
    2023-05-30
    javaweb session
  • Android中怎么利用SharedPreferences实现自动登录记住用户名和密码功能
    本篇文章为大家展示了Android中怎么利用SharedPreferences实现自动登录记住用户名和密码功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。SharedPreferences简介Sh...
    99+
    2023-05-31
    android sharedpreferences
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作