文档章节

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

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

码上生花,ECharts 作品展示赛正式启动!>>>

<?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>

 

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

© 著作权归作者所有

美丽不打折
粉丝 98
博文 12
码字总数 6565
作品 0
广州
技术主管
私信 提问
加载中
请先登录后再评论。
使用 JCaptcha 开发图形和声音验证码

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

IBMdW
2012/02/29
2.9K
2
JCaptcha在apache+tomcat下验证失效问题

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

答复哈
2012/02/24
959
2
使用jcaptcha 仿论坛tip 生成异步验证码

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

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

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

owenludong
2010/11/25
1.9K
1
网站注册这一块被攻击,安全求解

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

timzhang
2011/08/11
3.1K
9

没有更多内容

加载失败,请刷新页面

加载更多

Beta冲刺--Day2

2020/05/29 这个作业属于哪个课程 2020春S班软件工程实践 这个作业要求在哪里 团队作业第六次——beta冲刺+事后诸葛亮 团队名称 云玩家$ 这个作业的目标 beta冲刺,测试和完善已有的项目 作业...

osc_taer599u
20分钟前
15
0
题解 [SDOI2010]猪国杀

题目链接 代码成功卡到600行以内 曾经发誓一天切掉的我打了两周。。。 先看题 要点还是挺多的,即使是像我这样熟悉三国杀的同(wán)学( jiā),也要认真看。 首先是基本牌的部分。 杀:在...

osc_4p2c0ecc
22分钟前
9
0
Beta冲刺--Day3

2020/05/30 这个作业属于哪个课程 2020春S班软件工程实践 这个作业要求在哪里 团队作业第六次——beta冲刺+事后诸葛亮 团队名称 云玩家$ 这个作业的目标 beta冲刺,测试和完善已有的项目 作业...

osc_sejhgcp0
23分钟前
23
0
vue3.0提前了解系列----一些普通用法和api的使用

今天给大家说说vue3.0 composition api里面一些剩余的普通api的使用 provide & inject provide和inject用于在一些高阶组件中常用,在2.x中也有一样的api那么在compositionapi中怎么用呢? 仅...

osc_kvcz9ju6
25分钟前
5
0
Beta冲刺--Day4

2020/05/31 这个作业属于哪个课程 2020春S班软件工程实践 这个作业要求在哪里 团队作业第六次——beta冲刺+事后诸葛亮 团队名称 云玩家$ 这个作业的目标 beta冲刺,测试和完善已有的项目 作业...

osc_ze3jj3wd
26分钟前
24
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部