posts - 431,  comments - 344,  trackbacks - 0
          JCaptcha Plugin :基于 JCaptcha 開(kāi)源圖片和音頻驗(yàn)證碼項(xiàng)目的Grails插件
          而jcaptcha-1.0終于出來(lái)了. 比起0.2輕量了很多, 而且0.2里面有不少無(wú)用的東西...
          現(xiàn)在grails-app下面主要的文件就剩下JcaptchaController.groovy, JcaptchaService.groovy, JcaptchaTagLib.groovy了.
          JcaptchaTagLib.groovy里面其實(shí)也就定義了兩個(gè)標(biāo)簽, 一個(gè)用戶圖片驗(yàn)證(jpeg), 一個(gè)用于語(yǔ)音驗(yàn)證(wav).
          JcaptchaController.groovy里面則定義了主要兩個(gè)action(jpeg和wav)用于JcaptchaTagLib.groovy的兩個(gè)標(biāo)簽調(diào)用.
          JcaptchaService.groovy則定義了四個(gè)常用方法, 主要是boolean validateResponse(captchaName, id, response)用于驗(yàn)證輸入驗(yàn)證碼是否正確

          下面看看使用驗(yàn)證碼代碼:
          首先需要在Config.groovy, 添加:
          import Java.awt.Font
          import Java.awt.Color
          import com.octo.captcha.service.multitype.GenericManageableCaptchaService
          import com.octo.captcha.engine.GenericCaptchaEngine
          import com.octo.captcha.image.gimpy.GimpyFactory
          import com.octo.captcha.component.word.wordgenerator.RandomWordGenerator
          import com.octo.captcha.component.image.wordtoimage.ComposedWordToImage
          import com.octo.captcha.component.image.fontgenerator.RandomFontGenerator
          import com.octo.captcha.component.image.backgroundgenerator.GradientBackgroundGenerator
          import com.octo.captcha.component.image.color.SingleColorGenerator
          import com.octo.captcha.component.image.textpaster.NonLinearTextPaster

          jcaptchas { 
                  imageCaptcha = new GenericManageableCaptchaService( 
                      new GenericCaptchaEngine( 
                          new GimpyFactory( 
                              new RandomWordGenerator( 
                                  "abcdefghijklmnopqrstuvwxyz1234567890" 
                              ), 
                              new ComposedWordToImage( 
                                  new RandomFontGenerator(                 // 生成圖片文字的字體以及字號(hào)大小,可以是多種字體,會(huì)隨機(jī)出現(xiàn)。
                                      20, // min font size 
                                      30, // max font size 
                                      [new Font("Arial", 0, 10)] as Font[] 
                                  ), 
                                  new GradientBackgroundGenerator(       // 配置驗(yàn)證圖片的大小和背景色以及過(guò)渡色
                                      140, // width 
                                      35, // height 
                                      new SingleColorGenerator(new Color(255, 255, 255)), 
                                      new SingleColorGenerator(new Color(200, 200, 200)) 
                                  ), 
                                  new NonLinearTextPaster( 
                                      4, // minimal length of text 
                                      4, // maximal length of text 
                                      new Color(11, 11, 11) 
                                  ) 
                              ) 
                          ) 
                      ), 
                      180, // minGuarantedStorageDelayInSeconds 
                      180000 // maxCaptchaStoreSize 
                  )


          頁(yè)面中添加:
          < input id="captchaResponse" maxlength="30" name="captchaResponse" type="text" />
          < jcaptcha:jpeg name="imageCaptcha" width="100px" height="25px" >< /jcaptcha:jpeg >

          Controller里面要做驗(yàn)證
          if (!jcaptchaService.validateResponse("imageCaptcha", session.id, params.captchaResponse)){
              flash.message = message(code:'pinpin.login.invalid.jcaptcha')
              return
          }
          posted on 2008-08-28 22:54 周銳 閱讀(1186) 評(píng)論(0)  編輯  收藏 所屬分類: Groovy&Grails
          主站蜘蛛池模板: 贺兰县| 襄汾县| 吴旗县| 新乐市| 德格县| 昭平县| 普洱| 大丰市| 弋阳县| 工布江达县| 婺源县| 武定县| 万山特区| 长白| 望奎县| 涿鹿县| 和林格尔县| 涟源市| 鹤山市| 建宁县| 彰化县| 镶黄旗| 乌兰县| 资源县| 长海县| 乌恰县| 瑞金市| 水城县| 嘉善县| 白水县| 吉安市| 达州市| 永吉县| 曲阜市| 昔阳县| 登封市| 武定县| 同德县| 台州市| 嵊泗县| 桦甸市|