文档章节

使用Jcaptcha验证码产生个数不对的问题

美丽不打折
 美丽不打折
发布于 2016/05/16 11:29
字数 654
阅读 28
收藏 0

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"
    xmlns:flex="http://www.springframework.org/schema/flex"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-3.1.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop-3.1.xsd http://www.springframework.org/schema/flex http://www.springframework.org/schema/flex/spring-flex-1.0.xsd">

    <!--验证码服务  -->
    <bean id="captchaService"
        class="com.octo.captcha.service.multitype.GenericManageableCaptchaService">
        <constructor-arg index="0" ref="imageEngine" />
        <constructor-arg type="int" index="1" value="180" /> <!--有效期300秒  -->
        <constructor-arg type="int" index="2" value="100000" />
    </bean>

    <!-- 图片引擎 -->
    <bean id="imageEngine" class="com.octo.captcha.engine.GenericCaptchaEngine">
        <constructor-arg index="0">
            <list>
                <ref bean="captchaFactory" />
            </list>
        </constructor-arg>
    </bean>

    <bean id="captchaFactory" class="com.octo.captcha.image.gimpy.GimpyFactory">
        <constructor-arg>
            <ref bean="wordgen" />
        </constructor-arg>
        <constructor-arg>
            <ref bean="wordtoimage" />
        </constructor-arg>
    </bean>

    <bean id="wordgen"
        class="com.octo.captcha.component.word.wordgenerator.RandomWordGenerator">
        <!--可选字符 -->
        <constructor-arg>
            <value>
             0123456789ABCDEFGHIJKLNMOPQRSTUVWXYZ
            </value>
        </constructor-arg>
    </bean>

    <bean id="wordtoimage"
        class="com.octo.captcha.component.image.wordtoimage.ComposedWordToImage">
        <constructor-arg index="0">
            <ref bean="fontGenRandom" />
        </constructor-arg>
        <constructor-arg index="1">
            <ref bean="backGenUni" />
        </constructor-arg>
        <constructor-arg index="2">
            <ref bean="decoratedPaster" />
        </constructor-arg>
    </bean>

    <bean id="fontGenRandom"
        class="com.octo.captcha.component.image.fontgenerator.RandomFontGenerator">
        <!--最小字体 -->
        <constructor-arg index="0">
            <value>20</value>
        </constructor-arg>
        <!--最大字体 -->
        <constructor-arg index="1">
            <value>26</value>
        </constructor-arg>
        <constructor-arg index="2">
            <list>
                <bean class="java.awt.Font">
                    <constructor-arg index="0">
                        <value>Arial</value>
                    </constructor-arg>
                    <constructor-arg index="1">
                        <value>0</value>
                    </constructor-arg>
                    <constructor-arg index="2">
                        <value>10</value>
                    </constructor-arg>
                </bean>
                
               <bean class="java.awt.Font">
                    <constructor-arg index="0">
                        <value>Tahoma</value>
                    </constructor-arg>
                    <constructor-arg index="1">
                        <value>0</value>
                    </constructor-arg>
                    <constructor-arg index="2">
                        <value>10</value>
                    </constructor-arg>
                </bean>
            </list>
        </constructor-arg>
    </bean>

    <bean id="backGenUni"
        class="com.octo.captcha.component.image.backgroundgenerator.UniColorBackgroundGenerator">
        <!--背景宽度 -->
        <constructor-arg index="0">
            <value>100</value>
        </constructor-arg>
        <!--背景高度 -->
        <constructor-arg index="1">
            <value>40</value>
        </constructor-arg>
    </bean>

    <bean id="decoratedPaster"
        class="com.octo.captcha.component.image.textpaster.DecoratedRandomTextPaster">
        <!--最大字符长度 -->
        <constructor-arg type="java.lang.Integer" index="0">
            <value>6</value>
        </constructor-arg>
        <!--最小字符长度 -->
        <constructor-arg type="java.lang.Integer" index="1">
            <value>6</value>
        </constructor-arg>
        <!--文本颜色 -->
        <constructor-arg index="2">
            <ref bean="colorGen" />
        </constructor-arg>
        <!--文本混淆 -->
        <constructor-arg index="3">
            <list>
            <!--      <ref bean="baffleDecorator"/>   -->
            </list>
        </constructor-arg>
    </bean>

    <bean id="baffleDecorator"
        class="com.octo.captcha.component.image.textpaster.textdecorator.BaffleTextDecorator">
        <constructor-arg type="java.lang.Integer" index="0">
            <value>1</value>
        </constructor-arg>
        <constructor-arg type="java.awt.Color" index="1">
            <ref bean="colorWrite" />
        </constructor-arg>
    </bean>

    <bean id="colorGen"
        class="com.octo.captcha.component.image.color.SingleColorGenerator">
        <constructor-arg type="java.awt.Color" index="0">
            <ref bean="colorDimGrey" />
        </constructor-arg>
    </bean>

    <bean id="colorWrite" class="java.awt.Color">
        <constructor-arg type="int" index="0">
            <value>12</value>
        </constructor-arg>
        <constructor-arg type="int" index="1">
            <value>55</value>
        </constructor-arg>
        <constructor-arg type="int" index="2">
            <value>25</value>
        </constructor-arg>
    </bean>

    <bean id="colorDimGrey" class="java.awt.Color">
        <constructor-arg type="int" index="0">
            <value>123</value>
        </constructor-arg>
        <constructor-arg type="int" index="1">
            <value>29</value>
        </constructor-arg>
        <constructor-arg type="int" index="2">
            <value>0</value>
        </constructor-arg>
    </bean>

</beans>
 

明明最小长度验证码是6位, 最大长度验证码也是6位,但是产生验证码的时候为什么会出现四位,五位那么奇怪的现象呢?因为Spring脑残的解析机制啊。

 

            <value>
             0123456789ABCDEFGHIJKLNMOPQRSTUVWXYZ
            </value>

 

改成

 

            <value>0123456789ABCDEFGHIJKLNMOPQRSTUVWXYZ</value>

 

这么改一改就行了哦。上网百度一下这个问题发现好多人在问呢,结果没有人回答。这里我就放上解决方案和原因吧。谁叫我那么善良美丽呢。哦呵呵呵

© 著作权归作者所有

共有 人打赏支持
美丽不打折
粉丝 48
博文 12
码字总数 6565
作品 0
广州
技术主管
私信 提问
使用 JCaptcha 开发图形和声音验证码

当前越来越多的网站系统采用 CAPTCHA 验证码,来阻止垃圾信息发布机器人的信息提交,但通常绝大多数网站,只提供图片验证码,而这将影响盲人用户的使用。JCaptcha 是一个 Java 开源项目,利用...

IBMdW
2012/02/29
2.7K
2
使用jcaptcha 仿论坛tip 生成异步验证码

首先看看效果图: 如上图,点击验证码可以异步的刷新,借助了一个Jquery插件——jquery.qtip插件,和jcaptcha 配置生成验证码。 1.先配置好,能生成jcaptcha的环境, 在web.xml中添加如下内容...

bestupon
2010/09/13
0
0
captcha和jcaptcha的关系

captcha和jcaptcha的关系,jcaptcha是一个基于java的RC4算法的验证码组件,但是captcha又是啥东西

owenludong
2010/11/25
1K
1
JCaptcha在apache+tomcat下验证失效问题

JCaptcha使用当前SessionId来做当前验证码的key,但是在apache+tomcat集群里,sessionId是不同的,会出现验证失败问题,解决方法: 继承JCaptcha的SimpleImageCaptchaServlet类 1.重写doGet方法,...

答复哈
2012/02/24
0
2
网站注册这一块被攻击,安全求解

群里的同志们 我们的网站现在一度出现在注册这一块被攻击的情况,间隔1-2秒,有时甚至0秒内就有信息注入,我们的网站还有验证码的。这种情况跟什么有关,是不是验证码被他破解了呢。我们的网...

timzhang
2011/08/11
3.1K
9

没有更多内容

加载失败,请刷新页面

加载更多

局域网共享文件读写的实现方式

首先是设置共享目录,支持用户和密码等权限控制 然后我们可以使用Windows资源管理器操作共享目录下的文件 这中间隐藏了资源管理器帮我们建立目录映射和连接的过程,如果设置了用户名和密码,...

夏至如沫
18分钟前
2
0
Elasticsearch安装与配置

一、Docker安装ES 开发模式 可以使用以下命令快速启动Elasticsearch以进行开发或测试: $ docker run -p 9200:9200 -p 9300:9300 -d --name es -e "discovery.type=single-node" docker.ela...

吴伟祥
25分钟前
1
0
移动页面滚动穿透解决方案(荐)

移动页面滚动穿透解决方法目前有多种解决方案,我介绍下几种方案: 解决方案1:阻止冒泡。 //关键代码$(".sliders,.modals").on("touchmove",function(event){    event.preventDefau...

壹峰
25分钟前
0
0
调用infura实现java项目调用智能合约

https://infura.io/dashboard 注册一个帐号 添加一个project 可选择主网或者其他网络,然后复制地址放进pom.xml中 复制智能合约地址复制到pom.xml中 复制任意一个帐号的private key到pom.xml...

八戒八戒八戒
32分钟前
3
0
vue+koa2+token 登录验证

https://segmentfault.com/a/1190000017379244?utm_source=weekly&utm_medium=email&utm_campaign=email_weekly...

Js_Mei
35分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部