package org.ruoyi.common.web.config; import cn.hutool.captcha.CaptchaUtil; import cn.hutool.captcha.CircleCaptcha; import cn.hutool.captcha.LineCaptcha; import cn.hutool.captcha.ShearCaptcha; import org.ruoyi.common.web.config.properties.CaptchaProperties; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Lazy; import java.awt.*; /** * 验证码配置 * * @author Lion Li */ @AutoConfiguration @EnableConfigurationProperties(CaptchaProperties.class) public class CaptchaConfig { private static final int WIDTH = 160; private static final int HEIGHT = 60; private static final Color BACKGROUND = Color.PINK; private static final Font FONT = new Font("Arial", Font.BOLD, 48); /** * 圆圈干扰验证码 */ @Lazy @Bean public CircleCaptcha circleCaptcha() { CircleCaptcha captcha = CaptchaUtil.createCircleCaptcha(WIDTH, HEIGHT); captcha.setBackground(BACKGROUND); captcha.setFont(FONT); return captcha; } /** * 线段干扰的验证码 */ @Lazy @Bean public LineCaptcha lineCaptcha() { LineCaptcha captcha = CaptchaUtil.createLineCaptcha(WIDTH, HEIGHT); captcha.setBackground(BACKGROUND); captcha.setFont(FONT); return captcha; } /** * 扭曲干扰验证码 */ @Lazy @Bean public ShearCaptcha shearCaptcha() { ShearCaptcha captcha = CaptchaUtil.createShearCaptcha(WIDTH, HEIGHT); captcha.setBackground(BACKGROUND); captcha.setFont(FONT); return captcha; } }