Security--05(图形验证码功能重构)

目录

 

1.可提取的验证码配置

     2.验证码的基本参数可配

  3.验证码的生成逻辑可配置


1.可提取的验证码配置

   1.1验证码的长宽,以及位数,以及过期时间,拦截的接口都是可配置的。

   1.2拦截的接口可配置,这样可以配置哪些服务需要验证码

   1.3验证码的生成逻辑可以配置

   

   图形验证码采用三级配置:

  

   默认配置封装:封装图形验证码的配置类:ImageCodePropertites  需要考虑到短信验证码 ValidateCodeProperties,

     2.验证码的基本参数可配

     图形验证码的配置类和验证码配置类:

package org.lilly.core.properties;

/**
 * User: Mr.Wang
 * Date: 2020/6/11
 * 图形验证码的配置类和他的默认配置
 */
public class ImageCodePropertites {
    private int width = 67;
    private int height = 23;
    private int length = 4;
    private int expireTime = 60;
    

    public int getWidth() {
        return width;
    }

    public void setWidth(int width) {
        this.width = width;
    }

    public int getHeight() {
        return height;
    }

    public void setHeight(int height) {
        this.height = height;
    }

    public int getLength() {
        return length;
    }

    public void setLength(int length) {
        this.length = length;
    }

    public int getExpireTime() {
        return expireTime;
    }

    public void setExpireTime(int expireTime) {
        this.expireTime = expireTime;
    }
}

 

public class ValidateCodeProperties {
    private ImageCodePropertites imageCode = new ImageCodePropertites();

    public ImageCodePropertites getImageCode() {
        return imageCode;
    }

    public void setImageCode(ImageCodePropertites imageCode) {
        this.imageCode = imageCode;
    }
}

 有了配置类就可以去替换掉代码里面写死的参数:

   验证码的拦截路径可配置(目前暂时不支持),因为在Springboot的控制器中如果return 返回templates文件的名字会再次被Security拦截,走他的配置的loginPage逻辑,对于验验证码的逻辑,每个请求会发两次,第一次的时候url是0,第二次的时候url才有值。然后登陆失败了他还要去走一遍loginPage. validateCodeFilter.afterPropertiesSet();

  

 登陆成功返回JSON:

   至此验证码参数可配做完了

  3.验证码的生成逻辑可配置

  这里是高级的开发人员要掌握的一个常见的开发技巧,叫做以增量的方式去适应变化,

 首先会提供一个生成验证码的接口:

 

 然后会有一个默认的实现:需要注意的是这个Bean没有直接交给Spring去管理,而是通过配置Bean的方式交给Spring去管理,这样做的好处就是,可以条件配置这个Bean

 

 

 这样的话我再demo项目中去配置一个名字为validateImageGenerator的Bean就可以实现覆盖默认配置的逻辑。

至此验证码的重构功能完成。

 

 

 

 

 

 

 

 

 

  

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时空恋旅人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值