Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Overview

In a load balanced environment the default singleton implementation doesnt work out of the box.

There is two solution in order to achieve captcha validation throught load-balancing

  • Use a "distributed singleton" implemented with an distributed cache CaptchaStore (like JBossCache)
  • Use sticky session

The JBossCacheStore allows JCaptcha to be used in a clustered environment, generated captchas are stored in a distributed Cache. A user can now retrieve a captcha from a node and validate it on another node.

This tutorial shows how to set up the JCaptcha extension and configure JBossCache 2

Add project dependencies

jcaptcha-extension-jbosscache-store v1.0 supports JBossCache 2.x
jcaptcha-extension-jbosscache-store v2.x supports JBossCache 3.x

Maven2 users

Add the following dependency to your project POM

Code Block
<dependency>
	<groupId>com.octo.captcha</groupId>
	<artifactId>jcaptcha-extension-jbosscache-store</artifactId>
	<version>1.0-SNAPSHOT<<version> </version>
</dependency>

Without Maven2

...

  • The JCaptcha extension
    • jcaptcha-extension-jbosscache-store-1.0-SNAPSHOT.jar
  • JBossCache dependencies
      Jboss-common-core
    • Jboss-j2ee
    • The JCaptcha extension POM (QQQ) contains names, versions and repository URL to download them.

...

This configuration is a proposal and has to be adapted to your project requirements. Please refers to the JBossCache reference documentation for further details.

You could find a sample here (extension-jbosscache-store\src\test\resources)in the extention test resources

The configurations attributes are divided in two main parts, the first one define the cache behavior (transaction, synchronisation, eviction policy) and the second one defines the deployment scheme.

...

Deployment scheme

Please refers to the JGroups reference documentation for detailed explanations.
http://www.jgroups.org/javagroupsnew/docs/tutorial/html_single/index.html