src/main/java/js/http/captcha/Captcha.java
@Remote
	public Challenge verifyResponse(int captchaIndex, String challengeResponse) throws IllegalArgumentException, IllegalStateException {
		Params.notNullOrEmpty(challengeResponse, "Challenge response");
		Challenge challenge = getChallenges().get(captchaIndex);
		if (challenge == null) {
			throw new IllegalStateException("Invalid challenge on session.");
		}
		return challenge.verifyResponse(challengeResponse) ? null : getChallenge(captchaIndex);
	}
@Remote
	public Challenge verifyResponse(int captchaIndex, String challengeResponse) throws IllegalArgumentException, IllegalStateException {
		Params.notNullOrEmpty(challengeResponse, "Challenge response");
		Challenge challenge = getChallenges().get(captchaIndex);
		if (challenge == null) {
			throw new IllegalStateException("Invalid challenge on session.");
		}
		return challenge.verifyResponse(challengeResponse) ? null : getChallenge(captchaIndex);
	}
@ Remote public Challenge verifyResponse ( int captchaIndex , String challengeResponse ) throws IllegalArgumentException , IllegalStateException { Params . notNullOrEmpty ( challengeResponse , "Challenge response" ) ; Challenge challenge = getChallenges ( ) . get ( captchaIndex ) ; if ( challenge == null ) { throw new IllegalStateException ( "Invalid challenge on session." ) ; } return challenge . verifyResponse ( challengeResponse ) ? null : getChallenge ( captchaIndex ) ; }
Verify challenge response. If response is not correct returns a new challenge used by client to update user interface. It
is highly recommended to refresh challenge on wrong answer to prevent response guessing.
<p>
Instance index should be the same provided to {@link #getChallenge(int)}. This is critical and client should consider
this constrain. Anyway, using wrong CAPTCHA instance index is not a security breach; it always consider response as
invalid.

@param captchaIndex CAPTCHA instance index,
@param challengeResponse challenge response from client.
@return null if response is correct or a new challenge.
@throws IllegalArgumentException if given challenge response is null or empty.
@throws IllegalStateException if there is no challenge on session.
Verify challenge response . If response is not correct returns a new challenge used by client to update user interface . It is highly recommended to refresh challenge on wrong answer to prevent response guessing . <p > Instance index should be the same provided to { @link #getChallenge ( int ) } . This is critical and client should consider this constrain . Anyway using wrong CAPTCHA instance index is not a security breach ; it always consider response as invalid .