CaptchaConfig.java 4.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. package com.warewms.framework.config;
  2. import com.google.code.kaptcha.impl.DefaultKaptcha;
  3. import com.google.code.kaptcha.util.Config;
  4. import org.springframework.context.annotation.Bean;
  5. import org.springframework.context.annotation.Configuration;
  6. import java.util.Properties;
  7. import static com.google.code.kaptcha.Constants.*;
  8. /**
  9. * 验证码配置
  10. *
  11. * @author ruoyi
  12. */
  13. @Configuration
  14. public class CaptchaConfig
  15. {
  16. @Bean(name = "captchaProducer")
  17. public DefaultKaptcha getKaptchaBean()
  18. {
  19. DefaultKaptcha defaultKaptcha = new DefaultKaptcha();
  20. Properties properties = new Properties();
  21. // 是否有边框 默认为true 我们可以自己设置yes,no
  22. properties.setProperty(KAPTCHA_BORDER, "yes");
  23. // 验证码文本字符颜色 默认为Color.BLACK
  24. properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_COLOR, "black");
  25. // 验证码图片宽度 默认为200
  26. properties.setProperty(KAPTCHA_IMAGE_WIDTH, "160");
  27. // 验证码图片高度 默认为50
  28. properties.setProperty(KAPTCHA_IMAGE_HEIGHT, "60");
  29. // 验证码文本字符大小 默认为40
  30. properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_SIZE, "38");
  31. // KAPTCHA_SESSION_KEY
  32. properties.setProperty(KAPTCHA_SESSION_CONFIG_KEY, "kaptchaCode");
  33. // 验证码文本字符长度 默认为5
  34. properties.setProperty(KAPTCHA_TEXTPRODUCER_CHAR_LENGTH, "4");
  35. // 验证码文本字体样式 默认为new Font("Arial", 1, fontSize), new Font("Courier", 1, fontSize)
  36. properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_NAMES, "Arial,Courier");
  37. // 图片样式 水纹com.google.code.kaptcha.impl.WaterRipple 鱼眼com.google.code.kaptcha.impl.FishEyeGimpy 阴影com.google.code.kaptcha.impl.ShadowGimpy
  38. properties.setProperty(KAPTCHA_OBSCURIFICATOR_IMPL, "com.google.code.kaptcha.impl.ShadowGimpy");
  39. Config config = new Config(properties);
  40. defaultKaptcha.setConfig(config);
  41. return defaultKaptcha;
  42. }
  43. @Bean(name = "captchaProducerMath")
  44. public DefaultKaptcha getKaptchaBeanMath()
  45. {
  46. DefaultKaptcha defaultKaptcha = new DefaultKaptcha();
  47. Properties properties = new Properties();
  48. // 是否有边框 默认为true 我们可以自己设置yes,no
  49. properties.setProperty(KAPTCHA_BORDER, "yes");
  50. // 边框颜色 默认为Color.BLACK
  51. properties.setProperty(KAPTCHA_BORDER_COLOR, "105,179,90");
  52. // 验证码文本字符颜色 默认为Color.BLACK
  53. properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_COLOR, "blue");
  54. // 验证码图片宽度 默认为200
  55. properties.setProperty(KAPTCHA_IMAGE_WIDTH, "160");
  56. // 验证码图片高度 默认为50
  57. properties.setProperty(KAPTCHA_IMAGE_HEIGHT, "60");
  58. // 验证码文本字符大小 默认为40
  59. properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_SIZE, "35");
  60. // KAPTCHA_SESSION_KEY
  61. properties.setProperty(KAPTCHA_SESSION_CONFIG_KEY, "kaptchaCodeMath");
  62. // 验证码文本生成器
  63. properties.setProperty(KAPTCHA_TEXTPRODUCER_IMPL, "com.warewms.framework.config.KaptchaTextCreator");
  64. // 验证码文本字符间距 默认为2
  65. properties.setProperty(KAPTCHA_TEXTPRODUCER_CHAR_SPACE, "3");
  66. // 验证码文本字符长度 默认为5
  67. properties.setProperty(KAPTCHA_TEXTPRODUCER_CHAR_LENGTH, "6");
  68. // 验证码文本字体样式 默认为new Font("Arial", 1, fontSize), new Font("Courier", 1, fontSize)
  69. properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_NAMES, "Arial,Courier");
  70. // 验证码噪点颜色 默认为Color.BLACK
  71. properties.setProperty(KAPTCHA_NOISE_COLOR, "white");
  72. // 干扰实现类
  73. properties.setProperty(KAPTCHA_NOISE_IMPL, "com.google.code.kaptcha.impl.NoNoise");
  74. // 图片样式 水纹com.google.code.kaptcha.impl.WaterRipple 鱼眼com.google.code.kaptcha.impl.FishEyeGimpy 阴影com.google.code.kaptcha.impl.ShadowGimpy
  75. properties.setProperty(KAPTCHA_OBSCURIFICATOR_IMPL, "com.google.code.kaptcha.impl.ShadowGimpy");
  76. Config config = new Config(properties);
  77. defaultKaptcha.setConfig(config);
  78. return defaultKaptcha;
  79. }
  80. }