Spring Boot Security 实现后台&权限管理系统(三)

实现验证码功能

前面我们实现了登陆页面改造并实现登陆,但我们忽略了验证码那个地方。

从上图中我们可以看到,我们的图形验证码是一张静态图片且尚未实现验证码功能。开干!

修改application配置文件

spring:
  security:
    #   登陆路径
    login-url: /login
    #    登出路径
    logout-url: /logout
    #    免认证静态资源路径
    anon-resources-url: /css/**,/js/**,/skin/**,/images/**,/font/**,/fonts/**,/dist/**
    #    放行路径
    release-url: /login,/getVerificationCode
    # 记住我超时时间
    remember-me-timeout: 300
    #验证码相关配置
    code:
      #图形验证码相关配置
      image:
        #        图形验证码图片长度(px)
        width:  130
        #        图形验证码图片高度(px)
        hight:  40
        #          图形验证码由(n)组成字符位数
        length: 4
        #          图形验证码失效时间(秒)
        expiration-in: 60
        #          以下资源需要验证图形验证码
        url: /user,/user/*
        #        对应登录页面 form表单的 action属性
        login-processing-url: /authentication/form

从上面代码中可以看到,我在release-url加入了/getVerificationCode该路径,目的是为了放行生成验证码功能接口。并且将login-processing-url放到了验证码下面。

验证码属性

/**
 * @Package: com.zlx.bpms.validate.properties
 * @Author: LQW
 * @Date: 2020/3/24
 * @Description:验证码属性
 */
@Data
public class ValidateCodeProperties {
    /**
     * 图形验证码属性
     */
    ImageCodeProperties image = new ImageCodeProperties();
}

图形验证码属性

/**
 * @Package: com.zlx.bpms.validate.properties.image
 * @Author: LQW
 * @Date: 2020/3/24
 * @Description:图形验证码属性
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class ImageCodeProperties extends CommonProperties {

    /***
     * 图形验证码图片长度
     */
    private int width;

    /**
     * 图形验证码图片高度
     */
    private int hight;

    /**
     * 处理登陆认证URL(页面的action属性值)
     */
    private String loginProcessingUrl;

    public ImageCodeProperties() {
        setLength(BpmsConstant.TheNumberDevil.FOUR);
    }
}

修改BpmsSecurityProperties配置属性

/**
 * @Package: com.zlx.bpms.properties
 * @Author: LQW
 * @Date: 2020/3/17
 * @Description:权限认证属性
 */
@ConfigurationProperties(prefix = "spring.security")
@Data
public class BpmsSecurityProperties {

    /**
     * 登录路径
     */
    private String loginUrl;
    /**
     * 登出路径
     */
    private String logoutUrl;
    /**
     * 免认证静态资源路径
     */
    private String anonResourcesUrl;
    /**
     * 放行路径
     */
    private String releaseUrl;
    /**
     * 记住我超时时间
     */
    private int rememberMeTimeout;

    /**
     * 验证码配置
     */
    private ValidateCodeProperties code;
}

生成验证码


posted @ 2025-11-14 09:42  喜欢你的眉眼微笑i  阅读(8)  评论(0)    收藏  举报