package cn.com.capcloud.core.system.configuration;

import com.google.code.kaptcha.impl.DefaultKaptcha;
import com.google.code.kaptcha.util.Config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.Properties;

/**
 * 验证码配置类
 * @author zgsheng
 *
 */
@Configuration 
public class CaptchaConfig {  
      
	/**
	 * 定义配置,相当于xml配置文件,含字体,噪音,字符串范围,图片大小,颜色等等
	 * @return
	 */
    @Bean(name="captchaProducer")  
    public DefaultKaptcha getKaptchaBean(){  
        DefaultKaptcha defaultKaptcha=new DefaultKaptcha();  
        Properties properties=new Properties();  
        properties.setProperty("kaptcha.border", "yes");  
        properties.setProperty("kaptcha.border.color", "169,169,169");  // 灰色
        properties.setProperty("kaptcha.textproducer.font.color", "black");
        properties.setProperty("kaptcha.image.width", "110");
        properties.setProperty("kaptcha.image.height", "40");  
        properties.setProperty("kaptcha.session.key", "code");  
        properties.setProperty("kaptcha.textproducer.char.length", "4"); 
        properties.setProperty("kaptcha.background.clear.from", "255,255,255");
        properties.setProperty("kaptcha.background.clear.to", "200,200,255");
        properties.setProperty("kaptcha.textproducer.font.names", "宋体,楷体,微软雅黑,Comic Sans MS,Arial");
        properties.setProperty("kaptcha.textproducer.font.size", "25"); 
        properties.setProperty("kaptcha.noise.impl", "com.google.code.kaptcha.impl.DefaultNoise");  // 或者 BlockNoise
        properties.setProperty("kaptcha.obscurificator.impl", "com.google.code.kaptcha.impl.WaterRipple");  // 增加复杂的干扰效果
        properties.setProperty("kaptcha.textproducer.char.string", "123456789");
       
        Config config=new Config(properties);  
        defaultKaptcha.setConfig(config);  
        return defaultKaptcha;  
    }  
}  