I am adding a new captcha component, it uses jcaptcha-2.0-alpha1 and supports
image captchas and sound captchas (freetts jars must be added for sound captcha 
support)

There is a captcha plugin in xwiki-core which makes the core depend on 
jcaptcha-all-1.0-RC3.
jcaptcha-all-1.0-RC3 causes conflicts when getting classes from jcaptcha-2.0.
The plugin in querstion:
http://svn.xwiki.org/svnroot/xwiki/platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/plugin/captcha/

Here's my +1 for removing it entirely, breaking backward compatibility, 
lightening xwiki-core,
and making the core no longer depend on jcaptcha.
You may review a patch for removing the plugin here:
http://jira.xwiki.org/jira/secure/attachment/16508/XWIKI-4779-removeJcaptchaPlugin.patch


To provide velocity access to the captcha component for checking the results of 
the captcha,
I would like to add a VelocityContextInitializer which will add a binding 
called $captchaservice
which will provide 3 methods:

/**
 * If this is false, the captcha system will still work.
 * It is for velocity scripts to determine whether captchas are needed.
 *
 * @return Is the captcha service enabled in the configuration.
 */
boolean isEnabled()


/** @return a List of the names of all registered classes implementing 
{...@link org.xwiki.captcha.CaptchaVerifier}. */
public List<String> listCaptchaNames()

/**
 * Get a {...@link org.xwiki.captcha.CaptchaVerifier} from the service.
 *
 * @param captchaName The name of the type of captcha, use {...@link 
#listCaptchaNames()} for a list
 * @return A captcha object which can be used to check a specific answer for a 
given challange
 * @throws Exception If the named captcha doesn't exist.
 */
public CaptchaVerifier getCaptchaVerifier(String captchaName) throws Exception


I realize throwing an Exception to velocity always results in a stack trace but 
I see it as the lesser evil to
returning a non-functional CaptchaVerifier which always returns false. Also I 
see no use case where the name of
the captcha is not given in hardcoded velocity so this Exception is only for 
the velocity developers.
Here's my +1 for adding this as well.


Caleb James DeLisle


_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to