当前位置:   article > 正文

Springboot +spring security,自定义认证器实现验证码功能_daoauthenticationprovider 获取session

daoauthenticationprovider 获取session

一.简介

SpringSecurity 默认是不支持验证码功能的,但是可以自己扩展,这也是使用SpringSecurity的好处之一,原生不支持,我们就自己扩展。

二.思路分析

因为系统默认的有一个DaoAuthenticationProvider 认证处理器,但是他只支持用户名和密码方式登录,所以是不能使用现有的认证器,那我们是不是可以实现一个自己的认证器,来覆盖这个默认的认证器呢?答案当然是可以的,大概实现思路是这样的:

  1. 创建一个认证器 继承默认的密码认证器DaoAuthenticationProvider
  2. 定义验证码认证器的逻辑
    2.1. 从session获取保存的验证码
    2.2. 从请求参数中获取用户输入的验证码
    2.3. 比对验证码
    2.4. 如果匹配成功,则调用DaoAuthenticationProvider的authenticate方法,进行原先逻辑认证
    2.5. 如果匹配失败,则抛出异常,不走后面的逻辑
  3. 将自定义的provider加到AuthenticationManager中

这篇文章来看下如何通过自定义认证器来实现验证码校验的功能。

三.创建项目

如何创建一个SpringSecurity项目,前面文章已经有说明了,这里就不重复写了。

四.代码实现

4.1创建验证码处理器

4.1.1引入依赖

验证码的依赖:

com.github.penggle:kaptcha
    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/534055
    推荐阅读
    相关标签
      

    闽ICP备14008679号