SpringSceurity(3)---图形验证码功能实现

有关springSceurity之前有写过两篇文章:

1、SpringSecurity(1)---认证+授权代码实现

2、SpringSecurity(2)---记住我功能实现

这篇我们来讲图形验证码功能实现。

一、思路

我整理下springSceurity整合图形验证码的大致思路:

1、首先对于验证码本身而言,应该有三部分组成 1、存放验证码的背景图片 2、验证码 3、验证码的有效时间。

2、对于springSceurity而言,验证码的执行校验顺序肯定是在UsernamePasswordAuthenticationFilter之前的,因为如果验证码都不对,那么
根本都不需要验证账号密码。所以我们需要自定义一个验证码过滤器,并且配置在UsernamePasswordAuthenticationFilter之前执行。

3、对于获取验证码的接口,肯定是不需要进行认证限制的。

4、对于获取验证码的接口的时候,需要把该验证码信息+当前浏览器的SessonId绑定在一起存在Seesion中,为了后面校验的时候通过SessonId
去取这个验证码信息。

5、登陆请求接口,除了带上用户名和密码之外,还需要带上验证码信息。在进入验证码过滤器的时候,首先通过SessonId获取存在Sesson中的
验证码信息,拿到验证码信息之后首先还要校验该验证码是否在有效期内。之后再和当前登陆接口带来的验证码进行对比,如果一致,那么当前
验证码这一关就过了,就开始验证下一步账号和密码是否正确了。

整个流程大致就是这样。下面现在是具体代码,然后进行测试。

 

二、代码展示

这里只展示一些核心代码,具体完整项目会放到github上。

1、ImageCodeProperties

这个是一个bean实体,是一个图形验证码的默认配置。

@Data
public class ImageCodeProperties {
    /**
     * 验证码宽度
     */
    private int width = 67;
    /**
     * 验证码高度
     */
    private int height = 23;
    /**
     * 验证码长度
     */
    private int length = 4;
    /**
     * 验证码过期时间
     */
    private int expireIn = 60;
    /**
     * 需要验证码的请求url字符串,用英文逗号隔开
     */
    private String url = "/login";

}

2、ImageCode

这个是图片验证码的完整信息,也会将这个完整信息存放于Sesson中。

图片验证码信息 由三部分组成 :

1.图片信息(长、宽、背景色等等)。2.code就是真正的验证码,用来验证

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值